shuijingping 发表于 2018-10-29 07:46:51

hadoop+zookeeper+hbase 开机自启动

  hadoop2.7.3+zookeeper3.4.9+hbase1.2.6
  我想让它们实现开机自启动,需要2个脚本实现。h1.sh 和h2.sh.
  #!/bin/bash
  #discribe: 实现hadoop+zookeeper+hbase开机自启动
  #对我非常有用的链接:ssh 到其他机器,实现zk启动。https://zhidao.baidu.com/question/1447196109490350780.html
  #while true 我会用,但不熟。
  #有小人挡路,不要怕。也不要以自己的能力克服小人,因为你克服不了。可以自己绕过去。或者找其他人克服小人。
  #实现开机自动启动,多亏了下面这篇链接,解决了切换用户后,继续执行下面的命令。http://www.iyunv.net/article/59255.htm
  #因此,这个脚本还需要同目录h1.sh 这个脚本的配合,完成整体的开机自启动。h1.sh 的作用就是切换用户后,执行这个脚本。
  内容如下:
  h2.sh:
  while true
  do
  for ip in master11 slave22 slave23
  do
  ping -c 5 $ip &>/dev/null &# 不加&符号,会一直提示。没法敲其他命令了。 &>/dev/null也很重要。
  if [ $? -ne 0 ];then
  tag=1;
  echo $ip+"NO kai ji"
  break
  else
  tag=0
  fi
  done
  if [ $tag -eq 0 ];then
  break
  fi
  break   #这是一个难点。它的作用是跳出while循环。避免死循环。
  done
  /usr/local/hadoop273/sbin/start-all.sh
  [ $? -eq 0 ] && sleep 5||exit 1
  for i in master11 slave22 slave23
  do
  ssh $i "/home/hadoop/hadoop/zookeeper-3.4.9/bin/zkServer.sh start"
  done
  #[ $? -eq 0 ] && /usr/local/hbase-1.2.6/bin/start-hbase.sh|| exit 2
  if [ $? -eq 0 ];then
  /usr/local/hbase-1.2.6/bin/start-hbase.sh
  else
  echo "zk no ok"
  fi
  h1.sh:
  su - hadoop -s /bin/bash /root/h2.sh.
  把h1.sh 放到/etc/init.d/底下,就行了。
  脚本得有执行权限。

页: [1]
查看完整版本: hadoop+zookeeper+hbase 开机自启动