准备工作:
服务器配置(6台),采用1+1+4的集群配置,具体信息如下:
168.61.1.11(用作NameNode和ResourceManager),168.61.1.12、168.61.1.13、168.61.1.14、168.61.1.15、168.61.1.16(用作DataNode和NodeManager))。
注:后续将安装HDFS HA QJM,计划在11,12,13上安装Journal Node,12节点同时作为NameNode
大概步骤如下:
以下这些配置都只是先在master操作,然后用命SCP拷贝复制到其它服务器。
1)下载最新hadoop镜像:hadoop-3.3.0,解压到相应目录;
2)配置环境变量在/etc/hosts, /etc/profile,hadoop-en.sh, yarn-en.sh, mapreduce-env.sh;
3)设置免密登录;
4)配置相应文件:workers,core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml;
5)启动集群;
1、修改/etc/hosts
168.61.1.11 hadoop01
168.61.1.12 hadoop02
168.61.1.13 hadoop03
168.61.1.14 hadoop04
168.61.1.15 hadoop05
168.61.1.16 hadoop06
2、安装jdk8(略)
3、修改/etc/profile
JAVA_HOME=/usr/local/tools/jdk1.8.0_231
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
hadoop是守护线程 读取不到 /etc/profile 里面配置的JAVA_HOME路径 ,
所以在 hadoop-env.sh,yarn-env.sh,mapred-env.sh配置 JAVA_HOME, 这样才能读取到JAVA_HOME
# variable is REQUIRED on ALL platforms except OS X!
export JAVA_HOME=/usr/local/tools/jdk1.8.0_231
将master1上的/etc/profile, hadoop-env.sh,yarn-env.sh,mapred-env.sh传到其他服务器上,
再登录到每个服务器上去:source /etc/profile, ./hadoop-env.sh, ./yarn-env.sh, ./mapred-env.sh。
4、六台机器ssh相互信任
ssh生成相应密钥对:id_rsa私钥和id_rsa.pub公钥
ssh-keygen -t rsa -P ''
注:使用ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa命令可避免交互式操作。
默认是存在/当前user/.ssh(/root/.ssh或者/home/user/.ssh)下的!
在主节点上将公钥拷到一个特定文件authorized_keys中,
cat id_rsa.pub >> authorized_keys
试一下是否本地免密登陆设置成功:
ssh localhost #第一次登陆需要确定,输入yes
如果没有问题,那么配置其他服务器,其实只需要把本机master1的id_rsa.pub复制到其他服务器上就可以了!这里就选择ssh-copy-id命令传送到其他服务器上。
# ssh-copy-id appadmin@hadoop02
# ssh-copy-id appadmin@hadoop03
# ssh-copy-id appadmin@hadoop04
# ssh-copy-id appadmin@hadoop05
# ssh-copy-id appadmin@hadoop06
5、关闭防火墙或者六台机器ip都加到白名单
[root@hadoop01 opt]# systemctl stop firewalld
[root@hadoop01 opt]# systemctl disable firewalld
6、配置hadoop环境
主要是修改4个配置文件:core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml
配置core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-3.3.0/tmp</value>
</property>
</configuration>
配置hdfs-site.xml
<configuration>
<property>
<name><