centos6启动及关闭ZooKeeper和Hadoop的脚本

本文详细介绍了如何在CentOS 6虚拟机环境中,通过zookeeper-3.4.7管理和启动hadoop-2.7.6集群,包括启动、主备切换、ZKFC故障转移和关闭操作。还提供了关键命令和文件操作,方便运维人员快速管理集群。
摘要由CSDN通过智能技术生成

环境声明

三台centos6虚拟机,使用zookeeper-3.4.7来管理hadoop-2.7.6集群,三台机器分别叫做hadoop01hadoop02hadoop03,其中hadoop01hadoop02namenode,集群之间可以免密互通,使用ssh连接。(以下操作只要在hadoop01上进行即可)

创建文件

/root/bin目录下创建三个.sh文件,文件名及内容如下所示,将文件创建完后,在命令行分别输入

chmod 777 start_zk_hadoop.sh
chmod 777 stop_zk_hadoop.sh
chmod 777 jpsall.sh

为三个文件赋予权限,以后就可以直接输入文件名运行了。

三台机器启动zookeeper和hadoop

先启动三台机器的zookeeper,然后再启动hadoop集群的相关配置,最后查看状态

srart_zk_hadoop.sh
#!/bin/bash

echo -e "\n############ 启动三个节点的zookeeper ############"
for host in hadoop01 hadoop02 hadoop03
do
echo -e "\n================== $host ===================="
# 先使用连接三个主机,source /etc/profile加载环境变量,然后在每台主机分别启动zookeeper,
# 其中/home/software/zookeeper-3.4.7是zk的文件目录,需根据实际情况修改
ssh $host "source /etc/profile; /home/software/zookeeper-3.4.7/bin/zkServer.sh start"
done

echo -e "\n############ 三个节点的zookper状态 ##############"
for host in hadoop01 hadoop02 hadoop03
do 
echo -e "\n================== $host ===================="
ssh $host "/home/software/zookeeper-3.4.7/bin/zkServer.sh status"
done

echo -e "\n############## 启动三个节点的Hadoop #############"

# 先启动hadoop01作为namenode,启动dfs和yarn,并启动zk的相关服务
echo -e "\n=============== hadoop01 =================="
ssh hadoop01 "source /etc/profile; start-dfs.sh; start-yarn.sh; hadoop-daemon.sh start journalnode; yarn-daemon.sh start resourcemanager"

# 然后分别启动hadoop02和hadoop03的剩余组件
echo -e "\n=============== hadoop02 =================="
ssh hadoop02 "source /etc/profile; start-yarn.sh; yarn-daemon.sh start resourcemanager"

echo -e "\n=============== hadoop03 =================="
ssh hadoop03 "source /etc/profile; start-yarn.sh; yarn-daemon.sh start resourcemanager"

# 由于很多时候需要进行对namenode的操作,所以需要知道哪个namenode是处于active状态的
# 本环境中的nn1和nn2是hadoop配置中的两个namenode
echo -e "\n########### 查看avtice和standby节点 #############"
echo -e "\n================ hadoop01 ==================="
hdfs haadmin -getServiceState nn1
echo -e "================ hadoop02 ==================="
hdfs haadmin -getServiceState nn2

主备切换

命令切换

如果对于namenode不满意,如实验需要nn1(namenode1)是active节点,而启动完却是nn2(namenode2)作为active节点,可在命令行中输入

hdfs haadmin -transitionToStandby --forcemanual nn2

nn2换成standby状态,再输入

hdfs haadmin -transitionToActive --forcemanual nn1

nn1换成active状态。最后输入

hdfs haadmin -getServiceState nn1

查看该节点的namenode状态。

ZKFC切换

也可以通过使用zookeeper的Failover Controller故障转移机制来实现,即使用jps查询active节点的namenode进程号,在命令行中输入

kill -9 进程号

将进程杀死,zookeeper会自动在standby的节点中选出一个新的节点作为active节点。然后再在该节点输入

hadoop-daemon.sh start namenode

启动该节点的namenode作为standby节点,以此实现主备节点的切换。

关闭hadoop和zookeeper

先将三台机器的hadoop都关闭,再关闭三台机器的zookpeer服务。

stop_zk_hadoop.sh
#!/bin/bash
echo -e "\n############## 关闭三个节点的Hadoop #############"

# 先关闭hadoop01的一些服务
echo -e "\n============ hadoop01 ==============="
ssh hadoop01 "source /etc/profile; stop-dfs.sh; stop-yarn.sh"

# 分别关闭hadoop02和hadoop03的剩余服务
echo -e "\n============ hadoop02 ==============="
ssh hadoop02 "source /etc/profile; stop-yarn.sh"

echo -e "\n============ hadoop03 ==============="
ssh hadoop03 "source /etc/profile; stop-yarn.sh"

echo -e "\n############ 关闭三个节点的zookeeper ############"
for host in hadoop01 hadoop02 hadoop03
do
echo -e "\n==================== $host ======================"
ssh $host "source /etc/profile; /home/software/zookeeper-3.4.7/bin/zkServer.sh stop; jps"
done

查看三台机器的jps进程

jpsall.sh
#!/bin/bash

for host in hadoop01 hadoop02 hadoop03
do 
echo "============== $host ==============="
ssh $host "source /etc/profile; jps"
done

可以将三台机器的jps进程全部打印出来。

完结撒花 😃!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值