知识点
相关文章
更多最近更新
更多Hadoop分布式环境部署之namenode或datanode启动失败
2019-03-28 13:18|来源: 网络
Hadoop分布式环境部署之namenode或datanode启动失败
bug信息:
namenode
org.apache.hadoop.ipc.Server: Error register getProtocolVersionjava.lang.IllegalArgumentException: Duplicate metricsName:getProtocolVersionat org.apache.hadoop.metrics.util.MetricsRegistry.add(MetricsRegistry.java:53)at org.apache.hadoop.metrics.util.MetricsTimeVaryingRate.<init>(MetricsTimeVaryingRate.java:89)at org.apache.hadoop.metrics.util.MetricsTimeVaryingRate.<init>(MetricsTimeVaryingRate.java:99)at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:523)at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:959)at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:955)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:396)at org.apache.hadoop.ipc.Server$Handler.run(Server.java:953)2010-01-14 09:32:13,093 INFO org.apache.hadoop.ipc.Server: Error register versionRequestjava.lang.IllegalArgumentException: Duplicate metricsName:versionRequestat org.apache.hadoop.metrics.util.MetricsRegistry.add(MetricsRegistry.java:53)at org.apache.hadoop.metrics.util.MetricsTimeVaryingRate.<init>(MetricsTimeVaryingRate.java:89)at org.apache.hadoop.metrics.util.MetricsTimeVaryingRate.<init>(MetricsTimeVaryingRate.java:99)at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:523)at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:959)at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:955)at java.security.AccessController.doPrivileged(Native Method)at javax.security.auth.Subject.doAs(Subject.java:396)at org.apache.hadoop.ipc.Server$Handler.run(Server.java:953)
datanode:
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: IncompatiblenamespaceIDs in /var/lib/hadoop-0.20/cache/hdfs/dfs/data: namenode namespaceID =240023870; datanode namespaceID = 1462715681 .
用三台Ubuntu操作系统的机器搭建了一个hadoop的分布式集群。启动服务后失败。
问题:Namenode上namespaceID与datanode上namespaceID不一致。namenode上的问题可能是datanode bug导致的。
原因:每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,所以造成namenode节点上的namespaceID与datanode节点上的namespaceID不一致。启动失败。
解决:参考该网址 http://www.linuxidc.com/Linux/2012-12/75664.htm 给出两种解决方法,我们使用的是第一种解决方法:即:
(1)停掉集群服务
(2)在出问题的datanode节点上删除data目录,data目录即是在hdfs-site.xml文件中配置的dfs.data.dir目录,本机器上那个是/var/lib/hadoop-0.20/cache/hdfs/dfs/data/ (注:我们当时在所有的datanode和namenode节点上均执行了该步骤。以防删掉后不成功,可以先把data目录保存一个副本).
(3)格式化namenode.
(4)重新启动集群。
问题解决。
这种方法带来的一个副作用即是,hdfs上的所有数据丢失。如果hdfs上存放有重要数据的时候,不建议采用该方法,可以尝试提供的网址中的第二种方法。
相关问答
更多-
关于分布式Hadoop在WINDOWS上操作问题[2023-11-29]
若在windows的Eclipse工程中直接启动mapreduc程序,需要先把hadoop集群的配置目录下的xml都拷贝到src目录下,让程序自动读取集群的地址后去进行分布式运行(您也可以自己写java代码去设置job的configuration属性)。 若不拷贝,工程中bin目录没有完整的xml配置文件,则windows执行的mapreduce程序全部通过本机的jvm执行,作业名也是带有“local"字眼的作业,如 job_local2062122004_0001。 这不是真正的分布式运行mapred ... -
完全分布式Hadoop集群namenode和datanode节点正常启动,为什么hdfs不正常[2022-05-22]
bin/hdfs fs -mkdir input -
在cygwin中搭建hadoop,,建立伪分布式,关于datanode启动的小问题[2022-04-28]
ID不一致,你后来肯定是把namenode 格式化过了,但是datanode上的id没有变 看看namenode 和datanode 中/hadoop/dfs/data/current/目录下面的 VERSION文件,里面的namespaceID是否一致,不一致就改一致 -
在 /usr/local/hadoop/ 下面启动,找到是/opt/Hadoop/下面的hadoop安装包,是不是HADOOP_HOME环境变量配置的有问题。 可以到海牛部落交流,那里有好多学习hadoop的朋友
-
hadoop配置了集群,但启动仍然是伪分布式下的启动状态[2022-08-22]
你可以输入JPS查看一下进程 一般你的master上是namenode secondarynamenode 和jobtracker三个进程 你的slaves上 有各自的datanode 和tasktracker两个进程 你看看是不是有各自进程都启动起来了 启动起来了就是分布式 如果只有一台机子有进程 那你就重新把那些配置文件再设置一下 -
hadoop 集群 和 hadoop 分布式 怎么理解啊[2022-02-07]
hadoop集群指的是一群机器在一起提供一个hadoop的集群的服务。 hadoop分布式指的是hadoop支持任务分布式运行,因为有hadoop集群提供服务,所以hadoop将任务分发到集群的多台机器运行,所以叫做分布式。 一个是服务器架构,一个是任务运行架构。 -
无法在Hadoop中启动NameNode守护程序和DataNode守护程序(Can't start NameNode daemon and DataNode daemon in Hadoop)[2022-04-06]
上述错误表明权限问题。 您必须确保hadoop用户具有/ usr / local / hadoop的适当权限。 为此,您可以尝试: sudo chown -R hadoop /usr/local/hadoop/ 要么 sudo chmod 777 /usr/local/hadoop/ The errors above suggest a permissions problem. You have to make sure that the hadoop user has the proper ... -
修改/etc/hosts以包含主机名环回映射: 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 127.0.1.1 is-joshbloom-hadoop ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 您的问题是您的机器不知道如何解析主机名is-joshbloom-hadoop到特定 ...
-
您可以在开发Hadoop Wiki上找到有关此内容的详细信息。 它有关于如何设置开发环境,如何开发单元测试等内容的详细信息。 HTH You can find detailed information on this on the Developing Hadoop Wiki. It has detailed info on stuff like How To Setup Your Development Environment, How To Develop Unit Tests etc. HTH
-
我终于找到了问题并纠正了它。 它位于namenodes的hdfs-site.xml配置文件中。 你可以在hadoop安装库中找到它:在我的情况下它位于〜/ hadoop-2.7.2 / etc / hadoop / 此外,标准配置还要确保dfs.name.dir属性引用每个namenode的元数据库的位置。 就我而言,对于所有的名称节点,我为此目的创建了/ hdfs / name目录 ,并具有适当的所有权(专门为使用hadoop而创建的用户) 所以你必须在你群集的所有名称节点的hdfs-site.xml中添 ...