[Hadoop] 启动HDFS缺少服务
启动Hadoop后使用JPS命令查看进程,发现只有NameNode和NodeManger。
原因:格式化两次namenode。导致namenode和datanode中的CID不一致。
$ hadoop namenode -format
解决方法:修改namenode和datanode的CID为同一个或者清除文件夹(先停止Hadoop所有服务)。
上述方法执行完没有结果则查看端口号是否被占用。
第一种
查看Hadoop下的配置文件core-site.xml内容:
$ vim /opt/hadoop2.6.5/etc/hadoop/core-site.xml
<property>
<name>hadoop.tmp.dir</name>
<value>/home/huasheng/app/hadoop-2.6.5/tmp/</value>
</property>
发现临时目录在/home/huasheng/app/hadoop-2.6.5/tmp/ 下
$ cd /home/huasheng/app/hadoop-2.6.5/tmp/dfs
$ ls
data name namesecondary #name: namenode的信息
#data: datanode的信息 #查看name下的VERSION信息
$ cat name/current/VERSION #Fri Mar 15 10:12:21 CST 2019
namespaceID=596602248
clusterID=CID-b604bc78-8f8a-4cf6-a02b-3ac257ebef93
cTime=0
storageType=NAME_NODE
blockpoolID=BP-139131966-192.168.142.129-1552615941181
layoutVersion=-60 #修改data下的clusterID
$ vim data/current/VERSION #Fri Mar 15 10:37:33 CST 2019
storageID=DS-a9a026d4-3833-4086-91c4-17e68c157add
clusterID=CID-b604bc78-8f8a-4cf6-a02b-3ac257ebef93
cTime=0
datanodeUuid=b3848163-9ee4-4192-bc58-c96184c3dddd
storageType=DATA_NODE
layoutVersion=-56
启动Hadoop即可。
第二种
直接删除临时目录下文件,格式化namenode节点。
$ rm -rf /hadoop-2.6.5/tmp/
$ hadoop namenode -format
启动Hadoop即可。
但是我在测试的时候使用上述方法之后仍然没有解决。
#打开日志文件
$ cd /hadoop-2.6.5/logs/ #日志信息使用 类型-用户名-服务-hostname.log 的形式存储。比如datanode节点:
hadoop-huasheng-datanode-huas.log
查看后发现如下一段:
java.net.BindException: Port in use: 0.0.0.0:50090
at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:892)
at org.apache.hadoop.http.HttpServer2.start(HttpServer2.java:828)
at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.initialize(SecondaryNameNode.java:276)
at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.<init>(SecondaryNameNode.java:192)
at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.main(SecondaryNameNode.java:671)
Caused by: java.net.BindException: 地址已在使用
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216)
at org.apache.hadoop.http.HttpServer2.openListeners(HttpServer2.java:887)
... 4 more
查看端口是否被占用,如果被占用则杀掉对应进程即可
$ netstat -anp | grep 50090
[Hadoop] 启动HDFS缺少服务的更多相关文章
- Hadoop启动HDFS时DataNode未启动
在用$HADOOP_HOME/sbin/start-dfs.sh启动HDFS时发现只有NameNode和SecondaryNameNode启动,没有DataNode. 查看logs下的DataNode ...
- hadoop启动中缺少datanode
原文链接地址:https://blog.csdn.net/islotus/article/details/78357857 本人测试有效: 首先删除hadoop下的dfs文件(注:本文件不一定在had ...
- Hadoop框架:单服务下伪分布式集群搭建
本文源码:GitHub·点这里 || GitEE·点这里 一.基础环境 1.环境版本 环境:centos7 hadoop版本:2.7.2 jdk版本:1.8 2.Hadoop目录结构 bin目录:存放 ...
- 启动HDFS之后一直处于安全模式org.apache.hadoop.hdfs.server.namenode.SafeModeException: Log not rolled. Name node is in safe mode.
一.现象 三台机器 crxy99,crxy98,crxy97(crxy99是NameNode+DataNode,crxy98和crxy97是DataNode) 按正常命令启动HDFS之后,HDFS一直 ...
- Hadoop 系列文章(二) Hadoop配置部署启动HDFS及本地模式运行MapReduce
接着上一篇文章,继续我们 hadoop 的入门案例. 1. 修改 core-site.xml 文件 [bamboo@hadoop-senior hadoop-2.5.0]$ vim etc/hadoo ...
- 格式化hdfs后,hadoop集群启动hdfs,namenode启动成功,datanode未启动
集群格式化hdfs后,在主节点运行启动hdfs后,发现namenode启动了,而datanode没有启动,在其他节点上jps后没有datanode进程!原因: 当我们使用hdfs namenode - ...
- Hadoop格式化HDFS报错java.net.UnknownHostException: localhost.localdomain: localhost.localdomain
异常描述: 在对HDFS格式化,执行hadoop namenode -format命令时,出现未知的主机名的问题,异常信息如下所示: [shirdrn@localhost bin]$ hadoop n ...
- Hadoop入门--HDFS(单节点)配置和部署 (一)
一 配置SSH 下载ssh服务端和客户端 sudo apt-get install openssh-server openssh-client 验证是否安装成功 ssh username@192.16 ...
- Hadoop之HDFS及NameNode单点故障解决方案
Hadoop之HDFS 版权声明:本文为yunshuxueyuan原创文章.如需转载请标明出处: http://www.cnblogs.com/sxt-zkys/QQ技术交流群:299142667 H ...
随机推荐
- 创建springboot项目
springboot 就是为简化spring的创建 配置 部署 运行 而创建的. springboot 直接引入依赖jar包 就行了,无须配置xml 一 创建springboot 1.创建一个mave ...
- Redis 知识整理
1. 什么是Redis Redis是开源的.基于内存的键值对数据库. 2. Redis 的基本操作 set key value => mset, setbit, hset get key =&g ...
- Android测试(二)——adb常用命令
连接设备: 安装应用包apk文件: adb install apk文件 卸载应用: adb uninstall 包名 将设备中的文件放到本地: adb pull 设备文件目录 本地文件目录 将本地文件 ...
- C语言 九九乘法表
#include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { int i,j,k; ...
- sql语句进行写数据库时,字符串含有'的处理方式
如果字符串含有',sql语句在执行insert 或update时会发生错误,应将'替换成'',语句如下: land.Address = land.Address.Trim().Replace(&quo ...
- [luogu P3953] [noip2017 d1t3] 逛公园
[luogu P3953] [noip2017 d1t3] 逛公园 题目描述 策策同学特别喜欢逛公园.公园可以看成一张$N$个点$M$条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,$N ...
- js的一些常用方法
1.判断是否为一个空对象 let a={}; console.log(Object.keys(arr).length==0);//true 2.从数组中取出重复的数据 var arr = [" ...
- webkit之滚动条美化
由于公司的产品改用webkit内核,在写公共css的时候,不想使用插件模拟,顺便网上查阅了下css3的滚动条美化. 首先,先上一副示意图. 从网络上盗图的(来源 http://zhangyaochun ...
- mysql语句将日期转换为时间戳的方法
mysql将日期转换为时间戳更新数据库: update test set creattime=UNIX_TIMESTAMP('2018-04-19') 替换字段为当前日期: update test s ...
- 记一次腾讯云不能连接DNS服务器的问题排查过程
由于腾讯云在使用过程中需要用到yum,在yum安装软件的时候报错不能连接到源的网站.当时经过排查发现域名没有解析.有可能是DNS服务器问题或者我的腾讯云DNS配置出现问题. 所以我查看了/etc/re ...