Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > 大数据云计算 >

Hadoop平台常见故障汇总以及操作系统性能调优


分享到:
时间:2020-08-11 10:23来源:http://www.java1234.com 作者:小锋  侵权举报
Hadoop平台常见故障汇总以及操作系统性能调优 PDF 下载
失效链接处理
Hadoop平台常见故障汇总以及操作系统性能调优  PDF 下载


本站整理下载:
 
相关截图:
 
主要内容:

1.如何下线一个 datanode 节点?
当一个 datanode 节点所在的服务器故障或者将要退役时,你需要在 Hadoop 中下线这个节点,下线一个 datanode 节点的过程如下。
(1)修改 hdfs-site.xml 文件
如下选项,找到 namenode 节点配置文件 /etc/hadoop/conf/hdfs-site.xml:
<property>     
<name>dfs.hosts.exclude</name>      
<value>/etc/hadoop/conf/hosts-exclude</value>  
</property>  
(2)修改 hosts-exclude 文件
执行如下操作,在 hosts-exclude 中添加需要下线的 datanode 主机名:
vi /etc/hadoop/conf/hosts-exclude  
172.16.213.188  
(3)刷新配置
在 namenode 上以 hadoop 用户执行下面命令,刷新 hadoop 配置
[hadoop@namenodemaster ~]$hdfs dfsadmin -refreshNodes 
(4)检查是否完成下线
执行如下命令,检查下线是否完成:
[hadoop@namenodemaster ~]$hdfs dfsadmin -report 
也可以通过 NameNode 的 50070 端口访问 Web 界面,查看 HDFS 状态,需要重点关注退役的节点数,以及复制的块数和进度。
2.如何新增一个 DataNode 节点到 Hadoop 集群?
当集群资源不够时,需要新增几台机器加入集群,这是 Hadoop 运维最常见的处理方式之一。那么如何将新增的服务器加入 Hadoop 集群呢,主要有以下步骤。
(1)新节点部署 Hadoop 环境
新增节点在系统安装完成后,要进行一系列的操作,比如系统基本优化设置、Hadoop 环境的部署和安装、JDK 的安装等,这些基础工作都需要你事先完成。
(2)修改 hdfs-site.xml 文件
在 NameNode 查看 /etc/hadoop/conf/hdfs-site.xml 文件,找到如下内容:
<property> 
  <name>dfs.hosts</name> 
  <value>/etc/hadoop/conf/hosts</value> 
</property> 
(3)修改 hosts 文件
在 NameNode 修改 /etc/hadoop/conf/hosts 文件,添加新增的节点主机名,操作如下:
vi /etc/hadoop/conf/hosts 
slave0191.iivey.cloud  
最后,将配置同步到所有 DataNode 节点的机器上。
(4)使配置生效
新增节点后,要让 NameNode 识别新的节点,则需要在 NameNode 上刷新配置,执行如下操作:
[hadoop@namenodemaster ~]$hdfs dfsadmin -refreshNodes  
(5)在新节点启动 dn 服务
在 NameNode 完成配置后,还需在新增节点上启动 DataNode 服务,执行如下操作:
[hadoop@slave0191.iivey.cloud ~]$ hdfs --daemon start datanode 
这样,一个新的节点就增加到集群了,Hadoop 的这种机制,可以在不影响现有集群运行的状态下,新增或者删除任意节点,非常方便。
3.某个 datanode 节点磁盘坏掉怎么办?
如果某个 datanode 节点的磁盘出现故障,那么该节点将不能进行写入操作,并导致 datanode 进程退出,针对这个问题,你可以如下解决:
首先,在故障节点上查看 /etc/hadoop/conf/hdfs-site.xml 文件中对应的 dfs.datanode.data.dir 参数设置,去掉故障磁盘对应的目录挂载点;
然后,在故障节点上查看 /etc/hadoop/conf/yarn-site.xml 文件中对应的 yarn.nodemanager.local-dirs 参数设置,去掉故障磁盘对应的目录挂载点;
最后,重启该节点的 DataNode 服务和 NodeManager 服务即可。
4.Hadoop 进入安全模式怎么办?
Hadoop 刚启动时,由于各个服务的验证和启动还未完成,此时 Hadoop 会进入安全模式,这时文件系统的内容不允许修改,也不允许删除,这种状态会一直持续,直到安全模式结束为止。
而这个安全模式主要是为了系统启动时,能够对各个 DataNode 数据块的有效性进行检查,并根据策略对部分数据块进行必要的复制或者删除。
如果 Hadoop 的启动和验证都正常,那么只需等待一会儿,Hadoop 便将自动结束安全模式。
当然,执行如下命令,也可以手动结束安全模式:
[hadoop@namenodemaster  conf]$ hdfs dfsadmin -safemode leave 
5.NodeManager 出现 Java heap space 错误怎么办?
这种错误,一般是 JVM 内存不够导致的,所以你需要修改所有 DataNode 和 NodeManager 的 JVM 内存大小,至于设置具体多大的内存,需要根据服务器的实际环境而定。
如果设置的 JVM 值已经很大,但还是出现该问题,则需要查看 NodeManager 运行日志,具体是什么原因导致的,需要具体问题具体分析,当然,最直接的方法就是重启此节点的 NodeManager 服务。
6.DataNode 节点出现 Too many fetch-failures 错误的原因是什么?
出现这个问题的原因主要是,DataNode 节点间的连通性不够通畅,或者网络环境不太稳定。
你可以从如下方面查找原因,便基本能判断问题所在:
检查 DataNode 节点和 NameNode 节点之间的网络延时;
通过 Nslookup 命令测试 DNS 解析主机名情况;
检查 /etc/hosts 和对应的主机名信息;
检查 NameNode 到 DataNode 节点的 SSH 单向信任情况。
7.出现 No route to host 怎么办?
这个问题一般会在 DataNode 连接不上 NameNode,从而导致 DataNode 无法启动的情况下发生,问题发生时可在 DataNode 日志中看到如下类似信息:
这个问题,一般是本机防火墙、本机网络,或系统的 selinux 导致的,所以你可以关闭本机防火墙或者 selinux,然后检查本机与 NameNode 之间的连通性,从而你便能判断出问题症结所在。
8.NameNode 服务器故障了怎么办?
在 HDFS 集群中,NameNode 主机上存储了所有元数据信息,一旦这些信息丢失,那么 HDFS 上面的所有数据都将无法使用。
所以 NameNode 服务器发生故障无法启动时,有两种方法可以解决:


 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