`
jessezhang1981
  • 浏览: 41349 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

《权威指南》笔记十 管理Hadoop

阅读更多

作者:JesseZhang (CNZQS|JesseZhang

博客地址:http://www.cnzqs.com


 

要点:

1、HDFS

1.1永久性数据结构

1.2 安全模式

1.3 日志审计

1.4 工具

2、监控

2.1 日志

2.2 度量

2.3 Java管理扩展(JMX)

3、维护

3.1 日常管理过程

3.2 委任和解除节点

3.3 升级

============================================

1、 HDFS

1、  永久性数据结构

对管理员来说,需要深入了解namenode、辅助namenode和datanode等HDFS组件如何在磁盘组织永久性数据。

 

Namenode的目录结构:Namenode格式化后,将产生如下的目录结构:

${dfs.name.dir}/current/VERSION             –java属性文件,包括HDFS版本信息等

/edits

/fsimage

/fstime

文件系统映像和编辑日志:

1、  fsimage文件是文件系统元数据的一个永久性检查点。包含文件系统中的所有目录和文件inode序列化信息。

2、  解决edits文件无限增长的问题,主要解决方案是:运行辅助namenode,为主namenode内存中的文件系统元数据创建检查点。

 

辅助namenode的目录结构:

${dfs.name.dir}/current/VERSION             –java属性文件,包括HDFS版本信息等

/edits

/fsimage

/fstime

/previous.checkpoint/VERSION

/edits

/fsimage

/fstime

1、  辅助namenode的previous.checkpoint目录、辅助namenode的current目录和主namenode的current目录的布局相同。好处在于:在主namenode发生故障时,可以从辅助namenode回复数据。

 

datanode的目录结构:

datanode的存储目录是启动时自动创建的,不需要额外格式化。

datanode的关键文件和目录如下:

${dfs.name.dir}/current/VERSION

/blk_<id_1>

/blk_<id_1>.meta

/blk_<id_2>

/blk_<id_2>.meta

/…….

/blk_<id_64>

/blk_<id_64>.meta

/subdir0/

/subdir1/

/……

/subdir63/

1、VERSION中的namespaceID是首次访问namenode的时候,从namenode获取的。

2、各个datanode的storageID都不相同(但对于存储目录来说是相同的)

Current中两种文件类型:HDFS块文件(原始文件)和块的元数据文件(头部和该块各区段的一系列的校验和)。

2、  目录存储64个(dfs.datanode.numblocks设置)后就创建一个子目录

3、  同一个datanode上的每个磁盘上的块不会重复,不同datanode之间的块才可能重复。

 

安全模式:

 

启动过程中的准确阶段,安全模式

1、  安全模式下,只有访问文件系统元数据的文件系统操作是会成功的。

2、  系统中数据块的位置并不是由namenode维护的,而是以块列表的形式存储在datanode中。系统正常操作期间,namenode会在内存中保留所有块位置的映射信息。安全模式下,各个datanode会向namenode检查块列表信息,namenode了解到足够多的块位置信息之后,即可高效运行文件系统。

3、  安全模式下,namenode并不向datanode发出任何块复制和块删除的指令。

4、  如果满足“最小复本条件”,namenode会在30秒之后退出安全模式。

5、  启动刚格式化的HDFS集群时,不会进入安全模式(没有任何块)

 

查看namenode是否处于安全模式:hadoop dfsadmin –safemode get

执行某条命令之前,先退出安全模式:hadoop dfsadmin –safemode wait

进入安全模式:hadoop dfsadmin –safemode enter

离开安全模式:hadoop dfsadmin –safemode leave

 

日志审计:

 

1、对日志审计是log4j在INFO级别实现的。默认的设置为WARN,未启动该项特性。

2、  为了不与namenode日志混在一起,最好配置log4j,将审计日志写到单独的文件中。

 

工具:

1、  dfsadmin工具

作用:查找HDFS状态信息,又可在HDFS上执行管理操作。

只有当用户具有超级用户权限,才可以使用这个工具修改HDFS的状态。

2、  fsck工具

作用:检查HDFS中文件的健康状况。

执行fsck可以执行如下操作:

移动: -move   转移到HDFS的/lost+found目录

删除: -delete

3、  datanode块扫描器

作用:定期检测本节点上的所有块,从而在客户端读到坏块之前及时地检测和修复坏块。

默认每隔三周(504小时)执行一次,dfs.datanode.scan.period.hours设置

损坏的块被报给namenode,并被及时修复。

http://datanode:50075/blockScannerReport

http://datanode:50075/blockScannerReport?Listblocks

4、  均衡器

Balancer是一个Hadoop守护进程,它将块从忙碌的datanode移到相对空闲的datanode,从而重新分配块。同时坚持复本放置策略,将复本分散到不同机架,以降低数据损坏率。

均衡的条件:每隔datanode的使用率和集群的使用率非常接近

启动:start-balancer.sh

-threshold 指定阀值;默认10%

均衡器后台运行,且带宽是有限的(默认1M/s )在hdfs-site.xml的dfs.balance.bandwidthPerSec指定(单位字节)

 

2、 监控

 

1、  主守护进程最需要被监控。

2、  Datanode和tasktracker经常出现故障,在大型集群中故障率比较高

3、  除了监控,可以定期运行一些测试作业,检查集群的运行情况

4、  常用的监控工具是:Chukwa

 

日志:

1、  可以通过守护进程的网页,在守护进程的网页的 /logLevel 目录下来改变日志级别

2、  日志名称最好从源代码中查找

3、  获取堆栈轨迹:网页界面的/stacks目录

 

 

度量:

 

1、  HDFS和MapReduce守护进程收集的事件和度量相关的信息,这些信息统称为“度量”

2、  度量从属于特定的上下文(context)。目前Hadoop使用“dfs”、“mapred”、“rpc”、“jvm”四个上下文。

3、  度量和计数器的区别:

a)         主要区别是使用范围不同。度量由守护进程收集。计数器由mapreduce任务收集后再生成针对整个作业进行汇总。

b)         工作方式也不同,包括数据采集和聚集过程。计数器是MapReduce的特性;度量是收集机制和接收更新的组件独立。

4、  FileContext:将度量写到一个文件

5、  GangliaContext:Ganglia针对超大规模集群的开源的分布式监控系统。

6、  NullContextWithUpdateThread

7、  CompositeContext

个人理解:度量主要是用来收集集群运行情况,进行监控

 

         Java管理扩展(JMX)

1、  标准的Java API,可监控和管理应用。

2、  Hadoop包括多个托管bean(MBean),可以将Hadoop度量发布给支持JMX的应用。目前支持dfs和rpc,不支持mapred和jvm

3、  JDK自带的JConsole工具来浏览JVM中的MBean,可以浏览Hadoop的度量

 

比较常用普遍的方案是:

同时使用Ganglia和Nagios这样的警告系统来监控Hadoop系统。Ganglia擅长高效收集大量度量,并以图形化界面呈现;Nagios和类似系统擅长在某项度量的关键阀值被突破之后及时报警。

 

3、 维护

 

日常管理过程

1、  元数据备份

2、  数据备份

3、  Fsck工具

4、  文件系统均衡器

 

委任和解除节点

1、  正常情况下,节点同时运行datanode和tasktracker,二者一般同时委任或解除。

 

委任新节点:

1、  配置hdfs-site.xml 指向namenode

2、  配置mapred-site.xml文件,指向jobtracker

3、  启动datanode和jobtracker守护进程

允许连接的机器的配置:dfs.hosts属性()

解除旧节点:

 

用户将拟退出的若干datanode告知namenode,方可在这些datanode停机之前将块复制到其他datanode。

 

升级:

需要细致的规划,特别是HDFS的升级,防止数据丢失。

规划过程最好包括在一个小型测试集群上的测试过程,以评估是否能够承担数据丢失的损失。

如果文件系统布局不改变,升级集群就比较简单:

1、  在集群上安装新的HDFS和MapReduce

2、  关闭旧的守护进程,升级配置文件

3、  启动新的守护进程,令客户端使用新的库

整个过程完全可逆。

 

升级成功后,需要执行几个清除步骤:

1、  从集群中移除旧的安装和配置文件

2、  在代码和配置文件中修补被弃用的警告信息。

 

HDFS的数据和元数据升级:

1、  仅当系统健康时,才可升级,升级之前要用fsck工具全面检查。

2、  升级前,最好清空临时文件。


-----------------------------------------
本文链接地址:http://www.cnzqs.com/?p=112
0
1
分享到:
评论

相关推荐

    Hadoop权威指南----读书笔记.pdf

    Hadoop权威指南----读书笔记

    Hadoop 权威指南读书笔记

    Hadoop 权威指南读书笔记 我自己画的一张图

    Hadoop权威指南(第三版)英文版.pdf

    《Hadoop权威指南》是大数据领域的一本经典著作,尤其其第三版更是备受专业人士推崇。这本书详尽地阐述了Hadoop生态系统的核心技术和实践应用,旨在帮助读者深入理解并有效运用Hadoop解决大规模数据处理问题。以下是...

    《Hadoop权威指南》学习笔记.pdf

    《Hadoop权威指南》学习笔记.pdf

    《hadoop权威指南(第四版)》(第一章)学习笔记

    TB ==&gt; PB ==&gt; EB ==&gt; ZB 有句话说得好:“大数据胜于好算法。 在硬盘存储容量多年来不 断提升的同时,访问速度(硬盘数据读取速度)却没有与时俱进。 读完整个硬盘中的数据需要更长时间,写入数据就别提了。...

    Hadoop的各种资源文件

    《hadoop权威指南(第二版).pdf》是一本深度学习Hadoop的经典书籍,它可能会深入探讨Hadoop的设计理念、工作流程,以及如何优化Hadoop集群的性能。书中可能还会包含高级主题,如YARN资源管理器、HBase分布式数据库...

    炼数成金,hadoop经典案例,1-4章书面作业

    文档最后提到,在Hadoop集群中编译并运行《权威指南》中的例3.2。这要求对Hadoop的编程接口有所了解,并能够通过实例来加深对Hadoop集群使用和管理的理解。 以上知识点涵盖了Hadoop集群安装、配置、维护和应用开发...

    BigData文档笔记

    1. 《Hadoop权威指南》all.txt:Hadoop是Apache软件基金会开发的一个开源项目,主要用于大规模数据集的分布式计算。Hadoop的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce,前者提供高容错性的...

    高级java笔试题-EBook-PDF:ITPDF电子书

    Hadoop权威指南大数据的存储与分析第4版.pdf Hive编程指南.pdf Spark大数据处理技术.pdf 大数据Spark企业级实战版.pdf Hadoop大数据处理.pdf Hadoop核心技术.pdf Elasticsearch集成Hadoop最佳实践.pdf Hadoop大数据...

    2017大数据数据分析学习资料合集(含学习路线图).docx

    - **入门书籍**:推荐一些入门级别的书籍,如《Hadoop权威指南》、《大数据时代》等,这些书籍能够帮助初学者快速建立起对大数据领域的整体认知。 - **工具介绍**:介绍了2017年值得关注的一些编程语言、框架和工具...

    hbase第04天

    首先,我们有两本关于HBase的重要参考资料:《中文》HBase权威指南.pdf 和 [O'REILLY] HBas The Definitive Guide.pdf。这两本书都是深入理解HBase的基础,提供了全面的理论知识和技术实践。它们会介绍HBase的设计...

Global site tag (gtag.js) - Google Analytics