Hadoop单机版本安装

单机版安装

主机规划

hostname ip jdk ntp Hadoop
node01 192.168.17.101 1.8 最新版本 3.3.4

服务规划

hostname ip NameNode DataNode SecondaryNameNode
node01 192.168.17.101

关闭防火墙

不关闭防火墙,本地无法访问hadoop相关的UI界面。

关闭防火墙

systemctl stop firewalld.service 

确认防火墙状态

systemctl status firewalld.service 
image.png

时间同步

  • 安装ntp软件
yum install -y ntp
  • 添加阿里时间同步服务器
# 第一步
vim /etc/ntp.conf

# 在文件中加入阿里时间同步服务器
server ntp.aliyun.com iburst
image.png
  • 启动ntp服务
service ntpd start
  • 设置开机启动
chkconfig ntpd on

免密登录

# 执行以下命令,动态生成.ssh 目录
ssh localhost
 
# 生成免密登录数字签名
ssh-keygen -t dsa -P ''

# 把生成的 id_dsa.pub 文件内容追加到 authorized_keys 中
cat id_dsa.pub  >> authorized_keys

# authorized_keys 授权600,不然ssh node01 还是需要输入密码
chmod 600 authorized_keys 
image.png

安装软件

安装JDK
  • 下载JDK安装包,当前选择JDK版本为1.8

下载地址:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html

选择RPM包,下载到本地

image.png
  • 上传下载的rpm包到服务器
image.png
  • 安装软件
[root@node01 ~]# rpm -i jdk-8u351-linux-x64.rpm

安装成功后,如果可以看到/usr/java,并且能看到如下图显示的内容,表示安装成功

image.png

注:有些软件默认配置的JDK目录为/usr/java/default,如果以解压的方式安装JDK,这几个目录需要手动创建软链接,所以建议使用rpm的方式安装JDK。

  • 配置环境变量
# 打开 /etc/profile 文件
vim /etc/profile

# 添加以下两行内容
export JAVA_HOME=/usr/java/default
export PATH=$PATH:%JAVA_HOME/bin

# 让配置文件生效
source /etc/profile
  • 验证jdk是否安装成功,输入下面的命令,如果出现下图所示内容表示安装成功
java -version
image.png
安装Hadoop
  • 下载Hadoop安装包,当前选择版本为3.3.4

下载地址:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz

  • 上传到服务器
image.png
  • 解压软件包
tar -xvf hadoop-3.3.4.tar.gz
image.png
  • 把解压的文件放到合适的位置
# 创建目录
mkdir /opt/bigdata

#移动加压的文件夹到创建的目录
mv hadoop-3.3.4/ /opt/bigdata/
  • 添加环境变量
# 打开 /etc/profile 文件
vim /etc/profile

# 添加以下两行内容
export HADOOP_HOME=/opt/bigdata/hadoop-3.3.4
export PATH=$PATH:%JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

# 让配置文件生效
source /etc/profile
  • 添加Hadoop核心配置

    hadoop-env.sh

    # 打开hadoop-en.sh文件
    vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/hadoop-env.sh  
    
    # 添加JAVA_HOME配置
    export JAVA_HOME=/usr/java/default
    

    详细配置如下:

image.png

core-site.xml

# 打开core-site.xml文件
vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/core-site.xml

添加如下配置:

<!--配置NameNode服务启动的节点  -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://node01:9000</value>
</property>

详细配置如下:

image.png

hdfs-site.xml

# 打开hdfs-site.xml 文件
vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/hdfs-site.xml 

添加如下配置:

<!-- HDFS副本数 -->
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<!-- NameNode日志文件目录 -->
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/var/bigdata/hadoop/local/dfs/name</value>
</property>
<!-- DataNode日志文件目录 -->
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/var/bigdata/hadoop/local/dfs/data</value>
</property>
<!-- secondaryNode启动服务的节点  -->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node01:9868</value>
</property>
<!--secondaryNode日志文件目录  -->
<property>
    <name>dfs.namenode.checkpoint.dir</name>
    <value>/var/bigdata/hadoop/local/dfs/secondary</value>
</property>

详细配置如下:

image.png

workers

# 打开workers文件
vim /opt/bigdata/hadoop-3.3.4/etc/hadoop/workers 

# 修改内容为node01
node01

老版本的Hadoop配置文件为slaves。

当前的配置为DataNode服务启动的节点,因为我们当前是单机版本,所以只需要配置node01就行了。

完整的配置如下:

image.png
  • 初始化HDFS
# 初始化HDFS,会创建NameNode需要的目录,并创建空的fsimage
hdfs namenode -format  
image.png

cd 到我们的配置的目录,可看到如下目录:

image.png
  • 启动服务

当前版本默认不推荐使用root用户直接启动服务,需要把需要的目录切换归属为hadoop,并使用hadoop用户启动服务。

start-dfs.sh
image.png

启动成功后,会在/var/bigdata/hadoop/local/dfs看到如下目录:

image.png

验证

  • 修改windows的hosts文件
# 新增配置
192.168.17.101 node01
image.png
  • 登录HDFS控制台

浏览器浏览:http://node01:9870/

注意:老版本访问的端口号为50070,3.x以后改为9870

image.png
  • 创建目录
hdfs dfs -mkdir /bigdata
image.png
  • 本地创建一个文件,并上传
# 创建文件
echo "hello hadoop" >> hadoop.txt

# 上传文件
hdfs dfs -put hadoop.txt /bigdata
image.png

常见错误

1、ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.

当前版本Hadoop默认不允许root用户启动服务,最简单的解决方案:把需要的使用的Hadoop目录的归属改为hadoop

# 修改软件安装的目录归属
chown -R hadoop /opt/bigdata/hadoop-3.3.4/

# 修改日志和数据目录归属
chown -R hadoop /var/bigdata
image.png

2、Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)

当前Hadoop配置文件中配置服务启动节点都是node01,启动脚本中有需要ssh 到对应的节点启动服务,所有必须要提前配置好免密登录,解决方案在安装步骤中。

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容