Hadoopセットのクラスパスはどこにありますか?以下のコマンドを実行すると、クラスパスが表示されます。クラスパスはどこに設定されていますか?
bin/hadoop classpath
私はhadoop 2.6.0を使用しています
Bashプロファイル(_~/.profile
_または_~/.bash_profile
_)を開いて編集し、以下を追加します。
HADOOP_HOME="/usr/local/Cellar/hadoop"
_ then独自のパスに置き換えますexportHADOOP_CLASSPATH=$(find $HADOOP_HOME -name '*.jar' | xargs echo | tr ' ' ':')
Save変更およびreload。
ソース _~/.profile
_
Almas shaikhが言ったように、hadoop-config.sh
で設定されていますが、hadoop-env.sh
でさらにjarを追加できます。
ここに、容量スケジューラとaws jarのような追加のjarを追加するhadoop-env.sh
からの関連コードがあります。
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}
# Extra Java CLASSPATH elements. Automatically insert capacity-scheduler.
for f in $HADOOP_HOME/contrib/capacity-scheduler/*.jar; do
if [ "$HADOOP_CLASSPATH" ]; then
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$f
else
export HADOOP_CLASSPATH=$f
fi
done
# ... some other lines omitted
# Add Aws jar
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:share/hadoop/tools/lib/*
hadoop
コマンドを実行すると、hadoop-config.sh
にあるファイル$HADOOP_HDFS_HOME/libexec
が読み込まれ、さまざまなディレクトリにあるjarを選択してクラスパス(CLASSPATH)を設定します。
$HADOOP_HDFS_HOME/share/hadoop/mapreduce
$HADOOP_HDFS_HOME/share/hadoop/common
$HADOOP_HDFS_HOME/share/hadoop/hdfs etc.
このブログ投稿 のとおり、HADOOP_CLASSPATH
という名前の環境変数にあります。他の環境変数と同じように設定できます。その詳細は、使用するシェルによって異なります。 bash
を使用すると、export HADOOP_CLASSPATH=/path/to/wherever:/path/to/wherever/else
のように呼び出すことができます。