“$HADOOP_HOME is deprecated"が鬱陶しい。

※本記事ではhadoop 1.00を使ってます。

hadoopを実行すると”$HADOOP_HOME is deprecated"と表示されることがある。
HADOOP_HOMEはもう使われなくなり、代わりにHADOOP_PREFIXにするよう推奨されている。

これを抑制するには、以下二つのうち、いずれかをすればよい。

”$HADOOP_HOME is deprecated"を抑制するには。

  1. HADOOP_HOMEをHADOOP_PREFIXに置き換える。あるいは。
  2. HADOOP_HOME_WARN_SUPPRESS=YESと宣言する。

hadoopのバージョンアップをするつもりがないなら、②が楽でしょうかね。
具体的には、hadoopを使うユーザの.profileあたりで宣言しておけばOK。

エラーメッセージの原因

なお、HADOOP関連のスクリプトを当該メッセージでgrepすると、hadoop-config.shに以下の記載がある。

hadoop-config.sh

if [ "$HADOOP_HOME_WARN_SUPPRESS" == "" ] && [ "$HADOOP_HOME" != "" ]; then
  echo "Warning: \$HADOOP_HOME is deprecated." 1>&2
  echo 1>&2
fi

つまりHADOOP_HOMEに何か設定されていれば、メッセージを表示する。
しかし、HADOOP_HOME_WARN_SUPPRESSに何か設定されていれば、そのメッセージを抑制する、というわけ。
上記ではHADOOP_HOME_WARN_SUPPRESS=“YES"にしているが、実際のところ中身はなんだってよい。