前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EMR(弹性MapReduce)入门之EMR集群的基础排障(五)

EMR(弹性MapReduce)入门之EMR集群的基础排障(五)

原创
作者头像
小司机带你入门EMR
修改2020-02-24 14:31:32
1.3K0
修改2020-02-24 14:31:32
举报
文章被收录于专栏:EMR冲鸭EMR冲鸭

前面四节已经向大家介绍完,EMR集群的概括和搭建以及集群内的一些操作,在实际的生产过程中,又会出现各式各样的故障。接着就为大家介绍一些常见的故障已经解决方法。

HDFS排障---------NameNode异常讲解

NameNode主要负责存储元数据。从架构设计上看,元数据大致分为两个层次:Namespace管理层,负责管理文件系统中的树状目录结构以及文件与数据块的映射关系;块管理层:负责管理文件系统中文件的物理块与实际存储位置的映射关系BlockMap。

NameNode状态问题

两种状态:standby和active

Active:对外负责读写操作

Standby:维护edits和fsimage文件

查看namenode的状态:

代码语言:javascript
复制
在HA集群:hdfs haadmin  -getServiceState 节点名
切换namenode状态:hdfs  haadmin  -failover  nn2  nn1

异常出现情况:

进入安全模式,整个集群是只读状态。当机器发生重启;进程发生重启;丢块过多;NameNode磁盘不足。

如何判断一个集群进入了安全模式???

代码语言:javascript
复制
使用Hadoop用户执行命令:hdfs   dfsadmin   -safemode  get

如何重启NameNode节点?

代码语言:javascript
复制
hadoop安装目录/sbin/Hadoop-daemon.sh   stop namenode

NameNode重启过程:

先加载fsimage、edits;也有可能会做一次checkpoint,接着做一次blockreport,就是说datanode会分批次把块上报给namenode(注意这个批次也是有阈值的),namenode会一直等待块的上报,知道所有的块达到99%的最小副本数。

Namenode推出安全模式的条件:

当99.9%的块达到最小副本数的时候;DataNode存活的数量达到配置数量的时候

指定节点离开/进入安全模式

代码语言:javascript
复制
hdfs   dfsadmin  -safemode  -fs   节点ip:端口号    leave/enter

长期处于安全模式的优化措施

1、blockreport阶段耗时太长

2、重置文件current:前提是安全模式再执行。

代码语言:javascript
复制
hdfs  dfsadmin   -saveNamespace  

注意:如果是HA(高可用),可以选择不重置,但是如果standby节点长期故障,必须这样处理。

如果是非HA集群,必须重置,而且处于安全模式的时候集群不能使用。

HDFS排障---------DataNode异常讲解

DataNode主要提供真实文件数据的存储服务。

文件块(block):最基本的存储单位。对于文件内容而言,一个文件的长度大小是size,那么从文件的0偏移开始,按照固定的大小,顺序对文件进行划分并编号,划分好的每一个块称一个Block。

HDFS默认Block大小是128MB,以一个256MB文件,共有256/128=2个Block. 不同于普通文件系统的是,HDFS中,如果一个文件小于一个数据块的大小,并不占用整个数据块存储空间。

Replication。多副本。默认是三个。(hdfs-site.xml的dfs.replication属性)

异常情况

1、DataNode和NameNode通信导致DataNode的状态为dead

web ui有显示。心跳参数在hdfs-size.xml中,dfs.heartbeat.interval和dfs.namenode.heartbeat.recheck-interval

2、DataNode掉盘

会影响hdfs的读写、有hbase也会影响。先挂盘,在格式化,创建对象的目录,如果家的是/data盘,logs目录,将目录的owner改为hadoop用户

数据块丢失:EMR集群中的组件都是属于hadoop用户的,处理zookeeper。

查看是否丢失块:

代码语言:javascript
复制
hadoop用户执行    hdfs  dfsadmin   -report

确认丢块: hdfs fsck /路径

解决办法:先删除损坏块上的信息,重新上传。

hdfs fsck /路径 -delete

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • HDFS排障---------NameNode异常讲解
    • NameNode状态问题
      • 异常出现情况:
      • HDFS排障---------DataNode异常讲解
      • 异常情况
      相关产品与服务
      大数据
      全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档