hadoop集群搭建好后Datenode诡异的再master机器上开启,没有在slave机器上开启

我是一个master,3个slave
问题是这样的:
hadoop集群搭建好后在master机器上start-all.sh,结果datanode也在此机器启动没在slaves机器启动
我用的hadoop3.1+jdk1.8,之前照书上搭建的hadoop2.6+openjdk10可以搭建可以
正常启动,namenode等在master上启动,datanode等在slave上启动,现在换了新
版本就不行了,整了一天。。。

目前条件:各个机器能相互ping,也能ssh
都能正常上网
如果一台机器既做master又做slave,可以正常开启50070(当然hadoop3后改成了9870)网页,一切正常

在master上开启start-all.sh时:
WARNING: Attempting to start all Apache Hadoop daemons as hduser in 10 seconds.
WARNING: This is not a recommended production deployment configuration.
WARNING: Use CTRL-C to abort.
Starting namenodes on [emaster]
Starting datanodes
Starting secondary namenodes [emaster]
2018-05-04 22:39:37,858 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting resourcemanager
Starting nodemanagers

根本没有去找slave
jps后发现:
3233 SecondaryNameNode
3492 ResourceManager
2836 NameNode
3653 NodeManager
3973 Jps
3003 DataNode
全都在master上启动了,slave机器什么也没启动

查看datanode日志,发现它开了3次master的datanode(我的master名字是emaster):(展示部分)
STARTUP_MSG: Starting DataNode
STARTUP_MSG: host = emaster/192.168.56.100
STARTUP_MSG: args = []
STARTUP_MSG: version = 3.1.0

而且每遍有报错:

 java.io.EOFException: End of File Exception between local host is: "emaster/192.168.56.100"; destination host is: "emaster":9000; : java.io.EOFException; For more details see:  http://wiki.apache.org/hadoop/EOFException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
    at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:831)
    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:789)
    at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1495)
    at org.apache.hadoop.ipc.Client.call(Client.java:1437)
    at org.apache.hadoop.ipc.Client.call(Client.java:1347)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:228)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:116)
    at com.sun.proxy.$Proxy20.sendHeartbeat(Unknown Source)
    at org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolClientSideTranslatorPB.sendHeartbeat(DatanodeProtocolClientSideTranslatorPB.java:166)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.sendHeartBeat(BPServiceActor.java:514)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.offerService(BPServiceActor.java:645)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:841)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.EOFException
    at java.io.DataInputStream.readInt(DataInputStream.java:392)
    at org.apache.hadoop.ipc.Client$IpcStreams.readResponse(Client.java:1796)
    at org.apache.hadoop.ipc.Client$Connection.receiveRpcResponse(Client.java:1165)
    at org.apache.hadoop.ipc.Client$Connection.run(Client.java:1061)
2018-05-04 21:49:43,320 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: RECEIVED SIGNAL 15: SIGTERM

我的猜测,我设置了3台slave,却不知道哪里配置出了问题,使得master不去开启
slave的datanode,却开启自己的datanode,但我实在找不出哪里出错了,什么
masters文件,slaves文件都配了啊,而且各个机器间可以ping通,有大神可以指点下本小白吗,真的万分感谢!!!!

2

4个回答

Hadoop3要用workers代替之前版本的slaves。我配的时候也在这里被坑了

-1
michaelbournelisihao
michaelbournelisihao 回复CSDN_Black: 好的,没问题
10 个月之前 回复
CSDN_Black
csdn_black 我是新手直接被坑哭。。。。大神采取你了以后有问题还会问问你的,多谢啦
大约一年之前 回复
1
CSDN_Black
csdn_black 报错都不一样呢,这个方法我试了根本不行,我的slave主机datanode日志根本不更新内容,仿佛跟master没连上。。。
大约一年之前 回复

