hadoop集群故障排除
故障一:某个datanode节点无法启动
我是以用户名centos安装和搭建了一个测试用的hadoop集群环境,也配置好了有关的权限,所有者、所属组都配成centos:centos
【故障现象】
名称节点的3个进程都起来了,但是其中一个数据节点的DataNode进程没启动,就是说在该数据节点上通过jps没查到有关进程。
【排查过程】
登录此故障节点(主机名为s203)的日志存放目录$ cd $HADOOP_HOME/logs/
查看日志hadoop-centos-datanode-s203.log,发现有一行FATAL级别的错误:
FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned)
还有一行:
java.io.IOException: Incompatible clusterIDs in /tmp/hadoop-centos/dfs/data: namenode clusterID = CID-8ba03cf7-a71d-4439-8818-c0a65f47e7aa; datanode clusterID = CID-7d9b5e26-d96e-4596-b42e-5810aaacedf8
从字面上来看,报错信息大意是datanode所属的集群ID和namenodeID不一致,。这就导致了该data node无法加入到同一个集群里面去(每个hadoop集群的ID不能有两个),所以此数据节点启动失败。
【解决办法】
有两个,一个是删除集群所有主机信息后,格式化名称节点后再启动集群。这个办法会丢失我之前已有的数据,这不是我想要的。
所以我这里采用第二种办法:把无法启动的数据节点所属的clusterID和集群的cluesterID配成一样的。
那么先找到名称节点的集群ID,即clusterID,clusterID存在于VERSION文件中,而VERSION文件默认的话在HADOOP_FILE_SYSTEM/namenode/current/目录下
1,找到VERSION文件后找到clusterID的值,拷贝下来。
2,然后登入故障节点、找到主机里的VERSION文件,编辑该文件,用刚才的名称节点的clusterID值替换掉此data node的clusterID值,保存退出。
3,在此数据节点执行命令 sh $HADOOP_HOME/sbin/hadoop-daemon.sh start datanode
4,在本机查看jps后就发现DataNode进程启动了。退出此节点后,打开浏览器输入 IP:50070 即可看到Datanodes页面出现了刚才启动的数据节点。
故障二:在集群上运行M-R作业后,没有输出想要的结果
[centos@s201 ~]$ hadoop jar TONY-1.0-SNAPSHOT.jar pckmar11.WCapp /user/centos/input /user/centos/output
[centos@s201 ~]$ hadoop fs -ls -R / | grep -v tmp
drwxr-xr-x - centos supergroup 0 2017-02-28 21:40 /user
drwxr-xr-x - centos supergroup 0 2017-02-28 21:41 /user/centos
drwxr-xr-x - centos supergroup 0 2017-02-28 21:45 /user/centos/input
-rw-r--r-- 3 centos supergroup 112 2017-02-28 21:45 /user/centos/input/mar11.txt
在user/centos下没有生成out目录。于是通过浏览器检查作业日志。
浏览器输入http://clusterIP:8088可以在页面看到All Applications
在Scheduler Metrics的FinalStatus中,可以看到FAILED的作业ID,点进此ID后,查看到Diagnostics诊断信息,摘出来如下:
ERROR org.apache.hadoop.yarn.server.nodemanager.containermanager.ContainerManagerImpl: Unauthorized request to start container.
This token is expired. current time is 1489186612865 found 1488290898107
Note: System times on machines may be out of sync. Check system time and time zones.
可以推断出,是因为节点的时间不一致导致的任务调度失败。所以解决办法是把各个计算节点(也就是datanode)和namenode节点的系统时间同步。
同步系统时间的方法有两种:第一种方式,同时批量修改各个节点的时间,可以尝试shell脚本自动运行命令:
date -s “yyyymmdd HH:SS”但是要有执行此命令的权限;
第二种方式,使用ntpdate指定提供时间同步的服务器,我这里使用的北京邮电大学的:
sudo ntpdate s2c.time.edu.cn
执行完后,确认一下每个节点的时间是一致的。
重新执行M-R作业,成功:
[centos@s201 ~]$ hadoop fs -ls -R / | grep -v tmp
drwxr-xr-x - centos supergroup 0 2017-02-28 21:40 /user
drwxr-xr-x - centos supergroup 0 2017-03-11 18:47 /user/centos
drwxr-xr-x - centos supergroup 0 2017-02-28 21:45 /user/centos/input
-rw-r--r-- 3 centos supergroup 112 2017-02-28 21:45 /user/centos/input/mar11.txt
drwxr-xr-x - centos supergroup 0 2017-03-11 18:47 /user/centos/output
-rw-r--r-- 3 centos supergroup 0 2017-03-11 18:47 /user/centos/output/_SUCCESS
-rw-r--r-- 3 centos supergroup 64 2017-03-11 18:47 /user/centos/output/part-r-00000
starting resourcemanager, logging to /soft/hadoop-2.7.3/logs/yarn-centos-resourcemanager-h201.out
[centos@h201 hadoop]$ jps
9057 NameNode
9897 ResourceManager
9932 Jps
[centos@h201 hadoop]$ ssh h205 yarn-daemon.sh start resourcemanager
bash: yarn-daemon.sh: command not found
[centos@h201 hadoop]$ ssh h205 # ResourceManager不会自动启动,须登入第二台RM服务器启动该进程
Last login: Thu Apr 6 23:06:28 2017 from h201
[centos@h205 ~]$ yarn-daemon.sh start resourcemanager
starting resourcemanager, logging to /soft/hadoop-2.7.3/logs/yarn-centos-resourcemanager-h205.out
[centos@h205 ~]$ jps
4736 NameNode
5095 ResourceManager
5132 Jps
[centos@h205 ~]$ yarn rmadmin -getServiceState rm2
17/04/08 13:59:45 INFO ipc.Client: Retrying connect to server: h205/172.16.112.205:8033. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=1, sleepTime=1000 MILLISECONDS)
Operation failed: Call From h205/172.16.112.205 to h205:8033 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
[centos@h205 ~]$ exit
logout
Connection to h205 closed.
[centos@h201 hadoop]$ yarn rmadmin -getServiceState rm1 # 也是和上面同样的报错
active
[centos@h201 hadoop]$ yarn rmadmin -getServiceState rm2
standby
所以说有了zookeeper的自动容灾,大数据平台高可用配置就很方便!
故障四:hive2.1启动hive命令行报错
错误信息:java.net.URISyntaxException: Relative path in absolute URI
解决方法:
1. 打开hive-site.xml配置文件,找到配置值含有 system:java.io.tmpdir 的<name>
2. 把第一个system:java.io.tmpdir配置项改成
<property>
<name>hive.querylog.location</name>
<value>/home/centos/hivequerylog</value>
<description>Location of Hive run time structured log file</description>
</property>
第二个system:java.io.tmpdir配置项改成:
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/home/centos/hiveserver2log</value>
<description>Top level directory where operation logs are stored if logging functionality is enabled</description>
对应的<value>改成指定的目录,可以不存在,他会自动建
3.改好后把这个配置文件同步到其他装有hive的主机
4. 再启动hive,就成功了
hadoop集群故障排除的更多相关文章
- hadoop集群安装故障解决
nodemanager进程解决:http://blog.csdn.net/baiyangfu_love/article/details/13504849 编译安装:http://blog.csdn.n ...
- hadoop集群的故障概率估算
hadoop集群的机器数业界(国内)最大的在5000左右,是什么限制了集群的规模呢?有好几个原因. 1. namenode的内存大小限制 2. 机器故障概率随着机器数目增大而增大,通常一份数据存储在h ...
- 大数据初级笔记二:Hadoop入门之Hadoop集群搭建
Hadoop集群搭建 把环境全部准备好,包括编程环境. JDK安装 版本要求: 强烈建议使用64位的JDK版本,这样的优势在于JVM的能够访问到的最大内存就不受限制,基于后期可能会学习到Spark技术 ...
- 蓝的成长记——追逐DBA(18):小机上WAS集群故障,由一次更换IP引起
原创作品.出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处.否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong ...
- hadoop 集群调优实践总结
调优概述# 几乎在很多场景,MapRdeuce或者说分布式架构,都会在IO受限,硬盘或者网络读取数据遇到瓶颈.处理数据瓶颈CPU受限.大量的硬盘读写数据是海量数据分析常见情况. IO受限例子: 索引 ...
- 大数据系列(2)——Hadoop集群坏境CentOS安装
前言 前面我们主要分析了搭建Hadoop集群所需要准备的内容和一些提前规划好的项,本篇我们主要来分析如何安装CentOS操作系统,以及一些基础的设置,闲言少叙,我们进入本篇的正题. 技术准备 VMwa ...
- Hadoop集群搭建
配置IP,修改主机名,关闭防火墙,配置SSH免密码登录
- 实战CentOS系统部署Hadoop集群服务
导读 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高 ...
- 大数据——Hadoop集群坏境CentOS安装
前言 前面我们主要分析了搭建Hadoop集群所需要准备的内容和一些提前规划好的项,本篇我们主要来分析如何安装CentOS操作系统,以及一些基础的设置,闲言少叙,我们进入本篇的正题. 技术准备 VMwa ...
随机推荐
- 轻量级JAVA+EE企业应用实战(第4版)pdf电子书和源码的免费下载链接
轻量级JAVA+EE企业应用实战(第4版)pdf电子书和源码的免费下载链接: pdf链接:https://pan.baidu.com/s/1dYIWtsv2haL4v7vx3w-8WQ 无提取密码源码 ...
- Fedora安装Snapd和Snap软件包
导读 Snappy包管理器是一个跨发行版的包管理器.它最初是为Ubuntu系统构建的,但现在其他主要的Linux发行版( Fedora, Linux Mint, RHEL, OpenSUSE,Arch ...
- 开放的dae模型
从网上看到了这段代码,就Copy过来了. 其实面对dae这种开放的模型格式,我们可以做很多事情,就像通常的XML文件一样. //------------------------------------ ...
- C# 中堆与栈的浅记
C# 中堆与栈的浅记 什么是堆和栈? 简言之.堆和栈是驻留在内存中的区域,它们的作用是帮助我们运行代码.在.Net Framework 环境下,当我们的代码运行时,内存中的堆和栈便存储了这些代码,并包 ...
- Luogu3959 NOIP2017 宝藏 状压DP
题目传送门:https://www.luogu.org/problemnew/show/P3959 题意:给出一个有$N$个点的图,求其中的一个生成树(指定一个点为根),使得$\sum\limits_ ...
- 重装系统之无法在驱动器0的分区1上安装windows
在通过U盘或光盘安装win8/win8.1/win10 时,遇到无法安装的问题,提示“无法在驱动器0的分区1上安装windows”,格式化分区也不能解决,进而提示Windows无法安装到这个磁盘,选中 ...
- Python爬虫利器二之Beautiful Soup的用法
上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫Be ...
- ElasticSearch实践系列(三):探索数据
前言 经过前两篇文章得实践,我们已经了解了ElasticSearch的基础知识,本篇文章让我来操作一些更真实的数据集.我们可以利用www.json-generator.com/生成如下的文档结构: { ...
- ASS字幕制作
虽然不常做视频,但正因为是偶尔用到,所以总是记不牢,特此笔记. Name 字体名称?Fontname 字体名称(\fn冬青黑体简体中文 W3)(\fnVogueSans)(例:\N{\fn冬青黑体简体 ...
- React++ node.js ++SQL Sever ++MySQL++ python ++ php ++ java ++ c++ c#++ java ++ android ++ ios ++Linux+
"C语言在它诞生的那个年代,是非常不错的语言,可惜没有OOP.当项目臃肿到一定程度,人类就不可控了. 为了弥补这个缺陷,C++诞生了.而为了应对各种情况,C++设计的大而全,太多复杂的特性, ...