当前位置:   article > 正文

Hadoop集群---方便的脚本_myhadoop.sh 命令

myhadoop.sh 命令

目录

为什么编写脚本?

myhadoop.sh 群起集群、关闭集群脚本

1、配置

2、启用

jpsall 查看三台主机进程脚本

1、配置

2、启用

xsync 分发脚本

1、配置

2、启用


  • 为什么编写脚本?

方便

  • myhadoop.sh 群起集群、关闭集群脚本

1、配置

在 root/bin 目录下创建脚本 (在这个目录下方便全局使用)

vim myhadoop.sh

把以下代码粘贴进去,一定要修改主机名,按照自己的需求修改,比如我的NameNode在第二台主机上启动,那启动hdfs时主机名就填第二台主机

  1. #!/bin/bash
  2. if [ $# -lt 1 ]
  3. then
  4. echo "No Args Input..."
  5. exit ;
  6. fi
  7. case $1 in
  8. "start")
  9. echo " =================== 启动 hadoop 集群 ==================="
  10. echo " --------------- 启动 hdfs ---------------"
  11. ssh hadoop02 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
  12. echo " --------------- 启动 yarn ---------------"
  13. ssh hadoop01 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
  14. echo " --------------- 启动 historyserver ---------------"
  15. ssh hadoop01 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
  16. ;;
  17. "stop")
  18. echo " =================== 关闭 hadoop 集群 ==================="
  19. echo " --------------- 关闭 historyserver ---------------"
  20. ssh hadoop01 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
  21. echo " --------------- 关闭 yarn ---------------"
  22. ssh hadoop01 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
  23. echo " --------------- 关闭 hdfs ---------------"
  24. ssh hadoop02 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
  25. ;;
  26. *)
  27. echo "Input Args Error..."
  28. ;;
  29. esac

2、启用

脚本保存退出后并不是绿色的可执行文件,要给脚本加上执行权限

chmod +x /root/bin/myhadoop.sh

 变成绿色后就可以执行了:

  1. myhadoop.sh start #启动集群
  2. myhadoop.sh stop #关闭集群

  • jpsall 查看三台主机进程脚本

想查看每台主机上的进程,不用再来回切换,jpsall可以同时列出三台主机进程

1、配置

在 root/bin 目录下创建脚本 (在这个目录下方便全局使用)

 

vim jpsall

 粘贴以下代码:

  1. #!/bin/bash
  2. for host in hadoop01 hadoop02 hadoop03
  3. do
  4. echo =============== $host ===============
  5. ssh $host jps
  6. done

2、启用

脚本保存退出后并不是绿色的可执行文件,要给脚本加上执行权限

  1. chmod +x jpsall
  2. #在jpsall的上级目录执行

如果报错:jps找不到命令....

可能缺少依赖,三台主机执行命令:

sudo yum install java-1.8.0-openjdk-devel.x86_64

如果还是报错可能是java版本低或者软连接问题,可自行搜索解决。

完成后可试验一下jpsall能展示出Hadoop集群的结点:

 

  • xsync 分发脚本

1、配置

在 root/bin 目录下创建脚本 (在这个目录下方便全局使用)

vim xsync

粘贴以下代码:

  1. #!/bin/bash
  2. #1. 判断参数个数
  3. if [ $# -lt 1 ]
  4. then
  5. echo Not Enough Arguement!
  6. exit;
  7. fi
  8. #2. 遍历集群所有机器
  9. for host hadoop01 hadoop02 hadoop03
  10. do
  11. echo ==================== $host ====================
  12. #3. 遍历所有目录,挨个发送
  13. for file in $@
  14. do
  15. #4. 判断文件是否存在
  16. if [ -e $file ]
  17. then
  18. #5. 获取父目录
  19. pdir=$(cd -P $(dirname $file); pwd)
  20. #6. 获取当前文件的名称
  21. fname=$(basename $file)
  22. ssh $host "mkdir -p $pdir"
  23. rsync -av $pdir/$fname $host:$pdir
  24. else
  25. echo $file does not exists!
  26. fi
  27. done
  28. done

2、启用

 脚本保存退出后并不是绿色的可执行文件,要给脚本加上执行权限

  1. chmod +x xsync
  2. #在xsync的上级目录执行

 执行命令:

  1. #比如要分发 /opt/module/abc.txt
  2. xsync /opt/module/abc.txt

如果报错:bash:rsync找不到命令

三台主机上安装rsync:

yum -y install rsync

over!!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/880133
推荐阅读
相关标签
  

闽ICP备14008679号