xsync脚本的完整版和Hadoop集群启动脚本
Posted 瑞雪兆丰年(润 )
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xsync脚本的完整版和Hadoop集群启动脚本相关的知识,希望对你有一定的参考价值。
目录
1、在# /home/ydr/bin 目录下创建xsync文件(一定要在bin目录下!!)
1、在# /home/ydr/bin 目录下创建myhadoop.sh /jpsall文件(一定要在bin目录下!!)
2、[ydr@yangdarun01 ~]$ vim myhadoop.sh
3、[ydr@yangdarun01 ~]$ vim jpsall
5、 分发 /home/ydrbin目录,保证自定义脚本在三台机器上都可以使用(顺便检验一下刚才配置的xsync 效果如何!!)
(------------------------------------------------------木易白驹-----------------------------------------------------------)
一、rsync远程同步工具
1、优点:rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
2、区别:rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
3、基本语法
rsync -av
命令选项参数要拷贝的文件路径/名称,目的地用户@主机:目的地路径/名称
选项参数说明
选项 | 功能 |
-a | 归档拷贝 |
-v | 显示复制过程 |
二、xsync集群分发脚本
脚本实现
1、在# /home/ydr/bin 目录下创建xsync文件(一定要在bin目录下!!)
图1
2、创建 #vim xsync
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
图2
3、修改脚本 xsync 具有执行权限
[ydr@yangdarun01 bin]$ chmod +x xsync
4、测试脚本
[ydr@yangdarun01 ~]$ xsync /home/ydr/bin
5、将脚本复制到/bin中,以便全局调用
[ydr@yangdarun01 bin]$ sudo cp xsync /bin/
6、同步环境变量配置(root所有者)
[ydr@yangdarun01 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh
7、让环境变量生效
[ydr@yangdarun02 bin]$ source /etc/profile
[ydr@yangdarun03 opt]$ source /etc/profile
三、Hadoop集群脚本
脚本实现
1、在# /home/ydr/bin 目录下创建myhadoop.sh /jpsall文件(一定要在bin目录下!!)
2、[ydr@yangdarun01 ~]$ vim myhadoop.sh
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 启动 hadoop集群 ==================="
echo " --------------- 启动 hdfs ---------------"
ssh yangdarun01 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 启动 yarn ---------------"
ssh yangdarun02 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 启动 historyserver ---------------"
ssh yangdarun01 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 关闭 hadoop集群 ==================="
echo " --------------- 关闭 historyserver ---------------"
ssh yangdarun01 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
echo " --------------- 关闭 yarn ---------------"
ssh yangdarun02 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 关闭 hdfs ---------------"
ssh yangdarun01 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error..."
;;
esac
图3
3、[ydr@yangdarun01 ~]$ vim jpsall
#!/bin/bash
for host in yangdarun01 yangdarun02 yangdarun03
do
echo =============== $host ===============
ssh $host jps
done
~
~
图4
4、保存后退出,然后赋予脚本执行权限
[ydr@yangdarun01 bin]$ chmod +x myhadoop.sh
[ydr@yangdarun01 bin]$ chmod +x jpsall
提示:一定要赋予脚本执行权限,不然启动是会显示权限不够,导致无法启动Hadoop!!
5、 分发 /home/ydrbin目录,保证自定义脚本在三台机器上都可以使用(顺便检验一下刚才配置的xsync 效果如何!!)
[ydr@yangdarun01~]$ xsync /home/ydr/bin/
四、效果图
[ydr@yangdarun01 bin]$ myhadoop.sh start/stop
[ydr@yangdarun01 bin]$ jpsall
图5
图6
(------------------------------------------------------木易白驹-----------------------------------------------------------)
加油!未来可期!
以上是关于xsync脚本的完整版和Hadoop集群启动脚本的主要内容,如果未能解决你的问题,请参考以下文章
Hadoop运行模式本地运行模式(官方WordCount)完全分布式运行模式(开发重点)scp安全拷贝rsync 远程同步工具xsync集群分发脚本同步环境变量配置(root所有着)