目录
注:hadoop2X HA安装部署参考:
Hadoop2X HA环境部署_一个人的牛牛的博客-CSDN博客
一、前期准备
1.1安装了jdk
没有的可以参考:
Linux系统CentOS7安装jdk_一个人的牛牛的博客-CSDN博客
1.2安装了zookeeper分布式
没有的可以参考:
zookeeper单机和集群(全分布)的安装过程_一个人的牛牛的博客-CSDN博客
1.3配置免密码登录
没有的可以参考:
Linux配置免密登录单机和全分布_一个人的牛牛的博客-CSDN博客
1.4机器准备
主节点 | 从节点 |
hadoop01 | hadoop02 |
hadoop02 | hadoop03 |
笔记本性能不够,没有安装多的虚拟机,hadoop02重复使用。
二、安装部署
2.1上传
MobaXterm_Portable的简单使用_一个人的牛牛的博客-CSDN博客_mobaxterm portable和installer区别
2.2解压
进入安装包目录,执行:
tar -zvxf hadoop-3.1.3.tar.gz /training/
2.3配置环境变量(每一台都要)
vi ~/.bash_profile
#hadoop
export HADOOP_HOME=/training/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
环境变量生效
source ~/.bash_profile
2.4修改hadoo-env.sh
进入hadoop目录的etc/hadoop目录,如:/training/hadoop-2.7.3/etc/hadoop,执行:
vi hadoo-env.sh
添加内容:
export JAVA_HOME=/training/jdk1.8.0_171
2.5修改core-site.xml
进入hadoop目录的etc/hadoop目录,如:/training/hadoop-2.7.3/etc/hadoop,执行:
vi core-site.xml
添加内容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://HAhadoop01</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/training/hadoop-3.1.3/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
</configuration>
2.6修改hdfs-site.xml
进入hadoop目录的etc/hadoop目录,如:/training/hadoop-2.7.3/etc/hadoop,执行:
vi hdfs-site.xml
添加内容:
<configuration>
<property>
<name>dfs.nameservices</name>
<value>HAhadoop01</value>
</property>
<property>
<name>dfs.ha.namenodes.HAhadoop01</name>
<value>HAhadoop02,HAhadoop03</value>
</property>
<property>
<name>dfs.namenode.rpc-address.HAhadoop01.HAhadoop02</name>
<value>hadoop01:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.HAhadoop01.HAhadoop02</name>
<value>hadoop01:9870</value>
</property>
<property>
<name>dfs.namenode.rpc-address.HAhadoop01.HAhadoop03</name>
<value>hadoop02:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.HAhadoop01.HAhadoop03</name>
<value>hadoop02:9870</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://hadoop01:8485;hadoop02:8485;/HAhadoop01</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/training/hadoop-3.1.3/journal</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled.HAhadoop01</name>
<value>true</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.HAhadoop01</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/training/hadoop-3.1.3/data</value>
</property>
<property>
<name>dfs.datanode.name.dir</name>
<value>/training/hadoop-3.1.3/name</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
进入hadoop目录,用mkdir创建tmp,journal,logs
2.7修改mapred-site.xml
进入hadoop目录的etc/hadoop目录,如:/training/hadoop-2.7.3/etc/hadoop,执行:
vi mapred-site.xml
添加内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2.8修改yarn-site.xml
进入hadoop目录的etc/hadoop目录,如:/training/hadoop-2.7.3/etc/hadoop,执行:
vi yarn-site.xml
添加内容:
<configuration>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarn</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>hadoop02</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
2.9修改workers
进入hadoop目录的etc/hadoop目录,如:/training/hadoop-2.7.3/etc/hadoop,执行:
vi workers
添加内容:
hadoop02
hadoop03
2.10修改:yarn-env.sh
添加
export JAVA_HOME=/training/jdk1.8.0_171
2.11拷贝到其他节点
2.11.1:scp
scp -r hadoop-2.7.3/ root@hadoop02:/training/
scp -r hadoop-2.7.3/ root@hadoop03:/training/
2.11.2:rsync
xsync /training/hadoop-3.1.3
xsync分发脚本参考:
jps、kafka、zookeeper群起脚本和rsync文件分发脚本(超详细)_一个人的牛牛的博客-CSDN博客
三、验证
3.1启动zookeeper集群(每一台都要)
进入zookeeper的bin目录下执行:
zkServer.sh start
jps查看
jps、kafka、zookeeper群起脚本和rsync文件分发脚本(超详细)_一个人的牛牛的博客-CSDN博客
3.2启动
#在所有节点启动journalnode(一次,不可多次执行)
hadoop-daemon.sh start journalnode
#格式化HDFS(在hadoop01上执行)(一次,不可多次执行)
hdfs namenode -format
#将hadoop-3.1.3/tmp拷贝到hadoop02的/root/training/hadoop-3.1.3/tmp下
scp -r /training/hadoop-3.1.3/tmp/ root@hadoop02:/training/hadoop-3.1.3/
#格式化zookeeper(一次,不可多次执行)
hdfs zkfc -formatZK
会有日志Successfully created /hadoop-ha/HAhadoop01 in ZK.
#在所有节点停止journalnode(一次,不可多次执行)
hadoop-daemon.sh stop journalnode
#hadoop01和hadoop02上启动zkfc
hadoop-daemon.sh start zkfc
#在hadoop01上启动Hadoop集群
start-all.sh
3.3jps查看进程
3.4浏览器验证9870
浏览器输入:hadoop01:9870
没有做ip地址映射的输入ip+9870如:192.168.12.137:9870
3.5 浏览器验证8088