Hadoop 安装脚本

Hadoop安装脚本(虚拟机单机安装,hadoop版本为3.1.3)

hadoop官网

#!bin/bash

#1、压缩包(存在)
#参数检查:检查用户是否提供了压缩包路径作为第一个参数,并且该压缩包是否符合 Hadoop 支持的压缩格式(tar.gz 或 tgz)。
pack=$1

if [[ ! "$pack" =~ ^.*hadoop.*\.(tar\.gz|tgz)$ ]];then
	echo "ERROR : ONLY SUPPORT tar.gz OR tgz HADOOP COMPRESS FROMAT"
	exit 1
fi

#2.1、检查 hadoop 服务,若存在则关闭
sc=$(jps|awk 'BEGIN{c=0}/DataNode|SecondaryNameNode|NodeManager|ResourceManager|NameNode/{c++}END{print c}')
if [ $sc -gt 0 ];then
	stop-all.sh 1>/dev/null 2>hadoop_err.log || jps|awk '/DataNode|SecondaryNameNode|NodeManager|ResourceManager|NameNode/{print $1}|xargs kill -9'
	if [ $? -ne 0 ];then
		echo "ERROR : FAIL TO STOP THE RUNNING HADOOP SERVICES"
		exit 1
	else 
		echo "INFO : SUCCESS TO STOP THE OLD RUNNING HADOOP SERVICES"
	fi
fi
		
#2.2、目标目录(不存在/opt/software则创建,存在子目录则删除)
dest=${2%/}
old=$(ls $dest|grep ^hadoop)
if [ $? -eq 0 ];then
	rm -rf $dest/$old
	echo "INFO : OLD HADOOP EDITION FOUND BUT REMOVED"
fi

if [ ! -e $dest ];then
	mkdir -p $dest
	echo "INFO : DEST DIR NOT EXIST BUT CREATED"
fi

#3.解压:将Hadoop压缩包解压到目标目录
tar -zxf $pack -C $dest
if [ $? -eq 0 ];then
	echo -n "INFO : SUCCESS"
else
	echo -n "ERROR : FAIL"
	exit 3
fi
echo "TO DECOMPRESS $pack TO $dest"

#4.环境变量(存在则删除,再追加新环境变量)
env=/etc/profile.d/myenv.sh
if [ ! -e $env ];then
	touch $env
	echo "INFO : ENV FILE NOT EXIST BUT TOUCHED"
fi

old=$(cat $env|awk 'BEGIN{b=0; e=0; ln=0;}{ln++; if(b>0 && match($0,/^#.*/)) e=ln-1; if(match($0,/^#.*hadoop/)) b=ln}END{if(b>0 && e==0) e=ln; print b","e}')
if [ "$old" != "0,0" ];then
	sed -i "${old}d" $env
	echo "INFO : ENV VARIABLUES FOR HADOOP FOUND BUT REMOVED LINE $old IN $env"
fi

old=$(ls $dest|grep ^hadoop)
dest="$dest/$old"
cat >> $env <<EOF
#hadoop 3.1.3
export HADOOP_HOME=$dest
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_LIBEXEC_DIR=$HADOOP_HOME/libexec
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
EOF
echo "INFO : HADOOP ENV VARIABLUES APPENDED TO $env"

#5.激活环境变量
source /etc/profile
if [ $? -eq 0 ];then
	echo "INFO : SUCCESS TO ACTIVATE ENV VARIABLUES FOR HADOOP"
else 
	echo "	ERROR : FAIL TO ACTIVATE ENV VARIABLUES FOR HADOOP"
	exit 4
fi

#6.记录脚本目录,切换至hadoop主配置目录
sdir=$(cd $(dirname $0); pwd)
cd $dest/etc/hadoop
echo "INFO : CURRENT DIRECTORY CHANGED TO $PWD"

#7.hadoop内部java环境变量配置
sed -i "s/# export JAVA_HOME=/export JAVA_HOME=${JAVA_HOME//\//\\/}/" hadoop-env.sh
echo "INFO : SUCCESS TO FINISH hadoop-env.sh CONFIG"

