【大数据】那些简化操作的辅助脚本
大数据常用环境中,除了hadoop、spark本身自带脚本,能够完成快速启停,其它组件的启动命令稍微复杂,而且步骤较多。
首先是hive,在多用户环境中启动时,需要启动metastore、hiveserver2服务。其次,使用beeline进行连接测试时,也略显冗长。关闭服务时,也需要先使用jps命令找到RunJar,然后手动kill掉。
在学习时,就会增加很多不便。这些可以简单封装为脚本,便于自己操作。
- hive启动脚本:start_hive.sh #!/bin/bash # 启动HiveServer2 hive --service hiveserver2 & # 启动Metastore hive --service metastore &
- hive停止脚本:stop_hive.sh #!/bin/bash jps | grep RunJar | awk '{print $1}' | xargs kill -9
- hive重启脚本:restart_hive.sh #!/bin/bash # 停止hive服务 jps | grep RunJar | awk '{print $1}' | xargs kill -9 # 启动HiveServer2 hive --service hiveserver2 & # 启动Metastore hive --service metastore &
- 使用beeline连接hive:hive_cli.sh #!/bin/bash beeline -u jdbc:hive2://node03:10000 -n root
有些脚本虽然简单,但确实几行代码能节约不少时间。
除了Hive,当然还有Zookeeper,需要在各个节点中进行启停。这部分也可以封装为脚本:zookeeper.sh。
代码语言:javascript复制#! /bin/bash
case $1 in
"start"){
for i in node01 node02 node03
do
ssh $i "source /etc/profile && /opt/app/zookeeper-3.4.10/bin/zkServer.sh start"
done
};;
"stop"){
for i in node01 node02 node03
do
ssh $i "source /etc/profile && /opt/app/zookeeper-3.4.10/bin/zkServer.sh stop"
done
};;
esac
这样,启动时,一行命令简化工作。
代码语言:javascript复制# 集群启动
zookeeper.sh start
# 集群停止
zookeeper.sh stop
但凡提到Zookeeper,当然也少不了Kafka。这里封装为kafka.sh。
代码语言:javascript复制#! /bin/bash
case $1 in
"start"){
for i in node01 node02 node03
do
echo " --------启动 $i kafka-------"
# 用于KafkaManager监控
ssh $i "source /etc/profile && export JMX_PORT=9988 && /opt/app/kafka_2.11-0.11.0.2/bin/kafka-server-start.sh -daemon /opt/app/kafka_2.11-0.11.0.2/config/server.properties "
done
};;
"stop"){
for i in node01 node02 node03
do
echo " --------停止 $i kafka-------"
ssh $i "source /etc/profile && /opt/app/kafka_2.11-0.11.0.2/bin/kafka-server-stop.sh"
done
};;
esac
使用时,同样根据传入的参数来进行集群的启停。
代码语言:javascript复制# 集群启动
kafka.sh start
# 集群停止
kafka.sh stop
这里只是给大家提供一种思路,工作中有很多繁杂的命令,无需逐条记熟,并亲力亲为逐条输入。一次投入,多次使用,封装为脚本它不香吗?