Dove si trova il percorso di classe per hadoop impostato? Quando eseguo il comando seguente, mi dà il classpath. Dove è impostato il classpath?Dove è impostato il percorso di classe per hadoop
bin/hadoop classpath
sto utilizzando Hadoop 2.6.0
Dove si trova il percorso di classe per hadoop impostato? Quando eseguo il comando seguente, mi dà il classpath. Dove è impostato il classpath?Dove è impostato il percorso di classe per hadoop
bin/hadoop classpath
sto utilizzando Hadoop 2.6.0
Come detto da Almas Shaikh è ambientato in hadoop-config.sh
, ma si potrebbero aggiungere altri vasi ad essa in hadoop-env.sh
Ecco un codice corrispondente da hadoop-env.sh
che aggiunge ulteriori jar come Capacity-Scheduler e Aws jar.
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/*
Come per this blog post, è in una variabile di ambiente denominata HADOOP_CLASSPATH
. Puoi impostarlo come faresti con qualsiasi altra variabile d'ambiente, le cui specifiche dipendono dalla shell che usi. Se si utilizza bash
, è possibile chiamare come export HADOOP_CLASSPATH=/path/to/wherever:/path/to/wherever/else
.
Quando si esegue hadoop
comando, Le fonti di un file che risiede in hadoop-config.sh
$HADOOP_HDFS_HOME/libexec
che imposta classpath (CLASSPATH) con la scelta di vasi residenti in varie directory vale a dire.
$HADOOP_HDFS_HOME/share/hadoop/mapreduce
$HADOOP_HDFS_HOME/share/hadoop/common
$HADOOP_HDFS_HOME/share/hadoop/hdfs etc.
Aprire il profilo di bash (~/.profile
o ~/.bash_profile
) per la modifica e aggiungere il seguente:
HADOOP_HOME="/usr/local/Cellar/hadoop"
poi Sostituire con il proprio percorsoesportazioneHADOOP_CLASSPATH=$(find $HADOOP_HOME -name '*.jar' | xargs echo | tr ' ' ':')
Salva le modifiche e ricarica.
fonte~/.profile
Preferisco 'for f in $ HADOOP_HOME/share/Hadoop/tools/lib/* vaso.; fare export HADOOP_CLASSPATH = $ HADOOP_CLASSPATH: $ f done' solo 'export HADOOP_CLASSPATH = $ HADOOP_CLASSPATH a: share/Hadoop/tools/lib/*' – Zulu