todd的hadoop world的ppt笔记
- - 蓝色时分todd的ppt是本次hadoop world大会上的亮点. 之前知道他让hdfs随机读性能提升了2-3倍. (都是ppt上翻译过来再加上理解的). IO cache上的改进:
1 增加了预读,避免大量随机seek,对mapreduce这样的只读一次数据的应用很有效
2 去掉了write在OS层面的cache,因为对map reduce来说这是不必要的
3 脏页数据立即刷新.
IO cache上的改进: 1 增加了预读,避免大量随机seek,对mapreduce这样的只读一次数据的应用很有效 2 去掉了write在OS层面的cache,因为对map reduce来说这是不必要的 3 脏页数据立即刷新。因为mapreduce会产生大量脏页,为避免OS进行脏页刷新时的block而做的改进 效果: 1 cpu利用率更加平滑 2 磁盘利用率上升
mapreduce中sort的提升: 1 cache提升:使用指针的前4个字节进行比较,让cpu可以cache更多的内容 2 writableComparator.compareBytes让cpu的利用率不高,换用sun.misc.Unsafe中的类似方法 效果: 1TB排序的速度快了20-30%
mapreduce中调度的改进 1 tt的心跳3秒一次,改成了在小集群中0.3秒一次 2 tt的心跳一次只接收一台机器,改成了一次接收多台机器 3 对小job进行优化,对每个job结束阶段的心跳进行特殊处理,让小job提前分配 效果: 小job的最小延迟缩短一倍,每秒能调度的任务提高10倍
hdfs中cpu的改进: 原先消耗了30%-50%的cpu时间在checksum上 1 将每次对512字节做checksum改为了64k字节 2 crc32的校验算法改为了crc32c算法(该sse指令会快出10倍) 效果: 随机读的响应延迟下降一倍 随机读和顺序读的cpu消耗下降1-1.5倍
hdfs随机读 每次要新建连接,有过多的tcp握手 1 把socket缓存住,类似keepalive 2 重写了BlockReader,消除一些数据拷贝 3 消除了在FSDataset类上的锁争夺 效果: 随机读的吞吐量提长了2.5-3倍 hbase随机读的tps提升了33%
mapreduce2中shuffle的改进: 1 自动修改io.sort.record.percent的值 2 reducer在一个tcp连接上获取多个map的输出值 3 shuffle的server用netty来重写了 效果:shuffle有30%的吞吐量提升