Hadoop启动踩过的坑
来源:互联网 发布:实时数据库软件有哪些 编辑:程序博客网 时间:2024/06/17 09:13
核心内容:
1、Hadoop开发过程中常见问题即解决方案
在hadoop开发的过程中,我们总是遇到各种各样的问题,今天就整理总结一下:
万能的解决方案:6个检查+具体日志在Hadoop开发的过程中如果遇到各种异常,首先使用jps命令查看节点的启动是否正常,然后在去查看相关的日志文件,但是在查看相关日志之前,你可以先检查一下面几点:
1、防火墙原因:检查各个节点的防火墙是否关闭成功。(重点是检查NameNode)
- 1
- 2
- 1
- 2
2、检查IP地址与主机名的映射关系是否绑定成功
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
3、检查NameNode是否处于安全模式
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
4、检查NameNode是否已经进行了格式化处理
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
5、检查配置文件的配置是否成功
6、检查NameNode节点和DataNode节点中存放的namespaceID的版本号是否相同
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
好的,当我们查看完上述6点之后如果还没有解决问题,那我们再去查看相关的日志文件即可。
OK,到现在为止我在给大家介绍一下在开发过程中经常遇到的几个异常问题:
这个问题对于Hadoop的初学者是经常遇到的,之所以出现这个问题,可能有3点原因:
1、NameNode没有进行格式化处理(6个检查以包括)
先删除hadoop.tmp.dir所对应的目录(即logs和tmp),然后对NameNode进行格式化处理
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
2、检查IP地址与主机名的映射关系是否绑定成功(6个检查以包括)
3、检查配置文件的配置是否成功(6个检查以包括),重点是hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml和slaves。
例如:
原因:NameNode在刚开始启动的时候会进入到安全模式,倒计时30s后退出,在安全模式下会不能进行增、删、改操作,只能进行查看操作。但是如果数据节点DataNode丢失的block块达到一定比例的话则系统一直处于安全模式,即只读状态。
解决方法:
1、在HDFS的配置文件hdfs-site.xml中,修改dfs.safemode.threshold.pct所对应的数值,将其数值改成一个较小的数值,默认的数值是0.999f。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
2、执行命令 hadoop dfsadmin -safemode leave 强制NameNode离开安全模式。(6个检查以包括)
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
例如:
这个异常可能出现的现象:执行命令jps显示的进程都很正常,但是用web界面查看的话,显示的live nodes为0,这说明数据节点DataNode没有正常启动,但是数据节点DataNode又正常启动了。
这个问题可能出现的原因:
1、防火墙原因,检查所有节点的防火墙是否关闭成功。(6个检查以包括)
2、磁盘空间原因:执行命令df -al 查看磁盘空间的使用情况,如果是磁盘空间不足的话,则调整磁盘空间。
如果是磁盘空间不足的话,具体进行下面的步骤在进行查看:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
3、如果上述方法都不行的话,可用以下方法进行处理(但是该方法会造成数据的丢失,所以慎用!)
先删除hadoop.tmp.dir所对应的目录,然后对NameNode重新进行格式化处理。(6个检查以包括)
原因:集群中的主机名没有映射到相应的IP地址(6个检查以包括)
解决方法:在/etc/hosts文件中添加所有节点的主机名与IP地址的映射关系。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
解决方法:先删除hadoop.tmp.dir所对应的文件夹,然后对NameNode重新进行格式化处理。
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
原因分析:出现这个异常,明显是JVM内存不足的原因,要修改所有数据节点DataNode所对应的JVM内存大小。
方法:在MapReduce的配置文件mapred-site.xml中,修改mapred.child.Java.opts所对应的数值。
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
注意:一般JVM的最大内存使用应该为总内存大小的一半,例如我们的服务器的内存大小为4G,则设置为2048m,但是这个值可能依旧不是最优的数值。其中
-Xms 表示内存初始化的大小,-Xmx表示能够使用的最大内存。
在Linux 下查看服务器内存的硬件信息:
- 1
- 2
- 1
- 2
原因分析:每次对NameNode格式化之后都会产生一个新的namespaceID,如果多次对NameNode格式化的话可能导致NameNode节点和DataNode节点中存放的版本号不一致。
解决方法:
1、在NameNode节点和DataNode节点中检查namespaceID的版本号是否相同,如果不相同的话,修改为相同的值后然后重新启动该节点。(6个检查以包括)
2、先删除hadoop.tmp.dir所对应的目录,然后对NameNode重新进行格式化处理。(6个检查以包括)
上面这些就是我在开发过程中经常遇到的一些问题,希望对大家有所帮助。
来源:http://blog.csdn.net/a2011480169/article/details/53868442
- Hadoop启动踩过的坑
- [Hadoop]那些年踩过的Hadoop坑
- hadoop踩过的那些坑 之 hive篇
- Hadoop开发入门踩过的坑(持续更新)
- 搭建Hadoop所遇过的坑
- hadoop 用过的命令
- Hadoop--有关Hadoop的启动
- 踩过的坑
- 踩过的坑
- 踩过的坑
- hadoop的启动配置
- 启动hadoop的命令
- 启动Hadoop的步骤
- 启动hadoop的命令
- 【总大纲】Hadoop安装教程_伪分布式配置_CentOS6.4/Hadoop2.6.0踩过的坑
- 【Hadoop】设置Hadoop的开机自启动
- 【Hadoop】设置Hadoop的开机自启动
- 我踩过的听过的那些坑
- 关于logcat的使用
- 云技术会颠覆IT平台吗?
- The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
- Flume日志采集多级Agent
- java中组合与聚合的区别
- Hadoop启动踩过的坑
- Spring中NamedParameterJdbcTemplate详解
- 机器学习-非监督学习
- linux下安装redis 指定自定义端口
- Python中的sorted函数以及operator.itemgetter函数
- 抽象类与接口
- iOS 解决数据过少UICollectionView无法滚动的方法
- 计算机信息系统安全专用产品许可证信息查询
- 1050. 螺旋矩阵(25)