如何将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版本。
请帮忙。这对调试很有用。提前谢谢。
1条答案
按热度按时间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