#8.0 检查并完善/etc/hosts下主机名与IP地址映射
cat /etc/hosts|grep $HOSTNAME 1>/dev/null 2>&1
echo -n "INFO : IP & HOSTNAME MAP"
if [ $? -ne 0 ];then
	ip=$(ip addr|grep -E inet.*ens33|awk '{print $2}'|cut -d/ -f1)
	echo "$ip $HOSTNAME">>/etc/hosts
	echo "NOT FOUND BUT CREATED"
else 
	echo "EXIST"
fi

#8.1 检查 hadoop 临时目录,存在则删除
dir=/root/job/hadoop
if [ -e $dir ];then
	rm -rf $dir
	echo "INFO : TEMP & YARN LOCAL & YARN LOG DIR ($dir) FOUND AND REMOVED"
fi

core-site.xml:配置 Hadoop 的核心配置,如文件系统的默认设置和临时目录

#8.hadoop内部 core-site.xml 配置
cat > core-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://single01:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/tmp/hadoop</value>
</property>
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>
<property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>
<property>
    <name>io.file.buffer.size</name>
    <value>1048576</value>
</property>
</configuration>
EOF
echo "INFO : SUCCESS TO FINISH core-site.xml CONFIG"
Bash 中的重定向操作,用于创建或覆盖名为 core-site.xml 的文件,并填入 Hadoop 集群配置信息

cat > core-site.xml <<EOF:
这行告诉 Bash 将接下来的内容(直到 EOF 标记)重定向到名为 core-site.xml 的文件中。

XML 声明和样式表引用:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
声明了 XML 文件的版本和编码,以及一个可选的 XSLT 样式表用于配置文件的样式化。

注释部分:
包含了 Apache License 2.0 的标准版权声明,说明此文件在 Apache License 2.0 的许可下分发。

配置文件的根元素 <configuration>:
表示配置文件的开始。

配置属性:
使用 <property> 元素定义了多个 Hadoop 配置项:
fs.defaultFS:设置 Hadoop 文件系统的默认名称,这里是 hdfs://single01:9000,意味着 NameNode 运行在 single01 主机上,端口为 9000。
hadoop.tmp.dir:设置 Hadoop 临时目录的基础路径。
hadoop.http.staticuser.user:设置 HTTP 静态用户,这里为 root。
hadoop.proxyuser.root.hosts 和 hadoop.proxyuser.root.groups:允许 root 用户代理访问 Hadoop 集群,这里设置为 * 表示允许所有主机和用户。
io.file.buffer.size:设置文件缓冲区的大小。

结束标记:
</configuration> 表示配置文件的结束。

EOF:
标记重定向操作的结束。

输出信息:
echo "INFO : SUCCESS TO FINISH core-site.xml CONFIG" 输出一条信息,表明 core-site.xml 文件配置成功完成。

hdfs-site.xml:配置 HDFS 的设置,如副本数量、块大小和存储目录

#9.hadoop内部 hdfs-site.xml 配置
cat > hdfs-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
    <name>dfs.blocksize</name>
    <value>128M</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/software/hadoop-3.1.3/data/dfs/name</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/software/hadoop-3.1.3/data/dfs/data</value>
</property>
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>single01:9869</value>
</property>
<property>
    <name>dfs.permissions.enabled</name>
    <value>false</value>
</property>
</configuration>
EOF
echo "INFO : SUCCESS TO FINISH hdfs-site.xml CONFIG"
这段脚本同样是 Bash 中的重定向操作,用于创建或覆盖名为 hdfs-site.xml 的Hadoop配置文件,并填入 HDFS(Hadoop 分布式文件系统)的配置信息

cat > hdfs-site.xml <<EOF:
这行告诉 Bash 将接下来的内容(直到 EOF 标记)重定向到名为 hdfs-site.xml 的文件中。

XML 声明和样式表引用:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
声明了 XML 文件的版本和编码,以及一个可选的 XSLT 样式表用于配置文件的样式化。

