Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 带纱线的HBase抛出错误_Apache_Hadoop_Mapreduce_Hbase_Yarn - Fatal编程技术网

Apache 带纱线的HBase抛出错误

Apache 带纱线的HBase抛出错误,apache,hadoop,mapreduce,hbase,yarn,Apache,Hadoop,Mapreduce,Hbase,Yarn,我在Ubuntu 14.04上使用Hadoop 2.5.1和HBase 0.98.11 我可以在伪分布式模式下运行它。现在我想在分布式模式下运行。我按照站点的指示进行操作,结果在运行时出现了一个名为“error:org/apache/hadoop/hbase/HBaseConfiguration”的错误(编译代码时没有错误) 在尝试之后,我发现如果我在mapred-site.xml中注释mapreduce.framework.name,并在Thread站点中填充内容,我就可以成功运行hadoop

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

我可以在伪分布式模式下运行它。现在我想在分布式模式下运行。我按照站点的指示进行操作,结果在运行时出现了一个名为“error:org/apache/hadoop/hbase/HBaseConfiguration”的错误(编译代码时没有错误)

在尝试之后,我发现如果我在mapred-site.xml中注释mapreduce.framework.name,并在Thread站点中填充内容,我就可以成功运行hadoop

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

以下是我的一些建议:

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>

dfs.replication
2.
默认块复制。
创建文件时,可以指定实际的复制次数。
如果在创建时未指定复制,则使用默认值。
dfs.datanode.data.dir
文件:/usr/local/hadoop\u store/hdfs/datanode
dfs.datanode.use.datanode.hostname
假的
dfs.0权限
假的
地图站点

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

mapred.job.tracker
本地主机:54311
MapReduce作业跟踪器运行的主机和端口
在如果为“本地”,则作业作为单个映射在进程中运行
并减少任务。
纱线位置

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

非常感谢你的帮助

更新:我尝试通过添加类似以下的纱线.applicaton.classpath对纱线站点进行一些更改

错误更改为退出代码

UPDATE2:在应用程序日志的syslog中

2015-04-24 20:34:59164信息[main]org.apache.hadoop.mapreduce.v2.app.MRAppMaster:为应用程序appattempt创建了MRAppMaster 2015-04-24 20:34:59589警告[main]org.apache.hadoop.conf.Configuration:job.xml:试图覆盖最终参数:mapreduce.job.end-notification.max.retry.interval;忽略。 2015-04-24 20:34:59610警告[main]org.apache.hadoop.conf.Configuration:job.xml:试图覆盖最终参数:mapreduce.job.end-notification.max.truments;忽略。 2015-04-24 20:34:59616致命[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: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>
  <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
<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>
<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
步骤6:编辑
hdfs 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>
  <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
<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>
<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
最后格式化HDF(第一次设置Hadoop集群时需要这样做)

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>                                                                                                                          

hbase.rootdir
hdfs://localhost:54310/hbase
hbase.cluster.distributed
真的
hbase.zookeeper.quorum
本地服务器
dfs.replication
1.
hbase.zookeeper.property.clientPort
2181
hbase.zookeeper.property.dataDir
/usr/local/hbase/zookeeper

希望这能帮助你解决这个问题超过3天(可能是因为我误解了这个概念),我可以通过将HADOOP_类路径(就像我在HADOOP环境中设置伪分发时所做的那样)添加到Thread环境中来解决这个问题

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


干杯。

我在使用Spark on Thread时遇到了同样的错误。实际上,Spark jar具有hadoop client和hadoop mapreduce client-*jar的内部依赖性,指向较旧的2.2.0版本。因此,我将这些条目包含在POM中,并使用我正在运行的hadoop版本进行了干净的构建


这为我解决了问题。希望这对其他人有所帮助。

请添加错误跟踪rry,我不确定错误跟踪是什么。顺便说一句,运行时显示的错误只是映射0%减少0%后的“error:org/apache/hadoop/hbase/HBaseConfiguration”。谢谢。这是我运行作业时显示的错误跟踪(不知道这是否是您提到的错误跟踪)谢谢,我想这就是我所做的。在我完成Hadoop集群的设置后,我尝试运行PI和WordCount作业,但成功了。所以我不知道我到底做错了什么。谢谢。哦,对不起,我的意思是,这就是我在面对问题之前所做的。然后我尝试使用HBase运行作业,结果显示错误。我尝试了e mapreduce.framework.name和我可以再次正确运行作业,但它似乎只在1个节点上运行。谢谢,如果你仍然因为我糟糕的沟通技巧而混淆了我的想法。我建立了mapred站点和Thread站点,有点像你发布的站点(但在Thread站点中,我有warn.nodemanager.aux-services.mapreduce_shuffle.class、warn.resourcemanager.scheduler.address、warn.resourcemanager.resource tracker.address,我可以成功运行“hadoop-jar hadoop-mapreduce-examples-2.5.1.jar pi 5 50”。但是当涉及到带有HBase的程序时,会抛出错误。尝试