Shell一键部署Hadoop集群说明手册v1.0.0

一、一键部署需求分析1. 安装系统,搭建基础环境
      
安装 Centos 系统,在系统上安装 Jdk ,配置 SSH 服务免密码登陆
2. 一键部署Hadoop到集群各节点
下载 Hadoop Hbase Zookeeper 源码包到主节点,然后一键部署到各子节点并解压
3. 一键同步核心配置文件
在主节点将核心参数进行配置和调优后,同步配置文件到各子节点。
4. 一键启动/停止/重启服务
在主节点一键启动 Zookeeper 服务, Hadoop 服务和 Hbase 服务。
二、一键部署操作说明 1. 详细操作步骤
(1) 在虚拟集群各节点上,安装 Centos 系统,安装 Jdk ,配置 SSH 免密码登陆,详见“ hadoop 集群配置手册”
(2) 执行一键部署脚本

>chmod +x obd_install  #给脚本赋予可执行权限

>./obd_install
(3) 执行一键同步配置文件脚本 ( 如果有改动 )

>chmod +x obd_update_conf  #给脚本赋予可执行权限

>./obd_update_conf
(4) 一键启动 / 停止 / 重启服务

>chmod +x obd_service  #给脚本赋予可执行权限

>./obd_servicestart-all   #启动服务

# 其他服务命令还有 ( 命令前输入 ./obd_service)
#start-hadoop start-hbase start-zookeeper
#restart-all restart-hadoop restart-hbase restart-zookeeper
#stop-all stop-hadoop stop-hbase stop-zookeeper

2. 成功部署状态

三、脚本实现及分析1.开发环境:
(1) 软件版本:Centos6.4系统、Jdk1.6.0_25、Hadoop-1.0.3、Hbase-0.94.1-security、Zookeeper-3.4.3
(2) 用户信息:三台实验节点(Master2、Slave21、Slave22),目标用户均为hadoop,目标安装路径均为/home/hadoop
2.脚本代码及注释
(1) 部署Hadoop到集群各节点的shell脚本
文件名:obd_install
#!/bin/bash

tar_name=obd.tar.gz
tar_path=/home/hadoop
name=hadoop
hosts="Slave21 Slave22"

echo "####### batch scp ########"
for host in $hosts;do
echo "------ scp to $name ! ------"
scp $tar_name $name@$host:$tar_path
done

echo "####### batch extract ########"
for host in $hosts;do
echo "------ extract in $name! ------"
ssh $host  "tar-xvf $tar_name"
done
备注: obd.tar.gz 中包含文件有:
(hadoop-1.0.3 、hbase-0.94.1-security、zookeeper-3.4.3、temp)
其中文件temp/zookeeper/data/myid文件中的值需要手动配置,与zookeeper-3.4.3/conf/zoo.cfg中的server.后的数值匹配。
(2) 一键同步核心配置文件的shell脚本
文件名:obd_update_conf
#!/bin/bash

ha_path=/home/hadoop/hadoop-1.0.3
hb_path=/home/hadoop/hbase-0.94.1-security
zk_path=/home/hadoop/zookeeper-3.4.3
name=hadoop
hosts="Slave21 Slave22"

for host in $hosts;do
echo "########### update $host conf ###########"
scp -r $ha_path/conf $name@$host:$ha_path
scp -r $hb_path/conf $name@$host:$hb_path
scp -r $zk_path/conf $name@$host:$zk_path
done
echo "########## end update! ##############"
备注: 更改主节点上的配置参数后,所有的核心配置文件件都将同步一遍,尚未进行区分同步。
(3) 一键启动/停止/重启服务的shell脚本
文件名:obd_service
#!/bin/bash
COMMAND=$1
EXTRA=$2
HADOOP_PATH=/home/hadoop/hadoop-1.0.3
HBASE_PATH=/home/hadoop/hbase-0.94.1-security
ZK_PATH=/home/hadoop/zookeeper-3.4.3
HOSTS="Master2 Slave21 Slave22"

