如何设置hadoop\u类路径来使用本地文件系统和本地作业运行器?

baubqpgj  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(362)

如何将hadoop\u类路径设置为与本地作业运行器一起使用本地文件系统?如何从本地目录设置输入和输出路径?
当我尝试使用以下命令运行时,mapper和reducer类会出现classnotfoundexception。

hadoop WordCount input/sample.txt output

当前值为:
:hadoop类路径 /usr/local/hadoop/hadoop-3.2.1/etc/hadoop:/usr/local/hadoop/hadoop-3.2.1/share/hadoop/common/lib/*:/usr/local/hadoop/hadoop-3.2.1/share/hadoop/common/*:/usr/local/hadoop/hadoop-3.2.1/share/hadoop/hdfs:/usr/local/hadoop/hadoop-3.2.1/share/hadoop/hdfs/lib/*:/usr/local/hadoop/hadoop-3.2.1/share/hadoop/hdfs/*:/usr/local/hadoop/hadoop-3.2.1/share/hadoop/mapreduce/lib/*:/usr/local/hadoop/hadoop-3.2.1/share/hadoop/mapreduce/*:/usr/local/hadoop/hadoop-3.2.1/share/hadoop/yarn:/usr/local/hadoop/hadoop-3.2.1/share/hadoop/yarn/lib/*:/usr/local/hadoop/hadoop-3.2.1/share/hadoop/yarn/*:/usr/local/hadoop/hadoop-3.2.1/etc/hadoop/usr/local/hadoop/hadoop-3.2.1/share/hadoop/common/*.jar 版本:
apache hadoop-3.2.1版,
openjdk 11.0.5版本。
请帮忙。这对调试很有用。提前谢谢。

8fq7wneg

8fq7wneg1#

我相信如果你有FileNotFoundException,但是你的类路径看起来很好,所以我很难看到你会得到ClassNotFoundException
不过,这条路似乎错了 /usr/local/hadoop/hadoop-3.2.1/etc/hadoop/usr/local/hadoop/hadoop-3.2.1/share/hadoop/common/*.jar .
我建议把所有文件移到 hadoop-3.2.1 上升到 /usr/local/hadoop ,或者至少,重命名 hadoop-3.2.1 目录到 /usr/local/hadoop/3.2.1/ 默认情况下,hadoop作业使用file://路径作为 fs.defaultFS (在core site.xml中定义)
否则,如果你把它改成 hdfs:// ,则仍然可以像这样使用本地文件 hadoop fs -ls file:// 要运行作业,我建议使用 yarn jar ,不是 hadoop <name> . 您需要将java应用程序隐藏到uberjar中,或者使用现有的hadoop示例jar来运行 WordCount

相关问题