Hadoop权威指南(第4版)笔记一

Hadoop尽量在计算节点上存数据,以实现数据的快速访问,即数据本地化(data locatily)。

MapReduce 三大设计目标:

1:为只需要短短几分钟或数小时就能完成的任务设计。

2:运行于同一个内部有高速网络连接的数据中心。

3:数据中心的计算机都是可靠的,专门的硬件。

Map任务的三种可能:

a,本地数据,本地运行;

    即在存储有输入数据(HDFS中的数据)的节点运行map任务,无需使用宝贵的集群带宽资源,可获得最佳性能(数据本地化优化)。

b,本地节点,本地机架运行;

    即存储数据副本的所有机器均有其他map任务未执行完,且当前机架有空闲map槽来运行。

c:本地数据,跨机架运行

   即存储数据副本的所有机器均有其他map任务未执行完,且当前机架无空闲map槽来运行,需到其他机架寻找map槽来运行,这将导致机架与机架之间的网络传输。

HDFS:

HDFS以流式数据访问模式来存储超大文件,运行于商用硬件上。

1.超大文件:数百GB,TB,PB级

2.流式数据访问:hdfs构建思路:一次写入,多次读取是最高效的访问模式。

3.商用硬件:即普通商店即可买到的硬件设施。

4.低延时的数据访问:低延时不适用于在HDFS上运行,HDFS是以高数据吞吐量应用优化的,这可能以提高时间延时为代价。低延时HBase是更好的选择。

5.多用户写入,任意修改文件:HDFS只支持单用户以“只添加”的方式在文件末尾写数据,且不支持多用户同时写操作,也不支持在文件任意位置进行修改。

HDFS中的数据块:HDFS文件系统默认块大小128M,但HDFS中小于块大小的文件不会占据整个块空间(如,1M的文件存储在128M块中时,文件只会占用1M的磁盘空间,而非12M)。

Q:HDFS中的块为什么这么大?是不是块越大越好?

A:块大的目的主要是最小化寻址开销,如果块足够大,从磁盘传输数据的时间明显大于寻址时间,因此,传输一个由多个块组成的文件的时间主要取决于磁盘传输速率。寻址时间控制在传输时间的1%为佳。块不是越大越好,如果块设置的过大MapReduce中的Map任务通常只处理一个块中的数据,因此如果任务数太少(少于集群中节点数),作业的运行速率就会比较慢。

分布式文件系统的块抽象的好处:

    一:一个文件的大小可以大于网络中任意一个磁盘容量

    二:大大简化了存储子系统的设计,如分块数据和元数据管理。

    三:非常适用于数据备份进而提供数据容错性和高可用性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值