簡體   English   中英

NoClassDefFoundError HBase與YARN

[英]NoClassDefFoundError HBase with YARN

我知道這是很多問題的主題之一。 在深入研究了所有可以找到的主題之后(大多數都在談論CLASSPATH),我仍然無法解決我的問題。

我找到並嘗試過的主題示例:

線程“主”中的異常java.lang.NoClassDefFoundError:org / apache / hadoop / hbase / HBaseConfiguration

HBase掃描的java.lang.NoClassDefFoundError

我在Ubuntu 14.04上將Hadoop 2.5.1與HBase 0.98.11結合使用

我設置了偽分布式模式,並成功使用hbase運行hadoop。 我要設置完全分布式模式后,作業將失敗,並顯示NoClassDefFound錯誤。 我嘗試將“ export HADOOP_CLASSPATH = /usr/local/hbase-0.98.11-hadoop2/bin/hbase classpath ”添加到hadoop-env(也包括yarn-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>

在yarn-env和hadoop-env中,除了HADOOP_CLASSPATH之外,它都是默認設置(即使我添加或不添加,它也不會改變。)

這是錯誤跟蹤:

2015-04-25 23:29:25,143致命[main] org.apache.hadoop.mapred.YarnChild:運行子程序時出錯:java.lang.NoClassDefFoundError:org / apache / hadoop / hbase / HBaseConfiguration at apriori2 $ FrequentItemsReduce.reduce( apriori2.java:550)位於org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:171)位於apriori2 $ FrequentItemsReduce.reduce(apriori2.java:532)在org.apache.hadoop.mapred.Task $ NewCombinerRunner org.apache.hadoop.mapred.MapTask $ MapOutputBuffer.sortAndSpill(MapTask.java:1611)的.combine(Task.java:1651)org.apache.hadoop.mapred.MapTask $ MapOutputBuffer.flush(MapTask.java:1462) )的org.apache.hadoop.mapred.MapTask.closeQuietly(MapTask.java:1990)的org.apache.hadoop.mapred.MapTask $ NewOutputCollector.close(MapTask.java:700)的org.apache.hadoop.mapred的)。 org.apache.hadoop.mapred.MapTask.run(MapTask.java:340)上的MapTask.runNewMapper(MapTask.java:774)org.apache.hadoop.mapred.YarnChild $ 2.run(YarnChild.java:168)上的MapTask.run(MapTask.java:340) javax.security.a上的java.security.AccessController.doPrivileged(本地方法) org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1614)的uth.Subject.doAs(Subject.java:415)org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:163)的uth.Subject.doAs(Subject.java:415)

先生,非常感謝您的幫助。

使用Yarn,您需要為MapReduce作業的類路徑設置“ yarn.application.classpath ”屬性。 “導出HADOOP_CLASSPATH”不適用於Yarn。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM