如何在Linux上找到HADOOP_HOME路径?

9

我正在尝试在hadoop服务器上运行以下java代码。

javac -classpath ${HADOOP_HOME}/hadoop-${HADOOP_VERSION}-core.jar -d wordcount_classes WordCount.java

但我找不到{HADOOP_HOME}。 我尝试使用hadoop -classpath,但输出如下:

/etc/hadoop/conf:/usr/lib/hadoop/lib/*:/usr/lib/hadoop/.//*:/usr/lib/hadoop-hdfs/./:/usr/lib/hadoop-hdfs/lib/*:/usr/lib/hadoop-hdfs/.//*:/usr/lib/hadoop-yarn/.//*:/usr/lib/hadoop-0.20-mapreduce/./:/usr/lib/hadoop-0.20-mapreduce/lib/*:/usr/lib/hadoop-0.20-mapreduce/.//*

有人对此有什么想法吗?

2个回答

6

导航到安装了Hadoop的路径。找到 ${HADOOP_HOME}/etc/hadoop,例如:

/usr/lib/hadoop-2.2.0/etc/hadoop

当您在该文件夹中键入ls时,您应该看到所有这些文件。
capacity-scheduler.xml      httpfs-site.xml
configuration.xsl           log4j.properties
container-executor.cfg      mapred-env.cmd
core-site.xml               mapred-env.sh
core-site.xml~              mapred-queues.xml.template
hadoop-env.cmd              mapred-site.xml
hadoop-env.sh               mapred-site.xml~
hadoop-env.sh~              mapred-site.xml.template
hadoop-metrics2.properties  slaves
hadoop-metrics.properties   ssl-client.xml.example
hadoop-policy.xml           ssl-server.xml.example
hdfs-site.xml               yarn-env.cmd
hdfs-site.xml~              yarn-env.sh
httpfs-env.sh               yarn-site.xml
httpfs-log4j.properties     yarn-site.xml~
httpfs-signature.secret

核心配置设置可在hadoop-env.sh中找到。

您可以在此文件中查看classpath设置,并为您提供一些示例参考。

# The java implementation to use.
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_67

# The jsvc implementation to use. Jsvc is required to run secure datanodes.
#export JSVC_HOME=${JSVC_HOME}

export HADOOP_CONF_DIR=${HADOOP_CONF_DIR}

# Extra Java CLASSPATH elements.  Automatically insert capacity-scheduler.
for f in $HADOOP_HOME/contrib/capacity-scheduler/*.jar; do
    export HADOOP_CLASSPATH=${HADOOP_CLASSPATH+$HADOOP_CLASSPATH:}$f
done

希望这有所帮助!

贡献者Abdulaziz Alshehri指出,在Google Cloud Cluster中,文件位于/usr/lib/hadoop/etc/hadoop - Jeremy Caney

4
jar文件位于${HADOOP_HOME}/share/hadoop/common目录下,而不是${HADOOP_HOME}目录下。 您可以在您的.bashrc文件中设置环境变量。
vim ~/.bashrc

然后将以下行添加到 .bashrc 文件的末尾。
export HADOOP_HOME=/your/hadoop/installation/directory

只需将路径替换为您的Hadoop安装路径即可。


1
由于我正在使用已经安装了Hadoop的服务器上工作,所以我无法找到${HADOOP_HOME}/hadoop-${HADOOP_VERSION}-core.jar文件。 - Anil Savaliya
“echo ${HADOOP_HOME}” 的结果是什么?您可能需要向服务器管理员询问安装目录。 - Chong Tang
这与HADOOP_HOME相同,意味着路径未设置。但是我通过将${HADOOP_HOME}/hadoop-${HADOOP_VERSION}-core.jar替换为hadoop -classpath的输出来运行该命令。谢谢Chong。 - Anil Savaliya
一些服务器管理员喜欢将Hadoop放在/opt/目录下,你可以去那里查看,祝你好运! :) - Chong Tang
@ChongTang,您能否解释一下在.bashrc和hadoop-env.sh中提及Java位置的重要性。当Hadoop集群启动时会发生什么。我只是想了解Java路径如何与Hadoop守护进程相关联。 - Jon Andrews

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接