千家信息网

管理Hadoop的方法

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,这篇文章主要介绍"管理Hadoop的方法",在日常操作中,相信很多人在管理Hadoop的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"管理Hadoop的方法"的疑惑
千家信息网最后更新 2024年11月22日管理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

    • 移除节点

    • 委任

    1. 从slaves 文件中移除节点

  • 升级

是否能回滚

到此,关于"管理Hadoop的方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0