Hadoop3.x完全分布式模式下slaveDataNode节点未启动调整

本文主要是介绍Hadoop3.x完全分布式模式下slaveDataNode节点未启动调整,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

一、问题重现

1、查询Hadoop版本

 2、集群启动Hadoop

二、问题分析

三、Hadoop3.x的集群配置

1、停止Hadoop服务

2、配置workers

3、从节点检测

4、WebUI监控

总结


前言

        在大数据的世界里,Hadoop绝对是一个值得学习的框架。关于Hadoop的知识,有很多博主和视频博主都做了很详细的教程,感兴趣的朋友甚至可以去官网看看。比如其分布式架构的实现,在这里都不在赘述,大家可以通过多种途径进行学习。

        这篇博客出现得场景缘由是最近基于Hbase2.4.11搭建完全分布式集群,集群的节点是3。至于为什么是3,主要是机器有限,而且是同一台物理主机上进行虚拟搭建的。Hbase的底层存储是存放在Hdfs中的,由此必须要安装Hadoop。

        众所周知,在完全分布式环境下,我们可以只在Master节点上直接运行start-all.sh命令,整个集群都会自动启动。本文描述的是在Hadoop3.1.3的完全分布式环境下,slave节点的DataNode节点未能成功启动的问题以及通过修改配置来解决的办法,希望能帮助到遇到这个问题的朋友。请注意,由于不同的版本,可能解决办法不一致,请谨慎参考。博主就遇到过,在Hadoop2.x的配置和Hadoop3.x的配置不一致的问题。博文的参考仅限于Hadoop3.x,如果您使用的不是这个系列的版本,那么您可以去别的地方寻找答案。

一、问题重现

1、查询Hadoop版本

        使用管理账号登录到系统,使用hadoop version可以查看版本。

[root@master bin]# hadoop version

         可以看到输出如下:

Hadoop 3.1.3
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r ba631c436b806728f8ec2f54ab1e289526c90579
Compiled by ztang on 2019-09-12T02:47Z
Compiled with protoc 2.5.0
From source with checksum ec785077c385118ac91aadde5ec9799
This command was run using /software/hadoop/share/hadoop/common/hadoop-common-3.1.3.jar

 2、集群启动Hadoop

         登录master节点,进入hadoop的sbin目录,启动集群,参考命令如下:

[root@master bin]# cd /software/hadoop/sbin
[root@master sbin]# ./start-all.sh

        这里请注意,hadoop的安装目录,请根据实际目录进行修改,否则会影响运行。通常以上命令后会有以下输出。输出以下姓名就表示已经完成了hadoop的启动。

Starting namenodes on [master]
上一次登录:三 12月 13 11:31:20 CST 2023pts/0 上
Starting datanodes
上一次登录:三 12月 13 11:31:39 CST 2023pts/0 上
Starting secondary namenodes [master]
上一次登录:三 12月 13 11:31:41 CST 2023pts/0 上
Starting resourcemanager
上一次登录:三 12月 13 11:31:44 CST 2023pts/0 上
Starting nodemanagers
上一次登录:三 12月 13 11:31:48 CST 2023pts/0 上

        如果是正常的集群启动,那么master、slave1、slave2三台机器上都会有DataNode进程。可以分别在三台机器上进行进程查询,这里使用jps命令。

        Master进程如下:

[root@master sbin]# jps
9351 NameNode
1608 QuorumPeerMain
10537 Jps
9755 SecondaryNameNode
10027 ResourceManager
10365 NodeManager
9535 DataNode

        我们可以发现,Master上,NodeManager、NameNode、DataNode服务都是正常的。然后登录到slave1和slave2两台服务器上,同样使用jps命令查看机器进程。

slave1上进程
[root@slave1 hadoop]# jps
4113 Jps
1605 QuorumPeerMain

        同样的,在slave2上也是一样的问题,从节点的DataNode并没有启动,这样子相当于集群启动失败。此时只有master一个节点进行对外提供服务,显然这不是很妙。

二、问题分析

        其实出现这个问题的原因也比较简单,还是集群设置的问题。在进行大数据各个组件的学习时,一定要注意版本,不同的版本配置的方式不一样,有可能配置目录或者配置文件修改修改了。因此最好是按照官网的说明进行配置最好。本文描述的问题,是因为在Hadoop3.x版本中,集群配置的设置文件是workers而不是slaves,slaves应该是之前的版本的集群配置。

三、Hadoop3.x的集群配置

