HDFS部署
说明
自己部署了下HDFS,在网上搜索了一些博客,部署后遇到了一些问题,现在整理下,方便以后回忆
参考:
https://blog.csdn.net/qq_24829007/article/details/79465684
https://blog.csdn.net/jushentong/article/details/83041187
集群节点
NameNode:node001,SecondNameNode:node002
DataNode1:node002,DataNode2:node003,DataNode3:node004
前期准备
(1)关闭防火墙
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态:systemctl status firewalld
开机禁用: systemctl disable firewalld
开机启用 systemctl enable firewalld
(2)设置ip别名
将四台机器/etc/hosts设置为如下:
(3)设置免密登录
生成密匙
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
将NameNode的密匙发送给其他机器
cd /root/.ssh
scp ./id_dsa.pub node003:/root/node001.pub
scp ./id_dsa.pub node003:/root/node001.pub
scp ./id_dsa.pub node004:/root/node001.pub // 生成的共有密钥发送给各个节点
cat ./node001.pub >> ~/.ssh/authorized_keys // 将共有密钥加入信任名单,NameNode(node001)也需要进行此步
只将NameNode发送给其他机器即可,不需逆向
下载Hadoop
官网地址http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
解压到想安装目录下
tar -zxvf hadoop-2.8.5.tar.gz
配置环境变量(以安装目录为例)
java
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64/jre
export PATH=$PATH:$JAVA_HOME/bin
Hadoop
export HADOOP_HOME=/software/hadoop-2.8.5
export PATH=$PATH:$HADOOP_HOME/bin:$PATH:$HADOOP_HOME/sbin
其他机器也需要相同配置,为方便可使用scp复制
修改Hadoop配置文件
core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://node001:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.8</value>
</property>
每台机器都需要手动新建/opt/hadoop-2.8目录
hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node002:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>node002:50091</value>
</property>
<property>
<name>heartbeat.recheck.interval</name>
<value>5000</value>
</property>
<property>
<name>dfs.heartbeat.interval</name>
<value>3</value>
</property>
slaves
node002
node003
node004
把配置好的hadoop-2.8.5文件夹直接复制到其他服务器上
scp -r /software/hadoop-2.8.5 node002:/software/hadoop-2.8.5
scp -r /software/hadoop-2.8.5 node003:/software/hadoop-2.8.5
scp -r /software/hadoop-2.8.5 node004:/software/hadoop-2.8.5
格式化文件系统,只有第一次才需要
hdfs namenode -format
启动Hadoop
start-dfs.sh
启动时会让你输入其他四台机器密码,遇到命令执行不动或密码错误就一直按Enter键换行输入密码即可
遇到问题
(1)java.net.NoRouteToHostException: 没有到主机的路由问题
原因:未关闭防火墙
(2)datanode information数据显示不全,只显示一台localhost数据节点问题,也就是下图不会展示3个节点:
原因:/etc/hosts文件没有将localhost注调,即下图红框内容