二、Hadoop权威指南学习(HDFS)

Hadoop distributed filesystem:以流式数据访问模式来存储超大文件。一次写入、多次读取。

  • 流式数据访问  每次读取都将涉及到数据集的大部分数据甚至全部。(为了读取很大的文件)
  • 商用硬件
  • 低时间延迟  不适合在HDFS上运行,HDFS是为搞数据吞吐量应用优化的,这可能会以提高实践延迟为代价。HBase更适合低延迟访问需求。
  • 大量小文件 无法高效的存储大量小文件
  • 多用户写入,任意修改文件  HDFS只支持单个写入者,写操作是以“只添加”方式在文件末尾写数据。以后可能会支持多用户写入这些操作

rack:机架

一个黄色框框是一个服务器,绿色框框代表一个datanode

hdfs架构图

协议详述tpc,http,rpc等:https://www.cnblogs.com/csuliujia/p/10139374.html

hdfs各工作流程机制(带图):https://www.cnblogs.com/xuanku/p/hdfs.html

一、数据块:

文件系统块一般为几千字节,而磁盘块一般为512字节,(现在是4k)。

HDFS中的块(block)默认为128MB,HDFS中小于一个块大小的文件不会占据整个块空间(与单一磁盘的文件系统不同)

包括两个文件,一个数据本身,一个元数据(数据长度,块数据的校验和,以及时间戳)

HDFS的块大的目的是为了最小化寻址开销。但块的大小也不会设置的过大,MapReduce中map任务通常一次只处理一个块中的数据,因此如果任务数太少,作业的运行速度就会比较慢。

对HDFS中块进行抽象的好处:一个文件的大小可以大于网络中任意一个磁盘的容量。文件的所有块并不需要存储在同一个磁盘上;实用抽象块而非整个文件作为存储单元,大大简化了存储子系统的设计。1.简化存储管理,由于快的大小是固定的,计算单个磁盘能存储多少个块就相对容易;2.消除了对元数据的顾虑,块只是存储大块数据,而文件的元数据,如权限信息,并不需要与块一起存储;3.提高了数据容错能力和可用性,将每个块复制到少数几个物理上相互独立的机器上(默认3个),可以确保数据不会丢失。

fsck指令可以显示块信息

二、节点

namecode和datanode

namenode管理文件系统的命名空间(namespace),维护文件系统树一级所有的文件和目录。记录每个文件中各个块所在的数据节点信息,但不永久存储块的位置信息,因为这些信息会在系统启动时根据数据节点信息重建。

周期性地从集群中的每个datanode接受心跳信号(块正常工作)和块状态报告(所有数据块的列表)

元数据:镜像文件Fsimage+日志文件Edits

元数据细节 可见 -->> https://blog.csdn.net/qq_33624952/article/details/79341477

客户端(client)代表用户通过与namenode和datanode交互来访问整个文件系统。

datanode是文件系统的工作节点。根据需要存储并检索数据块,定期向namenode发送他们所存储的块的列表。

namenode容错机制:

1.备份那些组成系统系统元数据持久状态的文件。一般的配置是,将持久状态些人本地磁盘的同时,写入一个远程挂载的网络文件系统(NFS)

2.运行一个辅助namenode,定期合并编辑日志与命名空间镜像。但发生故障时,辅助保存的状态总是滞后于主节点,这时一般把NFS上namenode元数据复制到辅助namenode上并作为新的主namenode运行。

(3)热备份namenode代替namenode,避免冷启动问题。因为新的namenode需要:1.将命名空间的镜像导入内存中;2.重演编辑日志;3.接收到足够多的来自datanode的数据块报告并退出安全模式。一般需要30min以上的时间。

三、块缓存

通常datanode从磁盘中读取块,对于访问频繁的文件,其对应的块可能被显式地缓存在datanode的内存中,以堆外块缓存(off-heap block cache)的形式存在。默认情况下,一个块仅缓存在一个datanode的内存中。

四、联邦HDFS

每个namenode维护一个命名空间卷(namespace volume),由命名空间的元数据(metadata 描述数据的数据, 文件名称 大小 所属人 地址 128k)和一个数据块池(block pool)组成,数据块池包含该命名空间下文件的所有数据块。namespace volume之间相互独立,数据块池不再进行切分,因此集群中的datanode需要注册到每个namenode中。

 

 

 

