标签分类
当前位置:首页 > 程序设计电子书 > Hadoop电子书网盘下载
深度剖析Hadoop HDFS 深度剖析Hadoop HDFS
love1314sea

love1314sea 提供上传

资源
10
粉丝
26
喜欢
264
评论
19

    深度剖析Hadoop HDFS PDF 高清版

    Hadoop电子书
    • 发布时间:

    给大家带来的一篇关于Hadoop相关的电子书资源,介绍了关于Hadoop、HDFS方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小140 MB,林意群编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.7,更多相关的学习资源可以参阅 程序设计电子书、等栏目。

  • 深度剖析Hadoop HDFS PDF 下载
  • 下载地址:https://pan.baidu.com/s/1TIVgPAsjFRzYCtWklB5emQ
  • 分享码:6ia9
  • 深度剖析Hadoop HDFS PDF

    《深度剖析Hadoop HDFS》基于Hadoop 2.7.1版本进行分析,全面描述了HDFS 2.X的核心技术与解决方案,书中描述了HDFS内存存储、异构存储等几大核心设计,包括源码细节层面的分析,对于HDFS中比较特殊的几个场景过程也做了细粒度的分析。还分享了作者在实际应用中的解决方案及扩展思路。阅读《深度剖析Hadoop HDFS》可以帮助读者从架构设计与功能实现角度了解HDFS 2.X,同时还能学习HDFS 2.X框架中优秀的设计思想、设计模式、Java语言技巧等。这些对于读者全面提高自己分布式技术水平有很大的帮助。

    《深度剖析Hadoop HDFS》分为三大部分:核心设计篇、细节实现篇、解决方案篇,“核心设计篇”包括HDFS的数据存储原理、HDFS的数据管理与策略选择机制、HDFS的新颖功能特性;“细节实现篇”包括HDFS的块处理、流量处理等细节,以及部分结构分析;“解决方案篇”包括HDFS的数据管理、HDFS的数据读写、HDFS的异常场景等。

    目录

    • 前言
    • 第一部分 核心设计篇
    • 第1章 HDFS的数据存储2
    • 1.1 HDFS内存存储2
    • 1.1.1 HDFS内存存储原理2
    • 1.1.2 Linux 虚拟内存盘4
    • 1.1.3 HDFS的内存存储流程分析4
    • 1.1.4 LAZY_PERSIST内存存储的使用14
    • 1.2 HDFS异构存储15
    • 1.2.1 异构存储类型16
    • 1.2.2 异构存储原理17
    • 1.2.3 块存储类型选择策略22
    • 1.2.4 块存储策略集合24
    • 1.2.5 块存储策略的调用27
    • 1.2.6 HDFS异构存储策略的不足之处28
    • 1.2.7 HDFS存储策略的使用30
    • 1.3 小结31
    • 第2章 HDFS的数据管理与策略选择32
    • 2.1 HDFS缓存与缓存块32
    • 2.1.1 HDFS物理层面缓存块33
    • 2.1.2 缓存块的生命周期状态34
    • 2.1.3 CacheBlock、UnCacheBlock场景触发36
    • 2.1.4 CacheBlock、UnCacheBlock缓存块的确定38
    • 2.1.5 系统持有的缓存块列表如何更新39
    • 2.1.6 缓存块的使用40
    • 2.1.7 HDFS缓存相关配置40
    • 2.2 HDFS中心缓存管理42
    • 2.2.1 HDFS缓存适用场景43
    • 2.2.2 HDFS缓存的结构设计43
    • 2.2.3 HDFS缓存管理机制分析45
    • 2.2.4 HDFS中心缓存疑问点55
    • 2.2.5 HDFS CacheAdmin命令使用56
    • 2.3 HDFS快照管理58
    • 2.3.1 快照概念59
    • 2.3.2 HDFS中的快照相关命令59
    • 2.3.3 HDFS内部的快照管理机制60
    • 2.3.4 HDFS的快照使用71
    • 2.4 HDFS副本放置策略72
    • 2.4.1 副本放置策略概念与方法72
    • 2.4.2 副本放置策略的有效前提73
    • 2.4.3 默认副本放置策略的分析73
    • 2.4.4 目标存储好坏的判断82
    • 2.4.5 chooseTargets的调用83
    • 2.4.6 BlockPlacementPolicyWithNodeGroup继承类84
    • 2.4.7 副本放置策略的结果验证85
    • 2.5 HDFS内部的认证机制85
    • 2.5.1 BlockToken认证85
    • 2.5.2 HDFS的Sasl认证91
    • 2.5.3 BlockToken认证与HDFS的Sasl认证对比97
    • 2.6 HDFS内部的磁盘目录服务98
    • 2.6.1 HDFS的三大磁盘目录检测扫描服务98
    • 2.6.2 DiskChecker:坏盘检测服务99
    • 2.6.3 DirectoryScanner:目录扫描服务104
    • 2.6.4 VolumeScanner:磁盘目录扫描服务110
    • 2.7 小结116
    • 第3章 HDFS的新颖功能特性117
    • 3.1 HDFS视图文件系统:ViewFileSystem117
    • 3.1.1 ViewFileSystem: 视图文件系统118
    • 3.1.2 ViewFileSystem内部实现原理119
    • 3.1.3 ViewFileSystem的使用125
    • 3.2 HDFS的Web文件系统:WebHdfsFileSystem126
    • 3.2.1 WebHdfsFileSystem的REST API操作127
    • 3.2.2 WebHdfsFileSystem的流程调用129
    • 3.2.3 WebHdfsFileSystem执行器调用130
    • 3.2.4 WebHDFS的OAuth2认证133
    • 3.2.5 WebHDFS的使用135
    • 3.3 HDFS数据加密空间:Encryption zone136
    • 3.3.1 Encryption zone原理介绍136
    • 3.3.2 Encryption zone源码实现136
    • 3.3.3 Encryption zone的使用144
    • 3.4 HDFS纠删码技术145
    • 3.4.1 纠删码概念145
    • 3.4.2 纠删码技术的优劣势146
    • 3.4.3 Hadoop纠删码概述147
    • 3.4.4 纠删码技术在Hadoop中的实现148
    • 3.5 HDFS对象存储:Ozone152
    • 3.5.1 Ozone介绍153
    • 3.5.2 Ozone的高层级设计154
    • 3.5.3 Ozone的实现细节157
    • 3.5.4 Ozone的使用157
    • 3.6 小结158
    • 第二部分 细节实现篇
    • 第4章 HDFS的块处理160
    • 4.1 HDFS块检查命令fsck160
    • 4.1.1 fsck参数使用160
    • 4.1.2 fsck过程调用161
    • 4.1.3 fsck原理分析162
    • 4.1.4 fsck使用场景171
    • 4.2 HDFS如何检测并删除多余副本块171
    • 4.2.1 多余副本块以及发生的场景172
    • 4.2.2 OverReplication多余副本块处理172
    • 4.2.3 多余副本块清除的场景调用177
    • 4.3 HDFS数据块的汇报与处理179
    • 4.3.1 块处理的五大类型179
    • 4.3.2 toAdd:新添加的块181
    • 4.3.3 toRemove:待移除的块184
    • 4.3.4 toInvalidate:无效的块186
    • 4.3.5 toCorrupt:损坏的块189
    • 4.3.6 toUC:正在构建中的块191
    • 4.4 小结193
    • 第5章 HDFS的流量处理194
    • 5.1 HDFS的内部限流194
    • 5.1.1 数据的限流194
    • 5.1.2 DataTransferThrottler限流原理196
    • 5.1.3 数据流限流在Hadoop中的使用198
    • 5.1.4 Hadoop限流优化点202
    • 5.2 数据平衡204
    • 5.2.1 Balancer和Dispatcher204
    • 5.2.2 数据不平衡现象207
    • 5.2.3 Balancer性能优化207
    • 5.3 HDFS节点内数据平衡210
    • 5.3.1 磁盘间数据不平衡现象及问题211
    • 5.3.2 传统的磁盘间数据不平衡解决方案211
    • 5.3.3 社区解决方案:DiskBalancer212
    • 5.4 小结216
    • 第6章 HDFS的部分结构分析217
    • 6.1 HDFS镜像文件的解析与反解析217
    • 6.1.1 HDFS的FsImage镜像文件218
    • 6.1.2 FsImage的解析218
    • 6.1.3 FsImage的反解析221
    • 6.1.4 HDFS镜像文件的解析与反解析命令226
    • 6.2 DataNode数据处理中心DataXceiver227
    • 6.2.1 DataXceiver的定义和结构228
    • 6.2.2 DataXceiver下游处理方法232
    • 6.2.3 ShortCircuit232
    • 6.2.4 DataXceiver的上游调用233
    • 6.2.5 DataXceiver与DataXceiverServer234
    • 6.3 HDFS邻近信息块:BlockInfoContiguous235
    • 6.3.1 triplets对象数组236
    • 6.3.2 BlockInfoContiguous的链表操作239
    • 6.3.3 块迭代器BlockIterator244
    • 6.4 小结246
    • 第三部分 解决方案篇
    • 第7章 HDFS的数据管理248
    • 7.1 HDFS的读写限流方案248
    • 7.1.1 限流方案实现要点以及可能造成的影响248
    • 7.1.2 限流方案实现249
    • 7.1.3 限流测试结果250
    • 7.2 HDFS数据资源使用量分析以及趋势预测250
    • 7.2.1 要获取哪些数据251
    • 7.2.2 如何获取这些数据251
    • 7.2.3 怎么用这些数据254
    • 7.3 HDFS数据迁移解决方案257
    • 7.3.1 数据迁移使用场景257
    • 7.3.2 数据迁移要素考量258
    • 7.3.3 HDFS数据迁移解决方案:DistCp259
    • 7.3.4 DistCp优势特性260
    • 7.3.5 Hadoop DistCp命令264
    • 7.3.6 DistCp解决集群间数据迁移实例265
    • 7.4 DataNode迁移方案265
    • 7.4.1 迁移方案的目标266
    • 7.4.2 DataNode更换主机名、ip地址时的迁移方案267
    • 7.5 HDFS集群重命名方案268
    • 7.6 HDFS的配置管理方案271
    • 7.6.1 HDFS配置管理的问题271
    • 7.6.2 现有配置管理工具272
    • 7.6.3 运用Git来做配置管理272
    • 7.7 小结273
    • 第8章 HDFS的数据读写274
    • 8.1 DataNode引用计数磁盘选择策略274
    • 8.1.1 HDFS现有磁盘选择策略274
    • 8.1.2 自定义磁盘选择策略279
    • 8.2 Hadoop节点“慢磁盘”监控282
    • 8.2.1 慢磁盘的定义以及如何发现282
    • 8.2.2 慢磁盘监控284
    • 8.3 小结287
    • 第9章 HDFS的异常场景288
    • 9.1 DataNode慢启动问题288
    • 9.1.1 DataNode慢启动现象288
    • 9.1.2 代码追踪分析290
    • 9.1.3 参数可配置化改造293
    • 9.2 Hadoop中止下线操作后大量剩余复制块问题295
    • 9.2.1 节点下线操作的含义及问题295
    • 9.2.2 死节点“复活”297
    • 9.2.3 Decommission下线操作如何运作299
    • 9.2.4 中止下线操作后移除残余副本块解决方案303
    • 9.3 DFSOutputStream的DataStreamer线程泄漏问题306
    • 9.3.1 DFSOutputStream写数据过程及周边相关类、变量306
    • 9.3.2 DataStreamer数据流对象307
    • 9.3.3 ResponseProcessor回复获取类311
    • 9.3.4 DataStreamer与DFSOutputStream的关系313
    • 9.3.5 Streamer线程泄漏问题316
    • 9.4 小结319
    • 附录 如何向开源社区提交自己的代码320

    上一篇:Druid实时大数据分析原理与实践  下一篇:Python并行编程参考手册

    展开 +

    收起 -

    码小辫二维码
     

    Hadoop相关电子书
    学习笔记
    网友NO.347082

    Hadoop 中 HBase Shell命令的详解

    Hadoop 中 HBase Shell命令的详解 HBase包含可以与HBase进行通信的Shell。 HBase使用Hadoop文件系统来存储数据。所有这些任务发生在HDFS。下面给出的是一些由 常用的HBase Shell命令。 数据操纵语言 命令 说明 命令表达式 create 创建一个表 create '表名称', '列名称1','列名称2','列名称N' put 添加记录 put '表名称', '行名称', '列名称:', '值' get 查看记录 get '表名称', '行名称' count 查看表中的记录总数 count '表名称' delete 删除记录 delete '表名' ,'行名称' , '列名称' scan 查看所有数据 scan "表名称" scan 查看表某列数据 scan "表名称" , ['列名称:'] 数据定义语言 list 列出HBase的所有表 disable 禁用表 disable '表名称' is_disabled 验证表是否被禁用 is_disabled '表名称' enable 启用一个表 enable '表名称' is_enabled 验证表是否已启用 is_enabled '表名称' describe 提供了一个表的描述 describe '表名称' alter 改变一个表 exists 验证表是否存在 exists '表名称' drop 从HBase中删除表 drop '表名称' drop_all 丢弃在命令中给出匹配“regex”的表 truncate 清空整张表 truncate '表名称' deleteall 删除给定行的所有单元格 deleteall '表名称','行名称' 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! ……

    网友NO.878765

    Hadoop之NameNode Federation知识点总结

    一. 前言 1.NameNode架构的局限性 (1)Namespace(命名空间)的限制 由于NameNode在内存中存储所有的元数据(metadata),因此单个NameNode所能存储的对象(文件+块)数目受到NameNode所在JVM的heap size的限制。50G的heap能够存储20亿(200million)个对象,这20亿个对象支持4000个DataNode,12PB的存储(假设文件平均大小为40MB)。随着数据的飞速增长,存储的需求也随之增长。单个DataNode从4T增长到36T,集群的尺寸增长到8000个DataNode。存储的需求从12PB增长到大于100PB。 (2)隔离问题 由于HDFS仅有一个NameNode,无法隔离各个程序,因此HDFS上的一个实验程序就很有可能影响整个HDFS上运行的程序。 (3)性能的瓶颈 由于是单个NameNode的HDFS架构,因此整个HDFS文件系统的吞吐量受限于单个NameNode的吞吐量。 2.HDFS Federation架构设计,如图所示 能不能有多个NameNode HDFS Federation架构设计 二.实现 NameNode HA是为了解决NameNode可用性的问题,而NameNode Federation则主要是为了解决NameNode扩展性,隔离性,以及单个NameNode性能方面的问题。NameNode Federation架构如下: NameNode Federation使用了多个命名空间,这些命名空间互相独立,自制(其实是对元数据的水平切分),而集群中所有DataNode向所有NameNode都进行注册,而一个块池(block pool)有属于同一个命名空间的数据块组成,……

    网友NO.811474

    Hadoop MultipleOutputs输出到多个文件中的实现方法

    Hadoop MultipleOutputs输出到多个文件中的实现方法 1.输出到多个文件或多个文件夹: 驱动中不需要额外改变,只需要在MapClass或Reduce类中加入如下代码 private MultipleOutputsText,IntWritable mos;public void setup(Context context) throws IOException,InterruptedException { mos = new MultipleOutputs(context);}public void cleanup(Context context) throws IOException,InterruptedException { mos.close();} 然后就可以用mos.write(Key key,Value value,String baseOutputPath)代替context.write(key, value); 在MapClass或Reduce中使用,输出时也会有默认的文件part-m-00*或part-r-00*,不过这些文件是无内容的,大小为0. 而且只有part-m-00*会传给Reduce。 注意:multipleOutputs.write(key, value, baseOutputPath)方法的第三个函数表明了该输出所在的目录(相对于用户指定的输出目录)。 如果baseOutputPath不包含文件分隔符“/”,那么输出的文件格式为baseOutputPath-r-nnnnn(name-r-nnnnn); 如果包含文件分隔符“/”,例如baseOutputPath=“029070-99999/1901/part”,那么输出文件则为029070-99999/1901/part-r-nnnnn 2.案例-需求 需求,下面是有些测试数据,要对这些数据按类目输出到output中: 1512,iphone5s,4英寸,指纹识别,A7处理器,64位,M7协处理器,低功耗1512,iphone5,4英寸,A6处理器,IOS71512,iphone4s,3.5英寸,A5处理器,双核,经典50019780,ipad,9.7英寸,retina屏幕,丰富的应用50019780,yoga,联想,待机……

    网友NO.486553

    Hadoop多Job并行处理的实例详解

    Hadoop多Job并行处理的实例详解 有关Hadoop多Job任务并行处理,经过测试,配置如下: 首先做如下配置: 1、修改mapred-site.xml添加调度器配置: property namemapred.jobtracker.taskScheduler/name valueorg.apache.hadoop.mapred.FairScheduler/value/property 2、添加jar文件地址配置: property namehadoopTest.jar/name value所生成jar的地址/value/property Java基本代码如下: // 获取各个Job,有关Job的创建,这里就不贴上来了。Job job_base = (Job) 。。。;Job job_avg = (Job) 。。。;Job job_runCount = (Job) 。。。;Job job_activeUser = (Job) ....;job_base.setJarByClass(CapuseDateTimerTask.class);job_avg.setJarByClass(CapuseDateTimerTask.class);job_runCount.setJarByClass(CapuseDateTimerTask.class);job_activeUser.setJarByClass(CapuseDateTimerTask.class);// 执行完job_base才开始并行以下三个Job;if (job_base.waitForCompletion(true)) {FileUtil.hdfsFileHandle(jobBase);// 并行Jobjob_avg.submit();job_runCount.submit();job_activeUser.submit();}boolean bln1 = job_avg.isComplete();boolean bln2 = job_runCount.isComplete();boolean bln3 = job_activeUser.isComplete();// 计算Job是否完成while (!bln1 || !bln2 || !bln3) {bln1 = job_avg.isComplete();bln2 = job_runCount.isComplete();bln3 = job_activeUser.isComplete();} 最后将这些代码组装至Main方法,使用Hadoop执行命令运行: hadoop jar jar包名称 方法入口所在的类 如: hadoop jar hadoopTest.jar ch03.test Test 可以通过50……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明