创建六台linux centos7(redhat)虚拟机,起名分别为hadoop001,hadoop002,hadoop003,hadoop004,hadoop005,hadoop006
创建用户hadoop,设置为sudo用户。
1、关闭防火墙
2、配置主机名
3、配置hosts
4、配置密码互通
5、安装jdk1.8
6、安装hadoop
以上参看hadoop单节点安装(注意六台机器都要分别配置)
https://blog.csdn.net/starkpan/article/details/85470433
7、搭建zookeeper集群
参看zookeeper集群搭建
https://blog.csdn.net/starkpan/article/details/85562113
8、配置hadoop001
(1)修改hadoop-env.sh
通过vim打开
vim [hadoop]/etc/hadoop/hadoop-env.sh
主要是修改java_home的路径,在hadoop-env.sh的第27行,把export JAVA_HOME=${JAVA_HOME}修改成具体的路径。
export JAVA_HOME=/home/root/app/jdk1.8.0_181
重新加载使修改生效
source hadoop-env.sh
(2)配置hdfs-site.xml
dfs.nameservices
ns
dfs.ha.namenodes.ns
nn1,nn2
dfs.namenode.rpc-address.ns.nn1
hadoop001:9000
dfs.namenode.http-address.ns.nn1
hadoop001:50070
dfs.namenode.rpc-address.ns.nn2
hadoop002:9000
dfs.namenode.http-address.ns.nn2
hadoop002:50070
dfs.namenode.shared.edits.dir
qjournal://hadoop004:8485;hadoop005:8485;hadoop006:8485/ns
dfs.journalnode.edits.dir
/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/journal
dfs.ha.automatic-failover.enabled
true
dfs.client.failover.proxy.provider.ns
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods
sshfence
dfs.ha.fencing.ssh.private-key-files
/root/.ssh/id_rsa
dfs.namenode.name.dir
file:///home/hadoop/app/hadoop-2.6.0-cdh5.7.0/tmp/namenode
dfs.datanode.data.dir
file:///home/hadoop/app/hadoop-2.6.0-cdh5.7.0/tmp/datanode
dfs.replication
3
dfs.permissions
false
(3)配置mapred-site.xml
说明:在/etc/hadoop的目录下,只有一个mapred-site.xml.template文件,复制一个
cp mapred-site.xml.template mapred-site.xml
通过vim打开
vim [hadoop]/etc/hadoop/mapred-site.xml
配置mapreduce运行在yarn上
mapreduce.framework.name
yarn
(4)配置yarn-site.xml
配置代码:
yarn.resourcemanager.ha.enabled
true
yarn.resourcemanager.ha.rm-ids
rm1,rm2
yarn.resourcemanager.hostname.rm1
hadoop001
yarn.resourcemanager.hostname.rm2
hadoop003
yarn.resourcemanager.recovery.enabled
true
yarn.resourcemanager.store.class
org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
yarn.resourcemanager.zk-address
hadoop001:2181,hadoop002:2181,hadoop003:2181
For multiple zk services, separate them with comma
yarn.resourcemanager.cluster-id
yarn-ha
yarn.resourcemanager.hostname
hadoop001
yarn.nodemanager.aux-services
mapreduce_shuffle
(5)配置slaves文件
hadoop04
hadoop05
hadoop06
9、在创建对应的文件夹
cd /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/
mkdir journal
mkdir tmp
cd tmp
mkdir -p tmp/namenode tmp/datanode
10、通过scp 命令,将hadoop安装目录远程copy到其他5台机器上
#把一个文件夹,完全拷贝到另一台机器
scp -r /home/hadoop/app/hadoop-2.6.0-cdh5.7.0 [email protected]:/home/hadoop/app
或者
先压缩
tar -zcvf hadoop-2.6.0-cdh5.7.0.tar.gz hadoop-2.6.0-cdh5.7.0/
scp hadoop-2.6.0-cdh5.7.0.tar.gz [email protected]:/home/hadoop/sft/
在不同的机器解压
以上配置完成
Hadoop集群启动:
11、启动zookeeper集群(分别在hadoop001,hadoop002,hadoop003执行以下命令)
在Zookeeper安装目录的bin目录下执行:
sh zkServer.sh start
12、格式化zookeeper
在zk的leader节点上执行:
hdfs zkfc -formatZK
这个指令的作用是在zookeeper集群上生成ha节点(ns节点)
查看节点状态
zkServer.sh status
13、启动journalnode集群
在004、005、006节点上执行:
切换到hadoop安装目录的sbin目录下,执行:
sh hadoop-daemons.sh start journalnode
14、格式化001节点的namenode,在001节点上执行:
hadoop namenode -format
15、启动001节点的namenode
hadoop-daemon.sh start namenode
16、把002节点的 namenode节点变为standby namenode节点, 在002节点上执行:
hdfs namenode -bootstrapStandby
17、启动002节点的namenode节点,在002节点上执行:
hadoop-daemon.sh start namenode
18、在004,005,006节点上启动datanode节点
hadoop-daemon.sh start datanode
19、启动zkfc(启动FalioverControllerActive),在001,002节点上执行:
hadoop-daemon.sh start zkfc
20、在001节点上启动 主ResourceManager
start-yarn.sh
启动成功后,004,005,006节点上应该有nodemanager 的进程
21、在003节点上启动副 ResouceManager
yarn-daemon.sh start resourcemanager
以上启动完成
22、查看hadoop Namenode网址
http://[hadoop001的ip]:50070,查看namenode的信息,是active状态的
http://[hadoop002的ip]:50070,查看namenode的信息,是standby状态的
关闭hadoop001 namenode,在001节点执行
hadoop-daemon.sh stop namenode
观察网站namenode变化(001无法访问,002变为active)
23、查看yarn的管理地址(001正常,003跳转001)
http://[hadoop001的ip]:8088(节点01的8088端口)
http://[hadoop003的ip]:8088(节点03的8088端口)
停掉hadoop001的resourcemanager
yarn-daemon.sh stop resourcemanager
观察两个网址变化(001跳转003,003正常)
排错:
1.排查防火墙
2.排查ip,如果不是固定ip的话,要看下ip是否被更换
3.主机名
4.hosts ip和主机名是否对应上
5.排查zk的配置文件
6.排查hadoop的配置文件