hadoop权威指南阅读(二)

本文探讨了Hadoop集群中的文件压缩技术及其对存储和传输效率的影响,分析了gzip格式的局限性,对比了Text类型与Writable类型的特性,并介绍了Hadoop序列化机制。此外还深入解析了JobTracker与TaskTracker的心跳机制、Map任务的数据处理流程及Reduce任务的工作原理。

1、文件压缩对于hadoop集群来说有很大的好处,1可以减少磁盘存储文件空间 2.可以加速数据网络和磁盘上的传输速度。

在集群中需要权衡压缩和解压缩的时间,hadoop有不同的解压缩方法需要权衡一下 见第四章压缩。

2、gzip格式压缩不支持分片,这样会失去Map数据的本地性,大大降低了执行效率。

3、Text类型一般认为是Writable的替代类型,但并不是一个好的替代 1、他不支持超过32767的字节编码,2 它使用的是UTF-8版本修订的。

4、writeable类型底层实现了序列化和comparable接口 这样 在序列化完成之后,他会调用comparable进行比较按照大到小的顺序。

5、尽管大多数MR程序使用Writeable类型的键和值但这并不是MR api强制的,事实上可以使用任何类型,只要能够实现类型的的二进制流的转换就可以。为实现这一功能 hadoop有自己的机制serialization.,它定义了从类型到Serializer实例将对象转换为字节流的和Deserializer实例将字节流转换为对象的映射方式。

6、jobtracker和tasktracker之间是有心跳通信的,通常最小是5秒,不过也要根据集群的规模而定,

7、map的过程并不是简简单单将数据写入磁盘,他利用缓冲的方式写到内存中,并处于效率的考虑进行预先排序,默认情况下每个map任务都有一个环形缓冲区,缓冲区的默认值大小是100m可以有io.sort.mb调整该值的属性,一旦缓冲区的的内容达到阀值的80%,一个后台线程调用spill方法将内容写入到磁盘中,map会产生阻塞直到写磁盘过程完成。这样有什么好处呢,这样的话就可以避免当文件很小时直接在内存中取了,效率更高。

8、在R阶段R任务需要在集群上若干个map任务的输出作为特殊的分区文件,由于每个任务完成的可能不同,因此只要有一个任务完成,R任务就会开始复制,这是复制阶段,R任务有少量的复制线程,默认值是5个,因此能够并行取得map输出。

转载于:https://my.oschina.net/u/1169079/blog/221871

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值