Hadoop警告 HADOOP_PREFIX has been replaced by HADOOP_HOME. Using value of HADOOP_PREFIX

问题描述:

   1、Hadoop版本升级到3.0之后,每次执行hadoop命令都会提示下面的警告,感觉很烦,必须盘它!~

WARNING: HADOOP_PREFIX has been replaced by HADOOP_HOME. Using value of HADOOP_PREFIX.

查看环境变量,发现这2个变量都配置了

[hadoop@client1 hadoop]$ echo $HADOOP_PREFIX
/opt/hadoop
[hadoop@client1 hadoop]$ echo $HADOOP_HOME
/opt/hadoop

2、在hadoop安装目录下搜索一下这个变量在哪里

[hadoop@client1 hadoop]$ grep -ri hadoop_prefix
libexec/hadoop-config.sh:#hadoop_deprecate_envvar HADOOP_PREFIX HADOOP_HOME

发现在libexec目录下,在hadoop-config.sh脚本第70行中出现该关键字

 69 
 70 hadoop_deprecate_envvar HADOOP_PREFIX HADOOP_HOME
 71 

而 hadoop_deprecate_envvar 函数来自于同级目录下的`hadoop-functions.sh`脚本,查看该函数的作用就是打印过时的变量信息。并把旧的变量的值换到新的变量上面

function hadoop_deprecate_envvar
{
  local oldvar=$1
  local newvar=$2
  local oldval=${!oldvar}
  local newval=${!newvar}

  if [[ -n "${oldval}" ]]; then
    hadoop_error "WARNING: ${oldvar} has been replaced by ${newvar}. Using value of ${oldvar}."
    # shellcheck disable=SC2086
    eval ${newvar}=\"${oldval}\"

    # shellcheck disable=SC2086
    newval=${oldval}

    # shellcheck disable=SC2086
    eval ${newvar}=\"${newval}\"
  fi
}

到这里就简单多了,由于我们两个环境变量都配置了,就不需要它帮忙替换了,,

1、直接在hadoop-config.sh脚本第70行中注释掉就可以了(前提是正常配置了HADOOP_HOME)~

2、或者在hadoop-functions.sh脚本中,把打印警告信息注释就可以了,就达到掩耳盗铃的目的了~~

3、找到所有的HADOOP_PREFIX替换为HADOOP_HOME,治标治本

大家根据自己的情况选择吧。。。。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值