带纱线的HBase抛出错误



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

我可以在伪分布式模式下运行它。现在我想在分布式模式下运行。我按照站点的指示,最终在RUNTIME中出现了一个名为"error:org/apache/hoop/hbase/HBaseConfiguration"的错误(编译代码时没有错误)。

经过尝试,我发现如果我在mapred-site.xml中注释mapreduce.framework.name,并在yarn站点中填充,我就可以成功地运行hadoop。

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

以下是我的一些conf:

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>

地图站点

<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.application.classpath来对yarn站点进行一些更改

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

错误变为EXIT CODE。

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

更新2:在应用程序日志的系统日志中显示

2015-04-24 20:34:59164 INFO[main]org.apache.hadoop.mapreduce.v2.app.MRAppMaster:为应用程序appattempt_142792550440_0035_ 000002创建了MRAppMaster2015-04-24 20:34:59589警告[main]org.apache.hadoop.conf.Configuration:job.xml:试图覆盖最终参数:mapreduce.job.end-notification.max.rety.interval;正在忽略。2015-04-24 20:34:59610警告[main]org.apache.hadoop.conf.Configuration:job.xml:试图覆盖最终参数:mapreduce.job.end-notification.max.attempts;正在忽略。2015-04-24 20:34:59616 FATAL〔main〕org.apache.hadoop.mapreduce.v2.app.MRAppMaster:启动MRAppMaster时出错java.lang.NoSuchMethodError:org.apache.haop.http.HttpConfig.setPolicy(Lorg/apache/haop/http/HttpConfig$Policy;)V网址:org.apache.hadop.mapreduce.v2.app.MRAppMaster.main(MRAppMaster.java:1364)2015-04-24 20:34:59621信息[Thread-1]org.apache.hadoop.mapreduce.v2.app.MRAppMaster:MRAppMaster收到信号。信令RMCommunicator和JobHistoryEventHandler。

任何建议请

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

Hadoop配置:

步骤1:编辑hadoop-env.sh如下:

# The java implementation to use.  Required.
export JAVA_HOME=/usr/lib/jvm/java-6-sun

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

$ 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

步骤3:编辑core-site.xml

<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
</property>

步骤5:编辑mapred-site.xml

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

步骤6:编辑hdfs-site.xml

<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>

步骤7:编辑yarn-site.xml

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

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

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

Hbase配置:

编辑您的hbase-site.xml:

<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>                                                                                                                          

希望这能帮助你

在解决这个问题超过3天后(可能是我误解了这个概念),我可以通过将HADOOP_CLASSPATH(就像我在HADOOP-env中设置伪分发时所做的那样)添加到yarn env中来解决这个问题。

我不知道太多细节。但是,是的,希望这能在未来帮助到别人。

干杯。

我在Yarn上使用Spark,得到了同样的错误。实际上,spark-jar有一个hadoopclient和hadoopmapreduce-client-*jar的内部依赖项,它们指向旧的2.2.0版本。因此,我将这些条目包含在我正在运行的Hadoop版本的POM中,并进行了干净的构建。

这为我解决了问题。希望这能帮助到别人。

相关内容

  • 没有找到相关文章

最新更新