为hadoop设置的类路径在哪里

问题描述 投票:6回答:4

hadoop集的类路径在哪里?当我运行下面的命令时,它给了我类路径。类路径设置在哪里?

  bin/hadoop classpath

我正在使用hadoop 2.6.0

hadoop mapreduce hadoop2
4个回答
4
投票

正如almas shaikh所说,它设置在hadoop-config.sh,但你可以在hadoop-env.sh中添加更多的罐子

这是来自hadoop-env.sh的相关代码,它添加了容量调度程序和aws jar等额外的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/*

4
投票

打开您的bash配置文件(~/.profile~/.bash_profile)进行编辑并添加以下内容:

  1. 导出HADOOP_HOME="/usr/local/Cellar/hadoop"然后用你自己的路径替换
  2. export HADOOP_CLASSPATH=$(find $HADOOP_HOME -name '*.jar' | xargs echo | tr ' ' ':')保存更改并重新加载。
  3. 来源~/.profile

2
投票

当你运行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.

0
投票

根据this blog post,它位于一个名为HADOOP_CLASSPATH的环境变量中。您可以像设置任何其他环境变量一样设置它,具体取决于您使用的shell。如果你使用bash,那么你可以像export HADOOP_CLASSPATH=/path/to/wherever:/path/to/wherever/else一样打电话。

© www.soinside.com 2019 - 2024. All rights reserved.