搭建高可用集群
搭建Zookeeper
准备三台相互免秘钥的虚拟机
上传zookeeper 解压 移动
解压zookeeper的tar包
--语法:
tar -zxf zookeeper-3.4.6.tar.gz
移动zookper目录
--语法:
mv zookeeper-3.4.6 /opt/sxt/
修改配置文件zoo.cfg
进入zookeeper配置文件目录
--语法示例:
cd /opt/sxt/zookeeper-3.4.6/conf/
修改配置文件文件名
--语法示例:
cp zoo_sample.cfg zoo.cfg
编辑配置文件
--语法示例:
vim zoo.cfg
#修改zookeeper数据存放的目录
.
#设置服务器内部通信的地址和zk集群的节点
…
创建myid
即是在生成配置文件目录conf中创建3个myid
(内容分别是 1 2 3)
--语法示例:
mkdir -p /var/sxt/zookeeper
touch /var/sxt/zookeeper/myid
echo 1 > /var/sxt/zookeeper/myid
echo 2 > /var/sxt/zookeeper/myid
echo 3 > /var/sxt/zookeeper/myid
--分别对应主机1 2 3
--myid是zookeeper除事务之外的最优先选取leader的条件 值越大越优先
分别拷贝Zookeeper目录到主机2 主机3
--语法:
scp -r root@bd1301:/opt/sxt/zookeeper-3.4.6 /opt/sxt/
设置环境变量
--语法:
vim /etc/profile
分别拷贝环境变量到主机2主机3
--语法:
scp -r root@bd1301:/etc/profile /etc/profile
加载3台主机的环境变量
--语法:
source /etc/profile
测试:
开启zookeeper 集群
zkServer.sh start
--开启3台主机的zookeeper
查看zookeeper集群状态
zkServer.sh status
关闭zookeeper集群
zkServer.sh stop
关机拍摄快照
shutdown -h now
--关机(3台主机关闭)
搭建Hadoop-HA
配置
传输 解压 拷贝
--语法:
--解压hadooptar包
tar -zxf hadoop-2.6.5.tar.gz
--移动解压文件目录
mv hadoop-2.6.5 /opt/sxt/
修改.sh配置文件
--进入hadoop配置文件目录
cd /opt/sxt/hadoop-2.6.5/etc/hadoop/
修改.sh文件的JAVA_HOME配置
vim hadoop-env.sh
vim mapred-env.sh
vim yarn-env.sh
--每个文件的修改项
JAVA_HOME=/usr/java/jdk1.7.0_67
修改.xml配置
修改core-site.xml
--语法:
vim core-site.xml
--配置示例:
<property>
<name>fs.defaultFS</name>
<value>hdfs://shsxt</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>bd1301:2181,bd1302:2181,bd1303:2181</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/sxt/hadoop/ha</value>
</property>
修改hdfs-site.xml
--语法:
vim hdfs-site.xml
--配置示例:
<property>
<name>dfs.nameservices</name>
<value>shsxt</value>
</property>
<property>
<name>dfs.ha.namenodes.shsxt</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.shsxt.nn1</name>
<value>bd1301:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.shsxt.nn2</name>
<value>bd1302:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.shsxt.nn1</name>
<value>bd1301:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.shsxt.nn2</name>
<value>bd1302:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://bd1301:8485;bd1302:8485;bd1303:8485/shsxt</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/var/sxt/hadoop/ha/jn</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.shsxt</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
<value>shell(true)</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
修改slaves
--语法:
vim slaves
--配置示例:
bd1301
bd1302
bd1303
分别拷贝zookeeper目录到主机2和主机3
--语法:
scp -r root@bd1301:/opt/sxt/hadoop-2.6.5/ /opt/sxt/
修改环境变量
--语法:
vim /etc/profile
配置示例:
分别拷贝环境变量到主机2和主机3
--语法:
scp -r root@bd1301:/etc/profile /etc/profile
分别加载3台主机环境变量
--语法:
source /etc/profile
启动及测试
分别启动3台主机JournalNode线程
--语法:
hadoop-daemon.sh start journalnode
查看java进程
--语法:
jps
格式化主NameNode
--语法:
hdfs namenode -format
启动主节点namenode
--语法:
hadoop-daemon.sh start namenode
启动备用NameNode节点(主机2)
--语法:
hdfs namenode -bootstrapStandby
启动3台主机的Zookeeper
--语法:
zkServer.sh start
查看zookeeper服务状态
--语法:
zkServer.sh status
格式化ZKFC
--语法:
hdfs zkfc -formatZK
开启hadoop
--语法:
start-dfs.sh
Yarn环境 各节点简析
上图中紫色互相对应 红色互相对应 (个数匹配)
NN – namenode
核心节点 master
DN – datanode
数据节点
JNN – journalnode
namenode之间做数据同步
RS – resourcemanager
交互 分配资源调度
NM – nodemanager
与ResourceManager保持通信,管理 监控Container
Container – yarn中资源的抽象
ZKFC - FailoverController
FailoverController 也就是ZKFC进程
健康检测:zkfc会周期性的向它监控的namenode(只有namenode才有zkfc进程,并且每个namenode各一个)发生健康探测命令,从而鉴定某个namenode是否处于正常工作状态,如果机器宕机,心跳失败,那么zkfc就会标记它处于不健康的状态;
搭建Yarn环境
需要Hadoop-HA 集群
首先保证当前集群是关闭状态
- 切换目录
语法:
cd /opt/sxt/hadoop-2.6.5/etc/hadoop/
修改mapred-site.xml
--拷贝并改名
--语法:
cp mapred-site.xml.template mapred-site.xml
--编辑mapred-site.xml
--语法:
vim mapred-site.xml
--配置示例:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
修改yarn-site.xml
--语法:
vim yarn-site.xml
--配置示例:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>mr_shsxt</value>
</property>
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>bd1303</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>bd1301</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>bd1301:2181,bd1302:2181,bd1303:2181</value>
</property>
拷贝mapred-site.xml和yarn-site.xml到主机2和主机3
--语法:
scp root@bd1301:/opt/sxt/hadoop-2.6.5/etc/hadoop/mapred-site.xml /opt/sxt/hadoop-2.6.5/etc/hadoop/
scp root@bd1301:/opt/sxt/hadoop-2.6.5/etc/hadoop/yarn-site.xml /opt/sxt/hadoop-2.6.5/etc/hadoop/
Yarn集群开启&关闭
开启集群流程
- 启动所有主机的zookeeper
--语法:
zkServer.sh start
- 启动dfs和yarn
--语法:
start-all.sh
--或分别启动
--语法:
start-dfs.sh
start-yarn.sh
- 启动主机3的resourcemanager
--语法:
yarn-daemon.sh start resourcemanager
关机拍摄快照
- 关闭dfs和yarn
--语法:
stop-all.sh
--或者
stop-dfs.sh
stop-yarn.sh
- 关闭主机3的resourcemanager
--语法:
yarn-daemon.sh stop resourcemanager
- 关闭所有主机的zookeeper
--语法:
zkServer.sh stop
来源:CSDN
作者:BF-LoneSilverWind
链接:https://blog.csdn.net/digua930126/article/details/103486419