HADOOP生态圈Linux一键启动脚本(包含Hadoop,Hive,zeppelin,zookeeper,hbase!)

一.前言

平日工作中,启动Hadoop生态圈的一堆程序是个大工程,此时linux脚本一键启动就显得格外重要。

废话不多说,直接手把手一步步实现。

二.运行结果演示

为了证明一下脚本确实可用,先演示运行结果

1.放在自己设置的文件夹中,运行
放在自己设置的
2.出现选项,一般选5,因为是按顺序启动的,选5会启动所有
在这里插入图片描述
3.运行结果成功,(zookeeper不见了,重启显示已启动,隐身了?)
在这里插入图片描述

三.设置配置文件

1.设置配置文件 start.cnf(要单独设置,不是放在脚本文件里的!),文件中的‘->’, ‘_’, ‘;’, '#'都是专门设置的分割符,方便脚本使用,具体用法看脚本文件。

hadoop->NameNode_SecondaryNameNode_DataNode_ResourceManager_NodeManager;start-dfs.sh_start-yarn.sh
hive->HiveMetaStore_HiveServer2;nohup$hive#--service#metastore>hive.log#2>&1#&_nohup#hive#--service#hiveserver2>hive.log#2>&1#&
zeppelin->ZeppelinServer;zeppelin-daemon.sh#start
zookeeper->QuorumPeerMain;zkServer.sh#start
hbase->HMaster_HRegionServer;start-hbase.sh

四.一键启动脚本

#!/bin/bash
source /etc/profile

# 一键启动配置文件
CNF_FILE='start.cnf'

#验证配置文件(必须存在且为文件)
if[ ! -e $CNF_FILE -o -d $CNF_FILE ]
then
	echo $CNF_FILE" unavailable or directory,script will exit"
	exit 0
fi
# 将配置文件内容读入变量并转为列表
CNF_LINES=(`cat start.cnf`)

# 循环按行输出配置信息,将第一项作为内容提示供用户选择
count=0
for item in ${CNF_LINES[@]do
	((count+))
	arr=(${item/->/ })
	echo $count"、 "${arr[0]}
done	
	
# 用户选择启动服务编号(向前启动所有服务)
read -p 'please input your choice:' choice

# 验证用户输入(必须为小于等于配置文件行数的整数)
if [[ $choice =~ ^[0-9]+$ ]]
then
	if [ $choice -gt $count -o $choice -lt 1 ]
	then 
		echo "choice must be between 1 and $count,script will exit"
		exit 0
	fi 
else
	echo 'choice must be a num, script will exit'
	exit 0
fi	

#自定义函数检查指定参数的服务是否完好,若有残留杀死进程
function killOnLeft(){
	SIGN=$1
	SIGN=$2
	SERS=(${SERS//_/ })
	PIDS=()
	count=0
	for item in ${SERS[@]}
	do
		#jps配合管道检查指定服务项是否存在
		RST=`jps-ml|grep -w $item`
		if [[ $RST ]]
		then
			RST=($RST)
			PIDS[$count]=${RST[0]}
			((count++))
		fi
	done
	if [ $count -lt ${#SERS[@]} ]
	then 
		# 若存在不完整的残留kill进程	
		if [ $count -gt 0 ]
		then 
			for pid in ${PIDS[@]}
			do
				RST=`kill -9 $pid`
			done
			echo "$SIGN has service and killed"
		else
			echo "$SIGN has no service left"
		fi
		echo 'no'
	else
		echo "$SIGN is running"
		echo "ok"
	fi
}

#自定义函数调用参数命令集启动相应服务
function startSers(){
	SIGN=$1
	SERS=$2
	SERS=${SERS//_/ }
	for cmd in $SERS
	do
		RST=`eval ${cmd//#/ }`
	done
	echo $SING" has been started"
}	

# 循环执行用户选择的配置文件中的命令行
count=0
while (( $count<$choice ))
do
	LINE=${CNF_LINES[$count]}
	LINE=(${LINE//->/ })
	SIGN=${LINE[0]}
	LINE=${LINE[1]}
	LINE=(${LINE//;/ })
	SERS=${LINE[0]}
	CMDS=${LINE[1]}
	RST=`killOnLeft $SIGN $SERS`
	echo $RST
	if [[ $RST =~ no$ ]]
	then
		RST=`startSers $SIGN $CMDS`
		echo $RST
	fi
	((count++))
done								

五.傻瓜用法

分别设置配置文件start.cnf和脚本文件start.sh(放在一起),启动脚本文件,结果如第二部分展示。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Hadoop是一个开源的分布式计算框架,用于处理大规模数据集的存储和处理。它提供了一个可靠的、可扩展的分布式系统,能够在大量普通计算机的集群上运行。为了方便用户启动Hadoop集群,开发者编写了一启动脚本Hadoop启动脚本的作用是简化Hadoop集群的启动过程。用户只需要运行这个脚本,就能够自动完成所有必要的设置和启动步骤,而不需要手动逐一执行命令和配置文件。一启动脚本通常会检查系统环境和配置文件,确保一切准备就绪,然后根据用户的需求启动特定的Hadoop服务和组件。 一启动脚本通常包括以下几个主要步骤: 1. 检查系统依赖:脚本会检查系统环境,包括操作系统、Java版本等,确保满足Hadoop运行的最低要求。 2. 配置文件检查:脚本会检查Hadoop配置文件,如core-site.xml、hdfs-site.xml等,确保配置正确且完整。 3. 启动服务:根据用户输入的命令,脚本启动相应的Hadoop服务,如启动HDFS、启动YARN等。在启动过程中,脚本会在终端显示详细的启动日志,方便用户查看和调试。 4. 验证启动脚本会检查Hadoop集群的启动状态,确认所有服务均已成功启动。如果有错误或异常,脚本会显示相关错误信息,并提供解决方案。 总之,Hadoop启动脚本能够极大地简化Hadoop集群的部署和启动过程,提高用户的使用效率和便利性。用户只需准备好必要的配置文件和环境,然后运行一启动脚本,即可轻松启动Hadoop集群。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值