我在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来对纱线网站进行一些更改
错误已更改为“退出代码”。
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。
任何建议请
答案 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版本并进行了简洁的构建。
这解决了我的问题。希望这有助于某人。