Apache 含纱线的NoClassDef-HBase

Apache 含纱线的NoClassDef-HBase,apache,hadoop,mapreduce,hbase,yarn,Apache,Hadoop,Mapreduce,Hbase,Yarn,我知道这是一个备受关注的话题。尽管如此,在我深入挖掘了所有的主题之后,我发现他们中的大多数都在谈论类路径,我还是无法解决我的问题 我找到并尝试的主题示例: 我在Ubuntu 14.04上使用Hadoop 2.5.1和HBase 0.98.11 我设置了伪分布式模式,并成功地使用hbase运行hadoop。在我想要设置完全分布式模式之后,作业会失败,并出现NoClassDefFound错误。我尝试将export-HADOOP\u CLASSPATH=/usr/local/hbase-0.98.11

我知道这是一个备受关注的话题。尽管如此,在我深入挖掘了所有的主题之后,我发现他们中的大多数都在谈论类路径,我还是无法解决我的问题

我找到并尝试的主题示例:

我在Ubuntu 14.04上使用Hadoop 2.5.1和HBase 0.98.11

我设置了伪分布式模式,并成功地使用hbase运行hadoop。在我想要设置完全分布式模式之后,作业会失败,并出现NoClassDefFound错误。我尝试将export-HADOOP\u CLASSPATH=/usr/local/hbase-0.98.11-hadoop2/bin/hbase CLASSPATH添加到HADOOP-env中,但仍然不起作用

我发现的一个通知是,如果我评论

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
我可以成功地运行作业。但我似乎在单个节点上运行它,而不是在多个节点上运行它

以下是一些配置:

地图站点

<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>
纱线位置

     <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>
在Thread env和hadoop env中,除了hadoop_类路径之外,其他都是默认的,即使我添加或不添加它,它也不会改变任何东西

以下是错误跟踪:

2015-04-25 23:29:25143致命[main]org.apache.hadoop.mapred.YarnChild:运行child时出错:java.lang.NoClassDefFoundError:org/apache/hadoop/hbase/HBaseConfiguration 在4月2日$FrequentItemsReduce.ReduceAppriori2.java:550 在4月2日$FrequentItemsReduce.ReduceAppriori2.java:532 位于org.apache.hadoop.mapreduce.Reducer.runReducer.java:171 位于org.apache.hadoop.mapred.Task$NewCombinerRunner.combineTask.java:1651 位于org.apache.hadoop.mapred.MapTask$MapOutputBuffer.sortAndSpillMapTask.java:1611 位于org.apache.hadoop.mapred.MapTask$MapOutputBuffer.flushMapTask.java:1462 位于org.apache.hadoop.mapred.MapTask$NewOutputCollector.closeMapTask.java:700 位于org.apache.hadoop.mapred.MapTask.closequietlymatask.java:1990 位于org.apache.hadoop.mapred.MapTask.runNewMapperMapTask.java:774 位于org.apache.hadoop.mapred.MapTask.runMapTask.java:340 位于org.apache.hadoop.mapred.YarnChild$2.runYarnChild.java:168 位于java.security.AccessController.doPrivilegeEdNative方法 位于javax.security.auth.Subject.doassObject.java:415 位于org.apache.hadoop.security.UserGroupInformation.doasurgroupinformation.java:1614 位于org.apache.hadoop.mapred.YarnChild.mainYarnChild.java:163


非常感谢您的帮助,先生。

对于Thread,您需要为MapReduce作业的类路径设置Thread.application.classpath属性。导出HADOOP\u类路径无法与Thread一起使用。

我尝试将Thread.application.CLASSPATH设置为HADOOP和HBase中这么多路径的值。运行作业后,将抛出退出代码1。您可以提供堆栈跟踪吗?您需要确保所有目录都存在于warn.application.classpath的值中我们需要设置warn.application.classpath的文件??您可以将其添加到warn-site.xml中,也可以在提交作业时使用-Dyarn.application.classpath选项指定此属性。