我知道这是一个被问得很多的主题。但当我深入研究了所有我能找到的主题(大多数都是关于类路径的),我还是无法解决我的问题。
我找到并尝试过的主题示例:
线程“main”java.lang.noclassdeffounderror中出现异常:org/apache/hadoop/hbase/hbaseconfiguration
带有hbase扫描的java.lang.noclassdeffounderror
我在ubuntu14.04上使用hadoop2.5.1和hbase 0.98.11
我设置了伪分布式模式,并成功地用hbase运行hadoop。在我想设置完全分布式模式之后,作业会失败,并出现noclassdeffound错误。我尝试添加“导出hadoop\u类路径”= /usr/local/hbase-0.98.11-hadoop2/bin/hbase classpath
“进入hadoop env(也叫Yarnenv),还是不行。
我发现的一个注意事项是,如果我对
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
我可以成功地运行作业。但我似乎是在单节点而不是多节点上运行它。
以下是一些配置:
Map站点
<property>
<name>mapred.job.tracker</name>
<value>hadoop1:54311</value>
<description>The host and port that the MapReduce job tracker runs
at. If "local", then jobs are run in-process as a single map
and reduce task.
</description>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>`
hdfs站点
<property>
<name>dfs.replication</name>
<value>2</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop_store/hdfs/datanode</value>
</property>
<property>
<name>dfs.datanode.use.datanode.hostname</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.datanode.registration.ip-hostname-check</name>
<value>false</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
Yarn位置
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>shuffle service that needs to be set for Map Reduce to run
</description>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
在yarn-env和hadoop-env中,除了hadoop\u类路径(即使我添加或不添加它,它也不会改变任何东西)之外,都是默认的
以下是错误跟踪:
2015-04-25 23:29:25,143 fatal[main]org.apache.hadoop.mapred.yarnchild:运行child:java.lang.noclassdeffounderror:org/apache/hadoop/hbase/hbaseconfiguration at apriori2$frequentitemsreduce.reduce(apriori2)时出错。java:550)在4月2日$frequentitemsreduce.reduce(4月2日。java:532)在org.apache.hadoop.mapreduce.reducer.run(reducer。java:171)在org.apache.hadoop.mapred.task$newcombinerrunner.combine(任务。java:1651)在org.apache.hadoop.mapred.maptask$mapoutputbuffer.sortandspill(maptask。java:1611)在org.apache.hadoop.mapred.maptask$mapoutputbuffer.flush(maptask。java:1462)在org.apache.hadoop.mapred.maptask$newoutputcollector.close(maptask。java:700)在org.apache.hadoop.mapred.maptask.closequiety(maptask。java:1990)在org.apache.hadoop.mapred.maptask.runnewmapper(maptask。java:774)在org.apache.hadoop.mapred.maptask.run(maptask。java:340)在org.apache.hadoop.mapred.yarnchild$2.run(yarnchild。java:168)位于java.security.accesscontroller.doprivileged(本机方法)javax.security.auth.subject.doas(主题。java:415)在org.apache.hadoop.security.usergroupinformation.doas(usergroupinformation。java:1614)在org.apache.hadoop.mapred.yarnchild.main(yarnchild。java:163)
非常感谢您的帮助。
1条答案
按热度按时间5q4ezhmt1#
对于yarn,您需要为mapreduce作业的类路径设置“yarn.application.classpath”属性导出hadoop\u classpath“不能与yarn一起工作。