搭建了一个小的实验集群,一共4台机器,一台namenode,三台datenode。执行start-all,发现在namenode上没有报任何错误,但是启动后直接显示datenode数量为0。
到datenode上查看日志,发现有这么个错误: ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs。百度后发现出现这个问题一般是datenode中的数据文件出了问题。这时我想到自己的几台datenode是直接由namenode中的系统复制过来,而我并没有设置hadoop.tmp.dir参数,也就是默认存储在/tmp目录中,这就跟直接namenode单机时存储的临时文件冲突了才造成了以上问题。解决方法也很简单,将tmp文件夹中的过期临时文件清楚,或者另外设置hadoop.tmp.dir参数指定新的临时文件夹。这里我选择了后者,因为我发现/tmp目录下的文件经常会受到损坏。
解决了上面这个错误后,datenode终于有一个了,但是我有三台datenode,应该显示3个datenode啊!接着看另外两台的日志,发现里面有大量无法连接到namenode的错误,因为我设置namenode时用的是主机名而非ip地址,看来应该是因为hosts文件设置错误。打开/etc/hosts文件,果然namenode的主机名对应地址误设为了127.0.0.1,改过来之后,再次重新格式化hdfs,start-all,终于能看到3个datenode了,真不容易。
总结一下,如果namenode能够成功启动,但是datenode显示为0,那么问题一般是出在datenode上。这时候我们可以前往datenode机器上查看/var/log/hadoop下的日志文件,里边应该会有一些错误提示,然后根据错误提示就能大体知道问题的所在。可能发生的问题无外乎下边几种:
1、datenode机器上的hadoop后台无法启动。出现这个问题的原因很多样,比如笔者这次就遇上了tmp文件夹中存在失效文件的问题。
2、datenode无法与namenode通信。出现这种问题一般都是网络设置有误,仔细排查网络设置后应该就能找到解决办法。如果datenode机器上的问题排除,那么出现这个错误也有可能是因为namenode上设置的监听地址有误造成的,可以在namenode上运行netstat命令看一看hadoop后台有没有在预期地址:端口上监听。

0
CSDN_Black
csdn_black 报错都不一样呢,这个方法我试了根本不行,我的slave主机datanode日志根本不更新内容,仿佛跟master没连上。。。
大约一年之前 回复