1、停止Hadoop服务

        执行以下命令,停止Hadoop服务。

[root@master sbin]# ./stop-all.sh
Stopping namenodes on [master]
上一次登录:三 12月 13 11:08:17 CST 2023pts/0 上
Stopping datanodes
上一次登录:三 12月 13 11:31:13 CST 2023pts/0 上
Stopping secondary namenodes [master]
上一次登录:三 12月 13 11:31:14 CST 2023pts/0 上
Stopping nodemanagers
上一次登录:三 12月 13 11:31:16 CST 2023pts/0 上
Stopping resourcemanager
上一次登录:三 12月 13 11:31:18 CST 2023pts/0 上

2、配置workers

capacity-scheduler.xml  hadoop-env.cmd              hadoop-user-functions.sh.example  httpfs-signature.secret  kms-log4j.properties  mapred-env.sh               slaves                         workers                       yarn-site.xml
configuration.xsl       hadoop-env.sh               hdfs-site.xml                     httpfs-site.xml          kms-site.xml          mapred-queues.xml.template  ssl-client.xml.example         yarn-env.cmd
container-executor.cfg  hadoop-metrics2.properties  httpfs-env.sh                     kms-acls.xml             log4j.properties      mapred-site.xml             ssl-server.xml.example         yarn-env.sh
core-site.xml           hadoop-policy.xml           httpfs-log4j.properties           kms-env.sh               mapred-env.cmd        shellprofile.d              user_ec_policies.xml.template  yarnservice-log4j.properties

        首先使用cat命令查看默认的配置,

cat workers

        可以看到workers的内容如下:

localhost

        即默认的情况下,Hadoop在本机启动,不加入分布式集群,因此无法随着集群的启动而启动。所以我们要把机器加入到集群环境中,在workers文件中,将master、slave1、slave2追加进去。

Vi workers
master
slave1
slave2

        配置完成后,可以使用scp命令复制到slave1和slave2节点,也可以使用同样的方式进行修改。修改完成后保存相应配置。最后到master的机器上,重启集群。

[root@master sbin]# ./start-all.sh
Starting namenodes on [master]
上一次登录:三 12月 13 11:31:20 CST 2023pts/0 上
Starting datanodes
上一次登录:三 12月 13 11:31:39 CST 2023pts/0 上
Starting secondary namenodes [master]
上一次登录:三 12月 13 11:31:41 CST 2023pts/0 上
Starting resourcemanager
上一次登录:三 12月 13 11:31:44 CST 2023pts/0 上
Starting nodemanagers
上一次登录:三 12月 13 11:31:48 CST 2023pts/0 上

3、从节点检测

        在master节点上运行start-all.sh后,分别在slave1、slave2两台机器上进行进程检测。执行命令如下:

[root@slave1 hadoop]# jps
3841 DataNode
4145 Jps
1605 QuorumPeerMain
3960 NodeManager

        我们发现,DataNode和NodeManager进程都已经正常启动,slave2也是一样的。由此,Hadoop3.x集群服务完全启动。

4、WebUI监控

        除了使用命令行的方式监控hadoop,其内部也提供了webui的监控方式。

总结

         以上就是本文的主要内容,本文描述的是在Hadoop3.1.3的完全分布式环境下,slave节点的DataNode节点未能成功启动的问题以及通过修改配置来解决的办法,希望能帮助到遇到这个问题的朋友。行文仓促,有很多不当之处,请朋友们批评指正。

这篇关于Hadoop3.x完全分布式模式下slaveDataNode节点未启动调整的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/709613

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

springboot3打包成war包,用tomcat8启动

1、在pom中,将打包类型改为war <packaging>war</packaging> 2、pom中排除SpringBoot内置的Tomcat容器并添加Tomcat依赖,用于编译和测试,         *依赖时一定设置 scope 为 provided (相当于 tomcat 依赖只在本地运行和测试的时候有效,         打包的时候会排除这个依赖)<scope>provided

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

HDU 2159 二维完全背包

FATE 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍耐度降到0或者0以下时,xhd就不会玩这游戏。xhd还说了他最多只杀s只怪。请问他能

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

zoj 1721 判断2条线段(完全)相交

给出起点,终点,与一些障碍线段。 求起点到终点的最短路。 枚举2点的距离,然后最短路。 2点可达条件:没有线段与这2点所构成的线段(完全)相交。 const double eps = 1e-8 ;double add(double x , double y){if(fabs(x+y) < eps*(fabs(x) + fabs(y))) return 0 ;return x + y ;