检查hadoop客户端的shell脚本

anauzrmj  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(331)

我想写一个简单的shell脚本,它应该检查是否安装了hadoop客户端,以及安装了哪种类型的客户端(cdh、hdp或generic)。稍后,该脚本还必须打印相应的版本。有人能给我同样的建议吗。

hyrbngr7

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 未安装时。

ybzsozfc

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

相关问题