内容简介   本书从Hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍Hadoop这一高性能处理海量数据集的理想工具。全书共16章,3个附录,涉及的主题包括:Haddoop简介;MapReduce简介;Hadoop分布式文件系统;Hadoop的I/O、MapReduce应用程序开发;MapReduce的工作机制;MapReduce的类型和格式;MapReduce的特性;如何构建Hadoop集群,如何管理Hadoop;Pig简介;Hbase简介;Hive简介;ZooKeeper简介;开源工具Sqoop,最后还提供了丰富的案例分析。   本书是Hadoop权威参考,程序员可从中探索如何分析海量数据集,管理员可以从中了解如何安装与运行Hadoop集群。 目录 第1章 初识Hadoop  数据!数据!  数据存储与分析  与其他系统相比  关系型数据库管理系统  网格计算  志愿计算  1.3.4 Hadoop 发展简史  Apache HadoopHadoop生态圈 第2章 关于MapReduce  一个气象数据集  数据的格式  使用Unix工具进行数据分析  使用Hadoop分析数据  map阶段和reduce阶段  横向扩展  合并函数  运行一个分布式的MapReduce作业  Hadoop的Streaming  Ruby版本  Python版本  Hadoop Pipes  编译运行 第3章 Hadoop分布式文件系统  HDFS的设计  HDFS的概念  数据块  namenode和datanode  命令行接口  基本文件系统操作  Hadoop文件系统  接口  Java接口  从Hadoop URL中读取数据  通过FileSystem API读取数据  写入数据  目录  查询文件系统  删除数据  数据流  文件读取剖析  文件写入剖析  一致模型  通过 distcp并行拷贝  保持 HDFS 集群的均衡  Hadoop的归档文件  使用Hadoop归档文件  不足 第4章 Hadoop I/O  数据完整性  HDFS的数据完整性  LocalFileSystem  ChecksumFileSystem  压缩  codec  压缩和输入切分  在MapReduce中使用压缩  序列化  Writable接口  Writable类  实现定制的Writable类型  序列化框架  Avro  依据文件的数据结构  写入SequenceFile  MapFile 第5章 MapReduce应用开发  配置API  合并多个源文件  可变的扩展  配置开发环境  配置管理  辅助类GenericOptionsParser,Tool和ToolRunner  编写单元测试  mapper  reducer  本地运行测试数据  在本地作业运行器上运行作业  测试驱动程序  在集群上运行  打包  启动作业  MapReduce的Web界面  获取结果  作业调试  使用远程调试器  作业调优  分析任务  MapReduce的工作流  将问题分解成MapReduce作业  运行独立的作业 第6章 MapReduce的工作机制  剖析MapReduce作业运行机制  作业的提交  作业的初始化  任务的分配  任务的执行  进度和状态的更新  作业的完成  失败  任务失败  tasktracker失败  jobtracker失败  作业的调度  Fair Scheduler  Capacity Scheduler  shuffle和排序  map端  reduce端  配置的调优  任务的执行  推测式执行  重用JVM  跳过坏记录  任务执行环境 第7章 MapReduce的类型与格式  MapReduce的类型  默认的MapReduce作业  输入格式  输入分片与记录  文本输入  进制输入  多种输入  数据库输入(和输出)  输出格式  文本输出  进制输出  多个输出  延迟输出  数据库输出 第8章 MapReduce的特性  计数器  内置计数器  用户定义的Java计数器  用户定义的Streaming计数器  排序  准备  部分排序  总排序  次排序  联接  map端联接  reduce端联接  边数据分布  利用JobConf来配置作业  分布式缓存  MapReduce库类 第9章 构建Hadoop集群  集群规范  网络拓扑  集群的构建和安装  安装Java  创建Hadoop用户  安装Hadoop  测试安装  SSH配置  Hadoop配置  配置管理  环境设置  Hadoop守护进程的关键属性  Hadoop守护进程的地址和端口  Hadoop的其他属性  创建用户帐号  安全性  Kerberos和Hadoop  委托令牌  其他安全性改进  利用基准测试程序测试Hadoop集群  Hadoop基准测试程序  用户的作业  云上的Hadoop  Amazon EC2上的Hadoop 第10章 管理Hadoop  HDFS  永久性数据结构  安全模式  日志审计  工具  监控  日志  度量  Java管理扩展(JMX)  维护  日常管理过程  委任节点和解除节点  升级 第11章 Pig简介  安装与运行Pig  执行类型  运行Pig程序  Grunt  Pig Latin编辑器  示例  生成示例  与数据库比较  PigLatin  结构  语句  表达式  1.4.4 类型  模式  函数  用户自定义函数  过滤UDF  计算UDF  加载UDF  数据处理操作  加载和存储数据  过滤数据  分组与连接数据  对数据进行排序  组合和分割数据  Pig实战  并行处理  参数代换 第12章 Hive  1.1 安装Hive  1.1.1 Hive外壳环境  1.2 示例  1.3 运行Hive  1.3.1 配置Hive  1.3.2 Hive服务  1.3.3 Metastore  1.4 和传统数据库进行比较  1.4.1 读时模式(Schema on Read)vs.写时模式(Schema onWrite)  1.4.2 更新、事务和索引  1.5 HiveQL  1.5.1 数据类型  1.5.2 操作和函数  1.6 表  1.6.1 托管表(Managed Tables)和外部表(External Tables)  1.6.2 分区(Partitions)和桶(Buckets)  1.6.3 存储格式  1.6.4 导入数据  1.6.5 表的修改  1.6.6 表的丢弃  1.7 查询数据  1.7.1 排序(Sorting)和聚集(Aggregating)  1.7.2 MapReduce脚本  1.7.3 连接  1.7.4 子查询  1.7.5 视图(view)  1.8 用户定义函数(User-Defined Functions)  1.8.1 编写UDF  1.8.2 编写UDAF 第13章 HBase  2.1 HBasics  2.1.1 背景  2.2 概念  2.2.1 数据模型的“旋风之旅”  2.2.2 实现  2.3 安装  2.3.1 测试驱动  2.4 客户机  2.4.1 Java  2.4.2 Avro,REST,以及Thrift  2.5 示例  2.5.1 模式  2.5.2 加载数据  2.5.3 Web查询  2.6 HBase和RDBMS的比较  2.6.1 成功的服务  2.6.2 HBase  2.6.3 实例:HBase在Streamy.com的使用  2.7 Praxis  2.7.1 版本  2.7.2 HDFS  2.7.3 用户接口(UI)  2.7.4 度量(metrics)  2.7.5 模式设计  2.7.6 计数器  2.7.7 批量加载(bulkloading) 第14章 ZooKeeper  安装和运行ZooKeeper  示例  ZooKeeper中的组成员关系  创建组  加入组  列出组成员  ZooKeeper服务  数据模型  操作  实现  一致性  会话  状态  使用ZooKeeper来构建应用  配置服务  具有可恢复性的ZooKeeper应用  锁服务  生产环境中的ZooKeeper  可恢复性和性能  配置 第15章 开源工具Sqoop  获取Sqoop  一个导入的例子  生成代码  其他序列化系统  深入了解数据库导入  导入控制  导入和一致性  直接模式导入  使用导入的数据  导入的数据与Hive  导入大对象  执行导出  深入了解导出  导出与事务  导出和SequenceFile 第16章 实例分析  Hadoop 在Last.fm的应用  Last.fm:社会音乐史上的革命  Hadoop a Last.fm  用Hadoop产生图表  Track Statistics程序  总结  Hadoop和Hive在Facebook的应用  概要介绍  Hadoop a Facebook  假想的使用情况案例  Hive  问题与未来工作计划  Nutch 搜索引擎  背景介绍  数据结构  Nutch系统利用Hadoop进行数据处理的精选实例  总结  Rackspace的日志处理  简史  选择Hadoop  收集和存储  日志的MapReduce模型  关于Cascading  字段、元组和管道  操作  Tap类,Scheme对象和Flow对象  Cascading实战  灵活性  Hadoop和Cascading在ShareThis的应用  总结  在Apache Hadoop上的TB字节数量级排序  使用Pig和Wukong来探索10亿数量级边的 网络图  测量社区  每个人都在和我说话:Twitter回复关系图  degree(度)  对称链接  社区提取 附录A 安装Apache Hadoop  先决条件  安装  配置  本机模式  伪分布模式  全分布模式 附录B Cloudera’s Distribution for Hadoop 附录C 准备NCDC天气数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值