注释部分:
包含了 Apache License 2.0 的标准版权声明,说明此文件在 Apache License 2.0 的许可下分发。

配置文件的根元素 <configuration>:
表示配置文件的开始。

配置属性:
使用 <property> 元素定义了多个 HDFS 配置项:
dfs.replication:设置 HDFS 的副本数量,默认为1,表示每个数据块仅存储一份副本。
dfs.blocksize:设置 HDFS 的数据块大小为128M(兆字节)。
dfs.namenode.name.dir:设置 NameNode 存储元数据的目录。
dfs.datanode.data.dir:设置 DataNode 存储数据的目录。
dfs.namenode.secondary.http-address:设置辅助 NameNode 的 HTTP 地址和端口。
dfs.permissions.enabled:设置为 false 以禁用 HDFS 的权限检查,通常在非生产环境中使用。

结束标记:
</configuration> 表示配置文件的结束。

EOF:
标记重定向操作的结束。

输出信息:
echo "INFO : SUCCESS TO FINISH hdfs-site.xml CONFIG" 输出一条信息,表明 hdfs-site.xml 文件配置成功完成。

mapred-site.xml:配置 MapReduce 的设置,包括框架名称和应用程序类路径

#10.hadoop内部mapred-site.xml配置
#10.1.激活hadoop环境变量并通过hadoop classpath命令提取信息
source /etc/profile
if [ $? -ne 0 ];then
	echo "ERROR :FAIL TO ACTIVATE HADOOP ENV VARIABLUES"
	exit 1
fi
hc=$(hadoop classpath)
if [ $? -ne 0 ];then
	echo "ERROR : FAIL TO FETCH HADOOP CLASSPATH"
	exit 1
fi
echo "INFO : HADOOP ENV VARIABLUES ACTIVATED AND HADOOP CLASSPATH FETCHED"
这段脚本代码用于激活 Hadoop 环境变量,并获取 Hadoop 的类路径
1. `source /etc/profile`:
   - `source` 命令用于执行指定文件中的命令。这里它执行 `/etc/profile` 文件中的命令,该文件通常包含环境变量的定义和配置。`source` 命令会更改当前 shell 的环境,使其包含 `/etc/profile` 中定义的变量和函数。

2. `if [ $? -ne 0 ];then`:
   - 这个条件语句检查上一个命令的退出状态。`$?` 变量保存了上一个命令的退出状态码。如果状态码不等于 0`-ne 0` 表示“不等于零”),则表示命令执行失败。

3. `echo "ERROR :FAIL TO ACTIVATE HADOOP ENV VARIABLUES"`:
   - 如果 `source` 命令失败,将打印出错误信息。

4. `exit 1`:
   - `exit` 命令用于退出脚本并返回状态码。状态码为 1 通常表示脚本因错误而终止。

5. `hc=$(hadoop classpath)`:
   - 这行命令使用命令替换(`$(...)`)获取 `hadoop classpath` 命令的输出,该命令输出 Hadoop 的类路径。输出结果被赋值给变量 `hc`6. `if [ $? -ne 0 ];then`(再次出现):
   - 再次检查上一个命令(`hadoop classpath`)的退出状态。如果命令失败,将执行错误处理。

7. `echo "ERROR : FAIL TO FETCH HADOOP CLASSPATH"`:
   - 如果 `hadoop classpath` 命令失败,打印出相应的错误信息。

8. `exit 1`(再次出现):
   - 如果获取类路径失败,脚本将返回状态码 1 并终止。

9. `echo "INFO : HADOOP ENV VARIABLUES ACTIVATED AND HADOOP CLASSPATH FETCHED"`:
   - 如果所有命令都成功执行,将打印出这条信息,表明 Hadoop 环境变量已激活,并且成功获取了 Hadoop 的类路径。

#10.2.配置mapred-site.xml
cat > mapred-site.xml <<EOF
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<property>
    <name>mapreduce.application.classpath</name>
    <value>/opt/software/hadoop-3.1.3/etc/hadoop:/opt/software/hadoop-3.1.3/share/hadoop/common/lib/*:/opt/software/hadoop-3.1.3/share/hadoop/common/*:/opt/software/hadoop-3.1.3/share/hadoop/hdfs:/opt/software/hadoop-3.1.3/share/hadoop/hdfs/lib/*:/opt/software/hadoop-3.1.3/share/hadoop/hdfs/*:/opt/software/hadoop-3.1.3/share/hadoop/mapreduce/lib/*:/opt/software/hadoop-3.1.3/share/hadoop/mapreduce/*:/opt/software/hadoop-3.1.3/share/hadoop/yarn:/opt/software/hadoop-3.1.3/share/hadoop/yarn/lib/*:/opt/software/hadoop-3.1.3/share/hadoop/yarn/*</value>
</property>
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>single01:10020</value>
</property>
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>single01:19888</value>
</property>
<property>
    <name>mapreduce.map.memory.mb</name>
    <value>256</value>
</property>
<property>
    <name>mapreduce.reduce.memory.mb</name>
    <value>512</value>
</property>
</configuration>
EOF
echo "INFO : SUCCESS TO FINISH mapred-site.xml CONFIG"
创建一个名为 mapred-site.xml 的文件,它是 Hadoop MapReduce 作业配置的一部分

cat > mapred-site.xml <<EOF:
使用 cat 命令重定向,将 <<EOF 和 EOF 之间的内容写入到 mapred-site.xml 文件中。

XML 声明:
<?xml version="1.0"?>
声明了 XML 文件的版本为 1.0。

XSLT 样式表引用:
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
提供了一个可选的 XSLT 样式表,用于将 XML 文档转换为其他格式,如 HTML。

注释块:
包含了 Apache License 2.0 的版权声明,说明该文件在 Apache License 2.0 许可下分发。
配置文件根元素 <configuration>:

开始配置元素的定义。
配置属性 <property>:

定义了多个属性,每个属性包含 <name> 和 <value> 元素:
mapreduce.framework.name:设置 MapReduce 框架的名称为 yarn,表示 MapReduce 运行在 YARN 上。
mapreduce.application.classpath:设置 MapReduce 应用程序的类路径,包括 Hadoop 相关库和资源的路径。
mapreduce.jobhistory.address:设置作业历史服务器的地址和端口,例如 single01:10020。
mapreduce.jobhistory.webapp.address:设置作业历史 Web 应用的地址和端口,例如 single01:19888。
mapreduce.map.memory.mb:设置 Map 任务使用的内存大小,这里设置为 256MB。
mapreduce.reduce.memory.mb:设置 Reduce 任务使用的内存大小,这里设置为 512MB。

结束配置:
</configuration> 结束配置元素的定义。

EOF:
表示重定向内容的结束。

输出成功信息:
echo "INFO : SUCCESS TO FINISH mapred-site.xml CONFIG" 打印一条信息,表明 mapred-site.xml 文件配置成功完成。

yarn-site.xml:配置 YARN 的设置,包括资源管理器和节点管理器的配置

#11.hadoop内部yarn-site.xml配置
cat > yarn-site.xml <<EOF
<?xml version="1.0"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->
<configuration>

<!-- Site specific YARN configuration properties -->

<property>
    <name>yarn.resourcemanager.connect.retry-interval.ms</name>
    <value>10000</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
<property>
    <name>yarn.nodemanager.localizer.address</name>
    <value>single01:8040</value>
</property>
<property>
    <name>yarn.nodemanager.address</name>
    <value>single01:8050</value>
</property>
<property>
    <name>yarn.nodemanager.webapp.address</name>
    <value>single01:8042</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/tmp/hadoop/yarn/local</value>
</property>
<property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/tmp/hadoop/yarn/log</value>
</property>
<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>
<property>
    <name>yarn.application.classpath</name>
    <value>/opt/software/hadoop-3.1.3/etc/hadoop:/opt/software/hadoop-3.1.3/share/hadoop/common/lib/*:/opt/software/hadoop-3.1.3/share/hadoop/common/*:/opt/software/hadoop-3.1.3/share/hadoop/hdfs:/opt/software/hadoop-3.1.3/share/hadoop/hdfs/lib/*:/opt/software/hadoop-3.1.3/share/hadoop/hdfs/*:/opt/software/hadoop-3.1.3/share/hadoop/mapreduce/lib/*:/opt/software/hadoop-3.1.3/share/hadoop/mapreduce/*:/opt/software/hadoop-3.1.3/share/hadoop/yarn:/opt/software/hadoop-3.1.3/share/hadoop/yarn/lib/*:/opt/software/hadoop-3.1.3/share/hadoop/yarn/*</value>
</property>
<property>
    <name>yarn.nodemanager.env-whitelist</name>
    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
EOF
echo "INFO : SUCCESS TO FINISH yarn-site.xml CONFIG"
创建一个名为 yarn-site.xml 的文件,它是 Hadoop YARN(Yet Another Resource Negotiator)的配置文件

cat > yarn-site.xml <<EOF:
使用 cat 命令重定向,将 <<EOF 和 EOF 之间的内容写入到 yarn-site.xml 文件中。

XML 声明:
<?xml version="1.0"?>
声明了 XML 文件的版本为 1.0。

注释块:
包含了 Apache License 2.0 的版权声明,说明该文件在 Apache License 2.0 许可下分发。

配置文件根元素 <configuration>:
开始配置元素的定义,用于包含 YARN 的配置属性。

配置属性 <property>:
定义了多个属性,每个属性包含 <name> 和 <value> 元素,用于设置 YARN 的不同配置项:
yarn.resourcemanager.connect.retry-interval.ms:ResourceManager 连接重试间隔,单位为毫秒。
yarn.resourcemanager.scheduler.class:指定资源调度器的类,这里使用的是公平调度器 FairScheduler。
yarn.nodemanager.localizer.address:NodeManager 资源本地化服务的地址和端口。
yarn.nodemanager.address:NodeManager 服务的地址和端口。
yarn.nodemanager.webapp.address:NodeManager Web 应用的地址和端口。
yarn.nodemanager.aux-services:NodeManager 辅助服务,这里用于 MapReduce 任务的 Shuffle 操作。
yarn.nodemanager.local-dirs:NodeManager 存储本地资源的目录。
yarn.nodemanager.log-dirs:NodeManager 存储日志的目录。
yarn.nodemanager.vmem-check-enabled:是否启用 NodeManager 的虚拟内存检查。
yarn.application.classpath:YARN 应用程序的类路径,包括 Hadoop 相关库和资源的路径。
yarn.nodemanager.env-whitelist:NodeManager 环境变量白名单,指定可以在容器中设置的环境变量。

结束配置:
</configuration> 结束配置元素的定义。

EOF:
表示重定向内容的结束。

输出成功信息:
echo "INFO : SUCCESS TO FINISH yarn-site.xml CONFIG" 打印一条信息,表明 yarn-site.xml 文件配置成功完成。
#12.0 切换至脚本路径
cd $sdir

#12.格式化 namenode
hdfs namenode -format 1>/dev/null 2>>hadoop_err.log
if [ $? -ne 0 ];then
    echo "ERROR : FAIL TO format hdfs namenode"
    exit 1
else
    echo "INFO : SUCCESS TO format hdfs namenode"
fi

#13.启动 hadoop 服务
start-all.sh 1>/dev/null 2>>hadoop_err.log
if [ $? -ne 0 ];then
    echo "ERROR : FAIL TO START HADOOP SERVICE"
    exit 1
else
    sc=$(jps|awk 'BEGIN{c=0}/DataNode|SecondaryNameNode|NodeManager|ResourceManager|NameNode/{c++}END{print c}')
    if [ $sc -eq 5 ];then
        echo "INFO : SUCCESS TO FAIL HADOOP SERVICE"
    else
        echo "WARN : FAIL TO HADOOP SERVICE FOR NOT 5 SERVICES STARTED"
    fi
fi
#14.在脚本结束前,取消设置所有局部环境变量
unset hc
unset dir
unset sdir
unset env
unset sc
unset old
unset dest
unset pack	
  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值