大数据集群常用脚本

编程入门 行业动态 更新时间:2024-10-25 14:35:47

大数据<a href=https://www.elefans.com/category/jswz/34/1771240.html style=集群常用脚本"/>

大数据集群常用脚本

目录

      • 拉取所有节点的jps myjps
      • 同步文件脚本 xsync
      • hadoop启停脚本 hdp.sh
      • xcall.sh 命令
      • zk启停脚本 zk.sh
      • flume 启停脚本 f1.sh-消费
      • flume 启停脚本 f2.sh-生产
      • kakfa启停脚本 kf.sh
      • superset 启停脚本 状态查看
      • 总控

拉取所有节点的jps myjps

  1. 在普通用户的家目录下新建bin目录,专门存放脚本
/home/admin/bin
  1. 在 bin 目录下 vim 文件 myjps.sh
#!/bin/bash
for(( i=102;i<=104;i=$i+1 ))
doecho "------------ hadoop$i ------------"ssh hadoop$i /opt/module/jdk1.8.0_212/bin/jps
done
  1. 赋予脚本可执行权限
sudo chmod u+x myjps.sh

同步文件脚本 xsync

同步命令 xsync [文件名]

#!/bin/bash#1. 判断参数个数,小于1个,报错
if [ $# -lt 1 ];then # $#:表示获取输入参数的个数echo Not Enough Arguement!exit;
fi
#2. 遍历集群所有机器
for ((i=102; i<=104; i=$i+1))
do	echo "*********************** hadoop$i ***********************"#3. 遍历所有目录,挨个发送for file in $@do#4 判断文件是否存在if [ -e $file ];then#5. 获取父目录pdir=$(cd -P $(dirname $file);pwd)#6. 获取当前文件的名称fname=$(basename $file)ssh hadoop$i "mkdir -p $pdir" # 加-p:若目录已经存在,忽略rsync -av $pdir/$fname hadoop$i:$pdirelseecho $file does not exists!fidone
done

如果要同步的文件[my_env.sh]具有root权限,需要跟上脚本的全路径

sudo /home/atguigu/bin/xsync /etc/profile.d/my_env.sh

个别参数解释:

1)

2)

3)

hadoop启停脚本 hdp.sh

脚本用法:

启动命令 hdp.sh start
关闭命令 hdp.sh stop

#!/bin/bashcase $1 in
"start")echo "---------------------- 启动hdfs -------------------------"ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"echo "---------------------- 启动yarn -------------------------"ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"echo "---------------------- 启动历史服务器 -------------------------"ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/mr-jobhistory-daemon.sh start historyserver"
;;
"stop")echo "---------------------- 关闭历史服务器 -------------------------"ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/mr-jobhistory-daemon.sh stop historyserver"echo "---------------------- 关闭yarn -------------------------"ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"echo "---------------------- 关闭hdfs -------------------------"ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)echo error!
;;
esac

xcall.sh 命令

脚本用法

xcall.sh jps

#!/bin/bash
parm=$*for(( i=102;i<=104;i=$i+1 ))
doecho "------------ hadoop$i -------------"ssh hadoop$i "$parm"done

zk启停脚本 zk.sh

启动命令 zk.sh start

关闭命令 zk.sh stop

#!/bin/bash
case $1 in
"start")for ((i=102;i<=104;i=$i+1))doecho "----------------------- 启动hadoop$i 的zk ---------------------------"ssh hadoop$i "/opt/module/zookeeper/bin/zkServer.sh start"done	
;;"stop")for ((i=102;i<=104;i=$i+1))doecho "----------------------- 关闭hadoop$i 的zk ---------------------------"ssh hadoop$i "/opt/module/zookeeper/bin/zkServer.sh stop"done
;;
"status")for ((i=102;i<=104;i=$i+1))doecho "----------------------- zk status ---------------------------"ssh hadoop$i "/opt/module/zookeeper/bin/zkServer.sh status"done
;;
*)echo error!
;;
esac

flume 启停脚本 f1.sh-消费