#------------- restart ----------------
if [ "$COMMAND" = "restart-all" ]; then
       for host in$HOSTS;do
       ssh $host"$ZK_PATH/bin/zkServer.sh stop"
       done 
       $HBASE_PATH/bin/stop-hbase.sh
       $HADOOP_PATH/bin/stop-all.sh
       for host in$HOSTS;do
       ssh $host"$ZK_PATH/bin/zkServer.sh start"
       done
       $HADOOP_PATH/bin/start-all.sh
       $HBASE_PATH/bin/start-hbase.sh
       
elif [ "$COMMAND" = "restart-hadoop" ];then
      $HBASE_PATH/bin/stop-hbase.sh
       $HADOOP_PATH/bin/stop-all.sh
       $HADOOP_PATH/bin/start-all.sh
       $HBASE_PATH/bin/start-hbase.sh
elif [ "$COMMAND" = "restart-hbase" ];then
       $HADOOP_PATH/bin/stop-all.sh
       $HADOOP_PATH/bin/start-all.sh
#------------- start ----------------
elif [ "$COMMAND" = "start-all" ]; then
       for host in$HOSTS;do
       ssh $host"$ZK_PATH/bin/zkServer.sh start"
       echo "#####start $host zkServer succeed! #####"
       done
       $HADOOP_PATH/bin/start-all.sh
       $HBASE_PATH/bin/start-hbase.sh
elif [ "$COMMAND" = "start-hadoop" ];then
       $HADOOP_PATH/bin/start-all.sh
elif [ "$COMMAND" = "start-hbase" ];then
       $HBASE_PATH/bin/start-hbase.sh
elif [ "$COMMAND" = "start-zookeeper" ];then
       for host in$HOSTS;do
       ssh $host"$ZK_PATH/bin/zkServer.sh start"
       echo "#####start $host zkServer succeed! #####"
       done
#------------- stop ----------------
elif [ "$COMMAND" = "stop-all" ]; then
       $HBASE_PATH/bin/stop-hbase.sh
        $HADOOP_PATH/bin/stop-all.sh
       for hostin $HOSTS;do
       ssh $host"$ZK_PATH/bin/zkServer.sh stop"
       done
elif [ "$COMMAND" = "stop-hadoop"]; then
       $HADOOP_PATH/bin/stop-all.sh
elif [ "$COMMAND" = "stop-hbase"]; then
       $HBASE_PATH/bin/stop-hbase.sh
elif [ "$COMMAND" = "stop-hbase"]; then
       $HBASE_PATH/bin/stop-hbase.sh
elif [ "$COMMAND" ="stop-zookeeper" ]; then
       echo"### closing hbase service! ###"
       $HBASE_PATH/bin/stop-hbase.sh
       echo"### closing zookeeper service! ###"
       for hostin $HOSTS;do
       ssh $host"$ZK_PATH/bin/zkServer.sh stop"
       done
#------------- other command -----------
elif [ "$COMMAND" = "zookeeper" ];then
       for hostin $HOSTS;do
       echo"##### result in $host ! #####"
       ssh $host"$ZK_PATH/bin/zkServer.sh $EXTRA"
       done
#------------- help ----------------
else
       echo"---------- command list ---------------"
       echo"restart-all | restart-hadoop | restart-hbase"
       echo"start-all   | start-hadoop   | start-hbase"
       echo"stop-all    | stop-hadoop    | stop-hbase"
f i
备注: 其中zookeeper服务的开启需要执行SSH远程控制命令,当子节点防火墙开启时,该命令尚不能正确执行。
四、小结   通过开发与测试,初步完成了通过shell脚本的一键安装和同步,脚本尚不完善,但基本功能可以实现。
由于时间紧迫,“基础环境的一键安装”涉及技术繁琐,后续应用频率不高,该次未做开发;“一键同步配置文件”测试阶段应用频率最高,从而进行了重点开发。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值