带有YARN的HBase引发错误

时间:2015-04-22 09:58:06

标签: apache hadoop mapreduce hbase yarn

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

我可以在伪分布式模式下运行它。现在我想在分布式模式下运行。我按照站点的说明进行操作,最后在RUNTIME中出现错误,称为#34;错误:org / apache / hadoop / hbase / HBaseConfiguration" (虽然编译代码时没有错误。)

在尝试之后,我发现如果我在mapred-site.xml中注释mapreduce.framework.name以及在yarn-site中的东西,我就能够成功运行hadoop。

但我认为它是单节点运行(我不知道,只是通过将运行时间与我在Pseudo中运行的时间进行比较来猜测,并且在运行时没有MR在slave的节点jps中运行主人的工作)。

以下是我的一些说法:

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.permissions</name>
<value>false</value>
</property>

mapred现场

 <property>
   <name>mapred.job.tracker</name>
   <value>localhost: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>-->

纱现场

 <!-- Site specific YARN configuration properties -->

 <!--<property>
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
 </property>
 <property>
     <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
     <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>
 <property>
     <name>yarn.resourcemanager.address</name>
     <value>10.1.1.177:8032</value>
 </property>
 <property>
     <name>yarn.resourcemanager.scheduler.address</name>
     <value>10.1.1.177:8030</value>
 </property>
 <property>
     <name>yarn.resourcemanager.resource-tracker.address</name>
     <value>10.1.1.177:8031</value>
 </property>-->

非常感谢您的每一次帮助

更新:我尝试通过添加yarn.applicaton.classpath来对纱线网站进行一些更改

https://dl-web.dropbox.com/get/Public/yarn.png?_subject_uid=51053996&w=AABeDJfRp_D31RiVHqBWn0r9naQR_lFVJXIlwvCwjdhCAQ

错误已更改为“退出代码”。

https://dl-web.dropbox.com/get/Public/exitcode.jpg?_subject_uid=51053996&w=AAAQ-bYoRSrQV3yFq36vEDPnAB9aIHnyOQfnvt2cUHn5IQ

UPDATE2:在应用程序日志的syslog中显示<​​/ p>

  

2015-04-24 20:34:59,164 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster:为应用程序创建MRAppMaster appattempt_1429792550440_0035_000002   2015-04-24 20:34:59,589 WARN [main] org.apache.hadoop.conf.Configuration:job.xml:尝试覆盖最终参数:mapreduce.job.end-notification.max.retry.interval;忽略。   2015-04-24 20:34:59,610 WARN [main] org.apache.hadoop.conf.Configuration:job.xml:尝试覆盖最终参数:mapreduce.job.end-notification.max.attempts;忽略。   2015-04-24 20:34:59,616 FATAL [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster:启动MRAppMaster时出错   java.lang.NoSuchMethodError:org.apache.hadoop.http.HttpConfig.setPolicy(Lorg / apache / hadoop / http / HttpConfig $ Policy;)V       在org.apache.hadoop.mapreduce.v2.app.MRAppMaster.main(MRAppMaster.java:1364)   2015-04-24 20:34:59,621 INFO [Thread-1] org.apache.hadoop.mapreduce.v2.app.MRAppMaster:MRAppMaster收到一个信号。信令RMCommunicator和JobHistoryEventHandler。

任何建议请

3 个答案:

答案 0 :(得分:0)

我猜您没有正确设置您的hadoop群集请按照以下步骤操作:

Hadoop配置:

第1步:编辑# The java implementation to use. Required. export JAVA_HOME=/usr/lib/jvm/java-6-sun ,如下所示:

$ sudo mkdir -p /app/hadoop/tmp
$ sudo chown hduser:hadoop /app/hadoop/tmp
# ...and if you want to tighten up security, chmod from 755 to 750...
$ sudo chmod 750 /app/hadoop/tmp

第2步:现在创建一个目录并设置所需的所有权和权限

core-site.xml

第3步:修改<property> <name>hadoop.tmp.dir</name> <value>/app/hadoop/tmp</value> </property> <property> <name>fs.default.name</name> <value>hdfs://localhost:54310</value> </property>

mapred-site.xml

第5步:修改 <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>

hdfs-site.xml

第6步:修改<property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>file:///home/hduser/hadoopdata/hdfs/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>file:///home/hduser/hadoop/hadoopdata/hdfs/datanode</value> </property>

yarn-site.xml

第7步:修改<property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>

$ /usr/local/hadoop/bin/hadoop namenode -format

最后格式化你的hdfs(你需要在第一次设置Hadoop集群时这样做)

hbase-site.xml

Hbase配置:

编辑你<property> <name>hbase.rootdir</name> <value>hdfs://localhost:54310/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>localhost</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/usr/local/hbase/zookeeper</value> </property>

{{1}}

希望这有助于你

答案 1 :(得分:0)

在坚持这个问题超过3天之后(也许是因为我误解了这个概念),我可以通过添加HADOOP_CLASSPATH(就像我在hadoop-env中设置伪分发时所做的那样)来解决问题。纱线-ENV。

我不太详细。但是,是的,希望将来可以帮助某人。

干杯。

答案 2 :(得分:0)

我在使用Spark on Yarn并且遇到了同样的错误。实际上,火花罐有一个内部依赖的hadoop-client和hadoop-mapreduce-client- * jars指向较旧的2.2.0版本。所以,我将这些条目包含在我的POM中,并使用了我正在运行的Hadoop版本并进行了简洁的构建。

这解决了我的问题。希望这有助于某人。