我想写一个简单的shell脚本,它应该检查是否安装了hadoop客户端,以及安装了哪种类型的客户端(cdh、hdp或generic)。稍后,该脚本还必须打印相应的版本。有人能给我同样的建议吗。
hyrbngr71#
通过清理输出并添加对3个主要hadoop平台(hortonworks数据平台、ibm开放平台和cloudera数据中心)的支持,将另一个答案修改为更加健壮,我们得到以下脚本:
# !/usr/bin/env bash CDH_HOME=/opt/cloudera/parcels HDP_HOME=/usr/hdp IOP_HOME=/usr/iop if /usr/bin/which hadoop > /dev/null 2>&1; then if [ -d $HDP_HOME ]; then platform="HDP" version=`hdp-select status hadoop-client | awk -F "-" '{print $3}'` elif [ -d $IOP_HOME ]; then platform="IOP" version=`iop-select status hadoop-client | awk -F "-" '{print $3}'` elif [ -d $CDH_HOME ]; then platform="CDH" version=`readlink $CDH_HOME/CDH` else platform="Other" version="Unknown" fi echo "Platform: $platform" echo "Version: $version" else echo "No hadoop found" fi
注意:platform select实用程序(即hdp select)可以为您提供有关给定节点上所有已安装服务的信息。状态为 None 未安装时。
None
ybzsozfc2#
假设您的路径是正确的,并且您使用的是标准安装,那么您只需要运行hadoop版本。
if /usr/bin/which hadoop; then if [ -d /usr/hdp ]; then echo "HDP" elif hadoop version | grep cdh > /dev/null; then echo "CDH" else echo "generic" fi else echo "no hadoop found" fi
2条答案
按热度按时间hyrbngr71#
通过清理输出并添加对3个主要hadoop平台(hortonworks数据平台、ibm开放平台和cloudera数据中心)的支持,将另一个答案修改为更加健壮,我们得到以下脚本:
注意:platform select实用程序(即hdp select)可以为您提供有关给定节点上所有已安装服务的信息。状态为
None
未安装时。ybzsozfc2#
假设您的路径是正确的,并且您使用的是标准安装,那么您只需要运行hadoop版本。