【大数据】那些简化操作的辅助脚本

2021-01-21 10:36:14 浏览数 (1)

【大数据】那些简化操作的辅助脚本

大数据常用环境中,除了hadoop、spark本身自带脚本,能够完成快速启停,其它组件的启动命令稍微复杂,而且步骤较多。

首先是hive,在多用户环境中启动时,需要启动metastore、hiveserver2服务。其次,使用beeline进行连接测试时,也略显冗长。关闭服务时,也需要先使用jps命令找到RunJar,然后手动kill掉。

在学习时,就会增加很多不便。这些可以简单封装为脚本,便于自己操作。

  1. hive启动脚本:start_hive.sh #!/bin/bash # 启动HiveServer2 hive --service hiveserver2 & # 启动Metastore hive --service metastore &
  2. hive停止脚本:stop_hive.sh #!/bin/bash jps | grep RunJar | awk '{print $1}' | xargs kill -9
  3. hive重启脚本:restart_hive.sh #!/bin/bash # 停止hive服务 jps | grep RunJar | awk '{print $1}' | xargs kill -9 # 启动HiveServer2 hive --service hiveserver2 & # 启动Metastore hive --service metastore &
  4. 使用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

这里只是给大家提供一种思路,工作中有很多繁杂的命令,无需逐条记熟,并亲力亲为逐条输入。一次投入,多次使用,封装为脚本它不香吗?

0 人点赞