hadoop启动缺少NameNode, 缺少ResourceManager, 缺少NodeManager...

描述:在hadoop 运行start-all.sh,发现缺少了NameNode, 缺少ResourceManager, 缺少NodeManager…等等的服务。这类问题有统一的解决方案。即查阅hadoop日志。

目录

1.hadoop日志

hadoop日志位于 hadoop 安装目录下的logs里,包含了start-all.sh命令中没有显示的重要信息,如果有报错,信息也可以在以下文件中找到。
在这里插入图片描述
由于我测试了两个host,所以在文件夹里会有两种日志,即以localhost.localdomain.log为结尾的,和以mainnode.log


2.1没有NameNode

一般来说没有node是由于没有找到是由于忘记格式化namenode,我们输入

[root@mainnode logs]# vim hadoop-root-namenode-mainnode.log +

可以查看logs日志找到如下提示。
在这里插入图片描述
Directory /opt/hadoop-3.2.1/tmp/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.

在这句话中 /opt/hadoop-3.2.1/tmp/dfs/name是由格式化namenode产生的,所以就意味着我们没有初始化namenode。需要我们先执行如下命令

hdfs namenode -format

然后再次尝试start-all.sh


2.2没有ResourceManager和NodeManager

了解了日志之后,我们来试试使用日志来解决这个问题

vim hadoop-root-resourcemanager-localhost.localdomain.log

输入上面的命令,我们可以在resourcemanager的日志里看到如下提示,原来是缺少了一个类。
在这里插入图片描述

出现这个问题,一般来说是由于jdk版本过引起,建议使用1.7和1.8两个版本。如果你不想跟换jdk,也可以直接下载activation-1.1.1.jar到lib目录下,或者本地上传到${HADOOP_HOME}/share/hadoop/yarn/lib目录下后重新启动start-yarn.sh即可:

cd ${HADOOP_HOME}/share/hadoop/yarn/lib
wget https://repo1.maven.org/maven2/javax/activation/activation/1.1.1/activation-1.1.1.jar

然后再次尝试start-all.sh


2.3没有ResourceManager

了解了日志之后,我们来试试使用日志来解决这个问题

vim hadoop-root-resourcemanager-localhost.localdomain.log

输入上面的命令,我们可以在resourcemanager的日志里看到如下提示,原来是端口被占用了,我们只需要更改以下ResourceManager的端口就好
Address already in use; For more details see: http://wiki.apache.org/hadoop/BindException
在这里插入图片描述

vim hadoop-root-resourcemanager-localhost.localdomain.log

进入yarn-site.xml 在configuration 添加如下的属性更改一个没有被使用端口即可

    <property>
        <name>yarn.resourcemanager.address</name>
        <value>hadoop:8888</value> <!-- hadoop要改为你的ip地址或hosts -->
   </property>

然后再次尝试start-all.sh


总结

面对这类hadoop启动缺少缺少进程没有提示的问题,我们需要先查阅logs找到更加精确问题原因,通过这些错误原因我们就很容易找到解决方案了。
祝大家hadoop之旅愉快。

### 回答1: Hadoop缺少ResourceManager可能是由于以下原因之一: 1. ResourceManager启动或已停止运行。您可以通过检查ResourceManager的日志文件来确定是否存在此问题。 2. ResourceManager配置错误。您需要检查hadoop配置文件中的ResourceManager配置是否正确。 3. 网络问题。ResourceManager可能无法与其他Hadoop组件通信,这可能是由于网络问题引起的。 解决此问题的方法包括: 1. 启动ResourceManager。您可以使用命令行或Hadoop管理界面来启动ResourceManager。 2. 检查ResourceManager配置。确保ResourceManager的配置正确,并且与其他Hadoop组件的配置相匹配。 3. 检查网络连接。确保网络连接正常,并且ResourceManager可以与其他Hadoop组件通信。 如果您无法解决此问题,请考虑寻求专业的Hadoop支持。 ### 回答2: Hadoop是一种开源的分布式计算框架,主要用于处理大规模数据集,由于其优秀的性能和可靠性,被广泛应用于数据处理领域。在Hadoop中,资源管理器被认为是一个非常重要的组件,但是如何解决缺少资源管理器的问题呢? 首先,我们需要了解什么是资源管理器。在Hadoop集群中,资源管理器的作用是对各个节点上的资源进行统一管理和调度,它负责监控节点上的CPU、内存、磁盘等资源的使用情况,并根据需要进行任务的分配和调度。如果缺少资源管理器,那么集群的资源利用率将会受到影响,任务处理效率也会下降。 解决Hadoop缺少资源管理器问题的方法有很多种,以下是几个常见的方法: 1. 安装和配置Yarn:Yarn是一个分布式的资源管理框架,它是Hadoop的一个重要组件,可以用于管理集群中的资源,因此可以通过安装和配置Yarn来解决资源管理器的问题。 2. 使用第三方的资源管理工具:除了Yarn以外,还有一些第三方的资源管理工具,比如Mesos和Kubernetes等,这些工具同样可以对集群中的资源进行管理和调度,从而解决缺少资源管理器的问题。 3. 自己开发资源管理器:如果以上两种方法不能够满足需求,还可以考虑自己开发一个资源管理器,这需要具备一定的计算机编程知识和经验,但是可以更好的满足自己的需求。 综上所述,Hadoop缺少资源管理器会对集群的效率和资源利用率造成影响,但是通过安装和配置Yarn、使用第三方资源管理工具或者自己开发资源管理器,都可以有效地解决这个问题。 ### 回答3: Hadoop是一个开源的分布式存储和计算系统,是由Apache软件基金会开发和维护的。Hadoop系统是由多台计算机组成的集群,能够进行海量数据的存储和处理。其中一个重要的组件就是Resourcemanager资源管理器,它的作用是协调整个集群中计算资源的分配和任务的执行,保证整个系统的资源利用率和任务效率。 然而,有时候Hadoop会出现缺少Resourcemanager的问题。出现这个问题的原因可能是Resourcemanager所在的节点宕机,网络连接故障,或是其他的配置错误。 那么,当Hadoop缺少Resourcemanager时,我们应该如何处理呢?首先需要检查Resourcemanager所在机器的状态,尝试重新启动该服务。如果该节点依然无法使用,可以考虑将Resourcemanager卸载并重新安装。同时,也需要检查集群的网络连接,确认集群各节点之间的网络连接是否正常,以及集群节点之间的通信是否遵守了Hadoop的通信规范。 另外,还可以考虑实施一些容错措施,如在多个节点上部署Resourcemanager,并采用ZooKeeper等技术进行集群管理和协调,以保证整个集群的资源协调和任务分配的顺利运行。 总之,Hadoop缺少Resourcemanager是一个比较常见的问题,但我们可以通过仔细排查和一些有效的应对措施,解决这个问题,并保证整个Hadoop集群的稳定性和高效性。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值