您的位置:首页 > 运维架构

(12) Hadoop 升级技能

2017-12-19 00:02 155 查看

NameNode 元数据管理 (重点)

0. fsimage/edits

edits 存储的是对HDFS操作记录

fsimage 存储的是hdfs上面文件信息

nameNode 存储的数据的元数据信息,datanode的节点状态,block块的状态





1. 元数据目录

元素据目录所在/home/hadoop-2.7.4/tmp/dfs/name/current

Hadoop 格式化 是为了初始化整个文件系统,目录结构

目录结构贴图



version 文件

namespaceID=934548976   // dataNode 节点表示
clusterID=CID-cdff7d73-93cd-4783-9399-0a22e6dce196 // 整个集群的表示
cTime=0  // 集群的创建时间
storageType=NAME_NODE  //数据结构信息(如果是 DataNode,storageType=DATA_NODE);
blockpoolID=BP-893790215-192.168.24.72-1383809616115  //Namenode节点 主备关系
layoutVersion=-47  //数据结构变更,版本号也要递减


seen_txid

seen_txid - edits   = ?  判断集群是否还原彻底

seen_txid  对HDFS操作记录

edits 存储的操作记录

当集群出现问题 还原的时候会用到 来判断整个集群的恢复状态


2. Checkpoint 合并

secondnaryNode 它的职责是合并 NameNode 的 edit

logs 到 fsimage 文件中,减小edits文件大小,得到最新的fsimage文件 。 这么做的目的一个是备份元数据信息,另一个是减小edits文件数据,节省内存 .这么做的目的也是数据备份还原

合并流程图



触发条件

Checkpoint 操作受两个参数控制,可以通过 core-site.xml 进行配置:
<property>
<name> dfs.namenode.checkpoint.period</name>
<value>3600</value>
<description>
两次连续的 checkpoint 之间的时间间隔。默认 1 小时
</description>
</property>
<property>
<name>dfs.namenode.checkpoint.txns</name>
<value>1000000</value>
<description>
最大的没有执行 checkpoint 事务的数量,满足将强制执行紧急 checkpoint,即使
尚未达到检查点周期。默认设置为 100 万。
</description>
</property>


3. hadoop 动态添加节点

看下面的资料内容

基础准备
-----------------------

在基础准备部分,主要是设置hadoop运行的系统环境

修改系统hostname(通过hostname和/etc/sysconfig/network进行修改)

修改hosts文件,将集群所有节点hosts配置进去(集群所有节点保持hosts文件统一)

设置NameNode到DataNode的免密码登录(ssh-copy-id命令实现)

修改主节点slave文件,添加新增节点的ip信息(集群重启时使用)

将hadoop的配置文件scp到新的节点上

---------------------------
添加DataNode
---------------------------

对于新添加的DataNode节点,需要启动datanode进程,从而将其添加入集群

在新增的节点上,运行sbin/hadoop-daemon.sh start datanode即可

然后在namenode通过hdfs dfsadmin -report查看集群情况

最后还需要对hdfs负载设置均衡,因为默认的数据传输带宽比较低,可以设置为64M,即hdfs dfsadmin -setBalancerBandwidth 67108864即可

默认balancer的threshold为10%,即各个节点与集群总的存储使用率相差不超过10%,我们可将其设置为5%

然后启动Balancer,sbin/start-balancer.sh -threshold 5,等待集群自均衡完成即可

---------------------------
添加Nodemanager
---------------------------

由于Hadoop 2.X引入了YARN框架,所以对于每个计算节点都可以通过NodeManager进行管理,同理启动NodeManager进程后,即可将其加入集群

在新增节点,运行sbin/yarn-daemon.sh start nodemanager即可

在ResourceManager,通过yarn node -list查看集群情况


HDFS 安全启动模式

什么情况用安全? 重要性 ? 特征? 针对谁?

当启动HDFS集群的时候会开启一种特殊的状态 就叫做安全模式 ,在安全模式下 只读模式 - 不可以上传 修改 删除 只能查 满足三个条件。

安全模式就为了集群的稳定性,只有在稳定的时候才可以操作HDFS。

安全模式的启动条件

1 达到副本数量要求的 block 比例满足要求;

dfs.namenode.replication.min: 最小的文件 block 副本数量比例,默认为 1.


2 可以用的节点数 满足配置要求

dfs.namenode.safemode.threshold-pct: 指定应有多少比例的数据块满足最小副本数

要求。默认为 0.999f,大于这个比例就离开安全模式

1、2 两个条件满足后维持36秒达到配置的要求

安全模式命令

手动进入安全模式

hdfs dfsadmin -safemode enter
hdfs dfsadmin -safemode leave
hdfs dfsadmin -safemode get  //可以在50070查看


hadoop archives

由于在HDFS系统在设计的时候就决定不适合去存储大数据文本文件,因为小文件会占用nameNode节点大量的内存信息。通过archives这个方法将小文件打包,底层调用MR算法将打包后的文件进行分区 。依然使其可以访问每个文件 。

使用方法

hadoop archive -archiveName test.har -p /input -r 3 /outputdir
在/outputdir 目录下创建一个名为 test.har 的存档文件。


Hadoop HA (重点 面试必问)

解决了单独故障问题

主备 NameNode HA

YARN HA?

集群高可用

Hadoop Federation (了解)

NameNode扩展 ?

CDH (了解 属于商业版)

离线中介

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  namenode hadoop