hadoop权威指南阅读(二)

原创
2014/04/13 21:19
阅读数 127

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输出。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部