带有 YARN 的 HBase 抛出错误
HBase with YARN throws ERROR
我在 Ubuntu 14.04
上使用 Hadoop 2.5.1 和 HBase 0.98.11
我可以运行它在伪分布式模式下。现在我想 运行 在分布式模式下。我按照网站上的说明进行操作,最终在运行时出现错误 "Error: org/apache/hadoop/hbase/HBaseConfiguration"(而我编译代码时没有错误)。
在尝试之后,我发现如果我在 mapred-site.xml 中评论 mapreduce.framework.name 并且在 yarn-site 中添加东西,我可以成功地 运行 hadoop .
但我认为是单节点运行ning(我不知道,只是通过将运行ning时间与我在Pseudo中的运行进行比较来猜测并且有当 运行 在主节点上执行作业时,从节点 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>
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 来对 yarn-site 进行一些更改
错误更改为退出代码。
更新 2:在应用程序日志的系统日志中它说
2015-04-24 20:34:59,164 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Created MRAppMaster for application appattempt_1429792550440_0035_000002
2015-04-24 20:34:59,589 WARN [main] org.apache.hadoop.conf.Configuration: job.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring.
2015-04-24 20:34:59,610 WARN [main] org.apache.hadoop.conf.Configuration: job.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring.
2015-04-24 20:34:59,616 FATAL [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Error starting MRAppMaster
java.lang.NoSuchMethodError: org.apache.hadoop.http.HttpConfig.setPolicy(Lorg/apache/hadoop/http/HttpConfig$Policy;)V
at 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 received a signal. Signaling RMCommunicator and 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 具有 hadoop-client 和 hadoop-mapreduce-client-* jar 的内部依赖性,指向旧的 2.2.0 版本。因此,我将这些条目包含在我的 POM 中,我的 Hadoop 版本是 运行 并进行了干净的构建。
这解决了我的问题。希望这对某人有所帮助。
我在 Ubuntu 14.04
上使用 Hadoop 2.5.1 和 HBase 0.98.11我可以运行它在伪分布式模式下。现在我想 运行 在分布式模式下。我按照网站上的说明进行操作,最终在运行时出现错误 "Error: org/apache/hadoop/hbase/HBaseConfiguration"(而我编译代码时没有错误)。
在尝试之后,我发现如果我在 mapred-site.xml 中评论 mapreduce.framework.name 并且在 yarn-site 中添加东西,我可以成功地 运行 hadoop .
但我认为是单节点运行ning(我不知道,只是通过将运行ning时间与我在Pseudo中的运行进行比较来猜测并且有当 运行 在主节点上执行作业时,从节点 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>
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 来对 yarn-site 进行一些更改
错误更改为退出代码。
更新 2:在应用程序日志的系统日志中它说
2015-04-24 20:34:59,164 INFO [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Created MRAppMaster for application appattempt_1429792550440_0035_000002 2015-04-24 20:34:59,589 WARN [main] org.apache.hadoop.conf.Configuration: job.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.retry.interval; Ignoring. 2015-04-24 20:34:59,610 WARN [main] org.apache.hadoop.conf.Configuration: job.xml:an attempt to override final parameter: mapreduce.job.end-notification.max.attempts; Ignoring. 2015-04-24 20:34:59,616 FATAL [main] org.apache.hadoop.mapreduce.v2.app.MRAppMaster: Error starting MRAppMaster java.lang.NoSuchMethodError: org.apache.hadoop.http.HttpConfig.setPolicy(Lorg/apache/hadoop/http/HttpConfig$Policy;)V at 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 received a signal. Signaling RMCommunicator and 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 具有 hadoop-client 和 hadoop-mapreduce-client-* jar 的内部依赖性,指向旧的 2.2.0 版本。因此,我将这些条目包含在我的 POM 中,我的 Hadoop 版本是 运行 并进行了干净的构建。
这解决了我的问题。希望这对某人有所帮助。