管理Hadoop的方法
这篇文章主要介绍"管理Hadoop的方法",在日常操作中,相信很多人在管理Hadoop的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"管理Hadoop的方法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
HDFS
永久性数据结构
1.namenode的目录结构 VERSION 文件详解:
#Thu Dec 15 10:07:46 CST 2016namespaceID=1277563549clusterID=CID-a4ff16ba-4427-4f8a-bbaf-4665b3ce714bcTime=0storageType=NAME_NODEblockpoolID=BP-1697576408-127.0.0.1-1481767666542layoutVersion=-63layoutVersion - HDFS metadata版本号,通常只有HDFS增加新特性时才会更新这个版本号namespaceID 文件系统命名空间的唯一标识符,是在namenode 首次格式化时创建的clusterID 是将HDFS集群作为一个整体赋予的唯一标识符blockpoolID 是数据块池的唯一标识符,数据块池中包含了由一个namenode 管理的命名空间中的所有文件。CTime 标记了namenode 存储系统的创建时间。对于刚放格式化的存储系统,这个属性值为0storageType 该存储目录包含的是namenode 的数据结构
文件系统映像和编辑日志
文件系统客户端执行写操作时(例如创建或移动文件),这些事务首先被记录到编辑日志中。namenode在内存中维护文件系统的元数据;当编辑日志被修改时,相关元数据信息也同步更新。
每个fsimage都是文件系统元数据的一个完整的永久性检查点。
如何解决namenode 重启操作慢的问题
运行辅助namenode, 1、secondarynamenode请求namenode停止使用的edits_inprogress文件,新的编辑操作记录到一个新的edits_inprogress文件中,同时namenode会更新所有存储目录中的seen_txid
2、secondarynamenode从namenode中通过HTTP GET获取最近的fsimage和edits文件
3、secondarynamenode将fsimage文件载入内存,逐一执行edits文件中的事务,创建新的合并后的fsimage文件
4、secondarynamenode将新的fsimage文件通过HTTP PUT发送回主namenode,namenode将其保存为临时的.ckpt文件
5、namenode重命名临时的fsimage文件
datanode 的目录结构
安全模式
namenode启动时,首先将映像文件载入内存,并执行编辑日志中的各项操作。一旦在内存中成功建立文件系统元数据的映像,则创建一个新的fsimage 文件和一个空的编辑日志。在这个过程中,namenode 运行在安全模式,意味着namenode文件系统对于客户端来说是只读的。
日志审计
工具
解决各个datanode 上的块分布不均衡的问题
dfsadmin
fsck
datanode 块扫描器,定期检测本节点上的所有块
均衡器
监控
主守护进程是最需要监控的,包括主namenode,辅助namenode 和资源管理器
日志
度量和JMX(Java管理扩展)
hadoop守护进程收集事件和度量相关的信息,这些信息统称为"度量"
维护
元数据备份
数据备份
划分优先级
distcp 是一个理想的备份工具
文件系统检查
文件系统均衡器
委任和解除节点
随便允许一台机器以datanode身份连接到namenode 是不安全的。
添加新节点的步骤:
1. 将新节点的网络地址加到include 文件中
2. 运行以下指令,将审核过的一系列datanode集合更新至namenode 信息
hdfs dfsadmin -refreshNodes
3.运行以下指令,将审核过的一系列节点管理器信息更新至资源管理器
yarn rmadmin -refreshNodes
4. 以新节点更新slaves 文件。这样的话,Hadoop控制脚本会将新节点包括在未来操作之中
5.启动新的datanode 和节点管理器
6.检查新的datanode和节点管理器是否都出现在网页界面中1.将待解除节点的网络地址添加到exclude 文件中,不更新include 文件
2.执行以下指令,使用一组新的审核过得datanode 来更新namenode 设置
hdfs dfsadmin -refreshNodes
3.使用一组新的审核过的节点管理器来更新资源管理器设置
yarn rmadmin -refreshNodes
4.转到网页界面,查看待解除datanode的管理状态是否已经变为正在解除,因为此时相关 的datanode正在被解除过程之中。这些datanode会把它们的块复制到其他datanode 中
5.当所有datanode的状态变为解除完毕时,表明所有快已经复制完毕。关闭已经解除的节点。
6.从include 文件中移除这些节点,并运行以下命令
hdfs dfsadmin -refreshNodes yarn rmadmin -refreshNodes
移除节点
委任
从slaves 文件中移除节点
升级
是否能回滚
到此,关于"管理Hadoop的方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!