Onde está o classpath definido para hadoop
bin/hadoop classpath
estou a usar o hadoop 2. 6. 0
4 answers
hadoop-config.sh
, mas você poderia adicionar mais frascos para ele em hadoop-env.sh
Aqui está um código relevante de hadoop-env.sh
que adiciona frascos adicionais como o escalonador de capacidade e o AWS jar's.
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/*
Abra o seu perfil bash (~/.profile
ou ~/.bash_profile
) para editar e adicionar o seguinte:
-
exportação
HADOOP_HOME="/usr/local/Cellar/hadoop"
em seguida substitua pelo seu próprio caminho Exportação
HADOOP_CLASSPATH=$(find $HADOOP_HOME -name '*.jar' | xargs echo | tr ' ' ':')
gravar {[11] } as alterações e recarregar .Origem
~/.profile
Quando executa o comando hadoop
, obtém um ficheiro hadoop-config.sh
que reside em $HADOOP_HDFS_HOME/libexec
que define o seu claspath (CLASSPATH), escolhendo frascos que residem em vários directórios viz.
$HADOOP_HDFS_HOME/share/hadoop/mapreduce
$HADOOP_HDFS_HOME/share/hadoop/common
$HADOOP_HDFS_HOME/share/hadoop/hdfs etc.
Como por este post, está numa variável de ambiente chamada {[[0]}. Você pode configurá-lo como qualquer outra variável de ambiente, cujas especificidades dependem de qual shell você usa. Se utilizar bash
, pode ligar para o tipo export HADOOP_CLASSPATH=/path/to/wherever:/path/to/wherever/else
.