#! /bin/bashcase $1 in
"start"){for i in hadoop102 hadoop103doecho " --------启动 $i 采集flume -------"ssh $i "nohup /opt/module/flume/bin/flume-ng agent --conf-file /opt/module/flume/conf/file-flume-kafka.conf --name a1 -Dflume.root.logger=INFO,LOGFILE >/opt/module/flume/log1.txt 2>&1  &"done
};;	
"stop"){for i in hadoop102 hadoop103doecho " --------停止 $i 采集flume -------"ssh $i "ps -ef | grep file-flume-kafka | grep -v grep |awk  '{print \$2}' | xargs -n1 kill -9 "done};;
esac

说明:

  1. $2是在“”双引号内部会被解析为脚本的第二个参数,但是这里面想表达的含义是awk的第二个值,所以需要将他转义,用$2表示。
  1. nohup参数解释
  2. linux 将某个框架的打印信息输出到指定路径的文件中

flume 启停脚本 f2.sh-生产

#! /bin/bashcase $1 in
"start"){for i in hadoop104doecho " --------启动 $i 消费flume-------"ssh $i "nohup /opt/module/flume/bin/flume-ng agent --conf-file /opt/module/flume/conf/kafka-flume-hdfs.conf --name a1 -Dflume.root.logger=INFO,LOGFILE >/opt/module/flume/log2.txt   2>&1 &"done
};;
"stop"){for i in hadoop104doecho " --------停止 $i 消费flume-------"ssh $i "ps -ef | grep kafka-flume-hdfs | grep -v grep |awk '{print \$2}' | xargs -n1 kill"done};;
esac

kakfa启停脚本 kf.sh

启动命令 kf.sh start
关闭命令 kf.sh stop

#! /bin/bashcase $1 in
"start"){for i in hadoop102 hadoop103 hadoop104doecho " --------启动 $i Kafka-------"ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"done
};;
"stop"){for i in hadoop102 hadoop103 hadoop104doecho " --------停止 $i Kafka-------"ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh "done
};;
esac

superset 启停脚本 状态查看

#! /bin/bash
superset_status(){result=`ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | wc -l`if [[ $result -eq 0 ]]; thenreturn 0elsereturn 1fi
}
superset_start(){# 该段内容取自~/.bashrc,所用是进行 conda 初始化# >>> conda initialize >>># !! Contents within this block are managed by 'condainit' !!__conda_setup="$('/opt/module/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"if [ $? -eq 0 ]; theneval "$__conda_setup"elseif [ -f "/opt/module/miniconda3/etc/profile.d/conda.sh" ]; then. "/opt/module/miniconda3/etc/profile.d/conda.sh"elseexport PATH="/opt/module/miniconda3/bin:$PATH"fifiunset __conda_setup# <<< conda initialize <<<superset_status >/dev/null 2>&1if [[ $? -eq 0 ]]; thenconda activate superset ; gunicorn --workers 5 --timeout 120 --bind hadoop201:8787 --daemon 'superset.app:create_app()'elseecho "superset 正在运行"fi
}
superset_stop(){superset_status >/dev/null 2>&1if [[ $? -eq 0 ]]; thenecho "superset 未在运行"elseps -ef | awk '/gunicorn/ && !/awk/{print $2}' | xargs kill -9fi
}case $1 instart )echo "启动 Superset"superset_start
;;
stop )echo "停止 Superset"superset_stop
;;
restart )echo "重启 Superset"superset_stopsuperset_start
;;
status )superset_status >/dev/null 2>&1if [[ $? -eq 0 ]]; thenecho "superset 未在运行"elseecho "superset 正在运行"fi
esac

总控

#!/bin/bashcase $1 in
"start"){echo "------------------------ 启动集群 ------------------------"echo "****** 启动zk ******"zk.sh startecho "****** 启动hadoop ******"hdp.sh startecho "****** 启动kafka ******"kk.sh startecho "****** 启动生产flume ******"f1.sh startecho "****** 启动消费flume ******"f2.sh start
};;
"stop"){echo "------------------------ 启动集群 ------------------------"echo "****** 关闭消费flume ******"f2.sh stopecho "****** 关闭生产flume ******"f1.sh stopecho "****** 关闭kafka ******"kk.sh stopecho "****** 关闭hadoop ******"hdp.sh stopecho "****** 关闭zk ******"zk.sh stop
};;
*){echo error
}
;;
esac

更多推荐

大数据集群常用脚本

本文发布于:2023-07-28 17:48:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1267028.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:集群   脚本   常用   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!