搞了一早上终于成功了,hadoop2好像是在/etc/hadoop设置masters 和slaves 现在hadoop3是要设置masters 和workers。
真的好坑。。。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Hadoop集群开启部分slave的datanode未开启
cd /usr/local/hadoop/etc/hadoop/ vim hdfs-site.xml 可以看到,下面的两个目录:/usr/local/hadoop/tmp/dfs/name和/usr/local/hadoop/tmp/dfs/data ,(最好建在其他地方): <configuration>     <property>         <na...
hadoop集群搭建datenode为0问题的解决
搭建了一个小的实验集群,一共4台机器,一台namenode,三台datenode。执行start-all,发现在namenode上没有报任何错误,但是启动后直接显示datenode数量为0。     到datenode上查看日志,发现有这么个错误: ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException
通过克隆虚拟机搭建hadoop集群,开启hadoop后,live node 只出现一个,随机是slave1或slave2
问题:克隆虚拟机,配置hadoop完全分布式。每台机器都配置完静态ip,主机名,主机和ip映射。开启hadoop集群,(start-dfs.sh),master主机上namenode和secondarynamenode,slave1主机上的datanode,slave2主机上的slave2主机上的datanode都开启了,但是在master:50070网址上live node 只有一个,这个nod...
Hadoop Master/Slave部署遇到的问题与解决方法
本人学习Hadoop,尝试使用两台物流
Hadoop Yarn 集群 从节点的data node没有启动成功
jps发现主节点的datanode启动成功,但是次节点的datanode没有启动成功 发现log如下: the: ssh: connect to host the port 22: Connection timed out OpenJDK: ssh: connect to host openjdk port 22: Connection timed out tizen@datanode's
hadoop启动时,DataNode没有启动的解决办法
这样的情况一般有2种可能: 1、datanode启动失败。可以像楼上说的倒datanode机器上执行jps命令查看datanode进程是否已经启动。如果jps不能正常显示,可以使用ps -ax | grep hadoop 2、datanode进程已经启动,仍在运行。出现这种情况是由于namenode和datanode中保存的namespaceID不同所引起的。知道的可能情况是启动过集群后,又重新
关于自搭建hadoop出现slave服务器没出现DataNode节点的解决方法
首先先看正确hadoop下的master,slave服务器节点情况 异常情况:slave服务器未出现DataNode节点 问题描述: 一般是格式化hdfs出现的情况,例如hadoop namenode -format或 hdfs namenode -format 强制性多次初始化数据,导致 VERSION里面的nameid,clusterID,blockpoolID变化,导致m...
Hadoop集群之Hive安装配置
Hadoop集群之Hive安装配置转自:Hadoop集群之Hive安装配置Hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据。其在Hadoop的架构体系中承担了一个SQL解析的过程,它提供了对外的入口来获取用户的指令然后对指令进行分析,解析出一个MapReduce程序组成可执行计划,并按照该计划生成对应的MapReduc
如何解决Hadoop启动时Datanote启动失败!
datanote节点启动失败:将每个slave节点的目录下找到/hadoopdata/dfs/data(可能路径不一样,但文件名是一样的),如果找不到使用   find  /  -name 'data'  直接在系统中搜索,找到后使用rm  -rf data   将其删除,然后start-all.sh  重启。在浏览器中输入http://master:50070 查看datanote的状态。
datanode 没有启动的原因
datanode 没有启动的原因是slaves文件未指定。
Jenkins Master,Slave 使用问题汇总及解决方案
Jenkins Master/slave 使用问题汇总及解决方案 1. 设置job在slave机器上执行 (1)在job的Configure中,勾选“Restrict where this project can be run”,在Label Expression中,输入标签,如“jenkinsDemo2selenium2-slave” (2)在slave的Configure中,在“Labe
hadoop datanode部分启动不了
整体组织为一个master,三个slave master:namenode ,jobtracker,secondarynamenode slave:datanode,tasktracker 在master上执行start-all.sh在master:50070上可以看到只有两个datanode存活 然后在没启动成功的datanode上单独启动,再在master:50070上发现新启动的上去
Hadoop集群配置之后浏览器无法访问问题
Hadoop集群配置问题
DateNode没有启动解决办法
查看日志如下: 2017-07-09 08:45:52,209 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: registered UNIX signal handlers for [TERM, HUP, INT] 2017-07-09 08:45:52,577 WARN org.apache.hadoop.util.Nativ
hadoop 启动后slave1中的datanode没有启动
问题 问题:hadoop 启动后slave1中的datanode没有启动,但slave2中的datanode启动,而且查看slave1下的tmp文件夹(~/hadoop-2.8.3/tmp)并没有dfs文件夹。 方法 方法一 在网上找了一些方法,都说要删掉上面的tmp文件夹,使clusterID保持一致,但我的slave1中压根没有这样的文件夹啊。 (hadoop 常见错误) ...
hadoop集群启动之后dataNode节点没有启动
启动Hadoop集群之后slave机器的dataNode节点没有启动 master机器的nameNode节点启动了 1、在集群/usr/local/src/hadoop/bin目录下./start-all.sh暂停所有服务 2、将/usr/local/src/hadoop/目录下的 logs、tmp文件夹删除(DataNode存放数据块的位置) 然后重新建立tmp  logs文件夹 3、重新
slave中datenode不能显示
启动sbin/start-dfs.sh后,输入jps,master可以显示namenode,输入jps,slave中datenode不能显示时,把namanode和datenode下的logs,dfs,tmp文件都删除,然后重新格式化再启动(sbin/start-dfs.sh)。
spark的slave上没有datanode 的解决办法
问题描述: 通过jps命令 发现 两个slave上都没有datanode,而master上正常 找到namenode和datanode各自的VERSION,发现master下的更新日期为1月27,slave下为12月25 分别查看master和slave日志发现果然有warn 解决办法: 1、停止服务,停止spark的和hadoop的,有stop-all.sh 2、找到哪台的s
执行start-dfs.sh后,datenode没有启动的解决办法
执行start-dfs.sh后,datenode没有启动,很大一部分原因是因为在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时主节点namenode的clusterID会重新生成,而从节点datanode的clusterID 保持不变导致的。 解决方案(一): 在hdfs-site.xml文件下找到这两个文...
启动hadoop集群DataNode不显示,DataNode显示NodeManager不显示
启动hadoop集群后,输入jps你发现主节点显示的是正常的 而在从节点上却没有显示DataNode节点 如果你的配置都是正确的话,很可能就是你格式化文件系统的时候格式化了多次 解决方法:删除集群数据存储目录,在新建一个一样的文件夹,然后在格式化一次就正常了 在配置正确的情况下,如果只有从节点的NodeManager不显示 主节点的终端输入 vi slav
Hadoop集群搭建过程中DataNode与TaskTracker节点的问题
在Hadoop集群搭建的过程中,我们总会发现在slaves文件中的主机名既是DataNode也是TaskTracker,这是为什么呢? 今天在黄宜华《深入理解大数据》一书中找到了答案:96页 原因: 为了实现Hadoop系统设计中 本地化计算 的原则,数据存储节点DataNode与计算节点TaskTracker将合并设置,让每个从节点同时运行作为DataNode和TaskTrack
[Hadoop集群模式安装与配置全过程]红帽子RatHat6下hadoop集群模式安装(3个节点,master,slave1,slave2)
红帽子RatHat6下hadoop集群模式安装(3个节点,master,slave1,slave2)一、学习目标:使用红帽子RatHat6在虚拟机上搭建hadoop集群,包含3个节点,体验集群分布式。二、软件需求:三台虚拟机(这里使用VMware Workstation)、RatHat6版本的安装包三、实验前提:每台PC机已装有RatHat6系统,一台机命名为master作为namenode,另两...
数据库集群时的master和slave同步相关方法
问: master还在运行中,如何在不停止它的情况下配置slave?答: 需要设计几个选项参数。如果已经有了master的备份并且记录了数据快照二进制日志文件名以及偏移位置(运行SHOW MASTER STATUS查看结果),执行以下步骤:确定slave指定了一个唯一的服务器编号。 在slave上执行如下语句,把一些选项值改成实际值:mysql> CHANG
在一台linux机器上启动多个redis实例:学习redis的master-slave功能
linux机器上安装redis是非常容易的,这里不做介绍了。因为要学习主从复制功能,而我手上又只有一台机器,所以就需要在一台机器上启动多个redis实例。我们需要将默认的redis.conf文件复制一份,然后修改一下对应的设置就可以了,保证多个redis实例不出现共享数据就可以了。从服务器可以在主从服务器之间的连接断开时进行自动重连, 在 Redis 2.8 版本之前, 断线之后重连的从服务器总要执行一次完整重同步(full resynchronization)操作, 但是从 Redis 2.8 版本开始,
ubuntu下安装hadoop3.0.0,slave不能连接master,master可以连接slave问题解决
问题描述:在web网页中浏览namenode,查看不到datanode节点,hadoop/logs中的日志报错如下2018-03-25 12:28:11,965 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: master/192.168.XX.XX:9000经过一番查找,终于找...
Hadoop集群配置ssh时,slave无法连接到master
出现的问题:在使用ssh配置master和slaves免秘钥登录时,发现master能免秘钥连接slave,而slave无法免秘钥连接master。    首先我建立hadoop集群的时候,是自己建了用户组spark。出现上述原因是我给master机器的/home/spark的权限为777。将权限改为700就好了,具体原因不知道,就是linux的用户权限不是越大越好的。 命令:   chmod
hadoop集群之Datenode无法启动解决办法
hadoop集群之Datenode无法启动解决办法  我们在启动hadoop集群的时候,通过jps查看进程,发现namenode RM和Secondary NameNode都有,但datanode没有启动,然后 datanode的启动日志如下看看划线部分:2018-06-04 18:26:58,317 WARN org.apache.hadoop.hdfs.server.common.Storag...
Redis之两台主机部署:一台master一台slave
第一步:两个电脑都安装Redis-x64-3.2.100.zip文件  如何放在C:\redis中解压第二部(在master):找到本机ip(cmd ipconfig):10.10.2.80,修改redis.windows-service.conf文件:把bind 127.0.0.1改为bind 10.10.2.80,其他不变,另外在C:\redis运行cmd:redis-server --ser...
Jmeter远程执行,slave机器显示调用成功,但是master机器没有返回测试结果解决
Jmeter远程执行踩坑记录: 1、按照教程修改jmeter.properties文件中 remote_hosts=127.0.0.1 为 remote_hosts:192.168.5.158:1099,192.168.5.160:1099 其中192.168.5.160为master机器内网IP 2、修改slave机器jmeter.properties文件中remote_hosts=127...
集群启动使用Hadoop,运行后没有NameNode节点
集群启动Hadoop后,运行后有SecondNameNode和dataNode,但是没有NameNode节点?解决方法:1、先运行stop-all.sh 2、运行hadoop namenode -format 3、运行start-all.sh
在windows环境中,redis的安装、启动步骤(多实例,master-slave)
在window环境中创建多个实例 1、编辑redis.windows.conf文件,将端口6379改为6380,并将文件名改为redis.windows6380.conf 2、安装服务,指定端口和服务名redis-server --service-install redis.windows6380.conf --service-name RedisServer6380 --port 6380
[Jenkins]关于slave链接不上master的补充说明
在mac机器上配置master与slave,slave总是报链接不上master,然后清除了.jenkins目录后报没有操作权限。 解决办法先看我的文章,[jenkins]Can’t connect to window server – not enough permissions,看过后,在slave启动的时候加上一个参数,例如:nohup java  -Djava.awt.headless
hadoop 集群开启之后datanode没有启动
datanode没有启动 将hadoop配置文件修改后,重新格式化了hadoop集群,即 hadoop name -format但是此时发现slave节点没有启动datanode 上网查找解决方法,最后终于解决了,解决方法如下: 1. 先执行stop-all.sh暂停所有服务 2. 将所有Salve节点上的tmp(即 hdfs-site.xml 中指定的 dfs.data.dir 文件夹
Jenkins 部署Slave机器时遇到的坑
错误现象:运行 slave-agent.jnlp 时弹出MessageBox(会间隔若干秒的连续弹出5次), 错误提示 "java.lang.exception: the server rejected the connect"当时环境: slave 机器为 windows平台启动方式为 Luanch agent via Java Web Startslave 机器上已经预先部署了一套jenkin...
Hadoop集群安装,jps成功,但是没有datanode
hadoop集群安装,jps显示成功,但是查询不到子节点,如下图 可能有以下两种情况: (1):/etc/hosts中Master对应了127.0.1.1,将其注释掉 (2):由于之前做了伪分布式,core-site.xml中还在使用localhost,改正为Master
Flume部署及配置
Flume Agent介绍:          Flume Agent 连接: Flume 聚合: Flume 多路: Flume Load Balance 用户行为日志采集 Nginx 日志采集 首先一定要明确 flume一般企业搭建是两层:第一层是采集层、第一层是聚合层。 比如这样的架构。 具体,怎么部署呢? 第一种情况(flume只部署在一台机
【Spark------在master节点开启worker进程——可将master当做slave节点来使用】
1. 进入master节点:spark2/conf 然后:vi slaves 对其他的slave节点进行同样的操作。 2. 开启spakr集群用spark-submit命令提交jar: 3. jar成功提交后显示:开启的主节点和从节点: ...
在同一节点启动多个spark master(worker)
在已经启动spark master(worker)的机器上再启动master,提示错误:org.apache.spark.deploy.worker.Worker running as process XXXXX. Stop it first. 根据抛出错误的源码,可得解决方法: export SPARK_IDENT_STRING=foo (默认为用户名, woker节点同样需要设置才可匹配) ...
启动HBase后在WEBUI看只有一个节点启动,其它节点未启动,抛出org.apache.hadoop.hbase.ClockOutOfSyncException异常
安装配置完Hbase后,先启动zookeeper,然后通过命令start-hbase.sh启动Hbase,发现只有一个节点启动了,查看其启动日志,可以看到它抛出了ClockOutOfSyncException异常,重点是Time difference of 5134210ms > max allowed of 30000ms这句话,具体的异常如下所示: 2018-12-31 22:06:4...
笔记:1、Hadoop集群配置中的坑-【slave节点上的datanode启动失败】
1、slave节点上的datanode启动失败,有一种原因是没有配置etc/hosts观察slave节点的 logs/hadoop-root-datanode-hadoop2.log(备注:hadoop2是我的slave主机名)出现如下错误代码:ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed ...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 机器学习班 大数据平台机器与深度学习