首页 > Linux操作系统 > Linux操作系统 > Hadoop 0.23 性能笔记
Cloudera 的Hadoop World上看到的这个PPT: Hadoop and Performance,介绍了一些现在0.20 和0.23 版本性能优化的技巧,这里做个笔记
Hadoop 性能误区
在cpu 热点上,我们可以使用JNI 或者sun.misc.Unsafe
我们能够集成汇编代码
每个系统都会有IO调度和文件层,那些绕开操作系统的(比如DBMS)都是为了实现移植性
HDFS/MR 的IO/Caching 实现特点
如果脏页面消耗了多余dirty_ratio 的内存,会阻止所有的写(IO会停止即使在磁盘IO没有完全利用的情况)
HDFS/MR 改进解决办法
posix_fadvice(POSIX_FADV_DONTNEED) 读完之后会丢弃
sync_file_range(SYNC_FILE_RANGE_WRITE) 将页面马上写入磁盘
(上面提到的这些好像主要都是针对MAP阶段的第一次读和MAP阶段的Spill 阶段产生的零时文件)
结果是在Terasort 减少了20%的时间. 磁盘利用率更高,CPU 使用更平滑.
MR CPU 排序改进
在字节数组并行循环方面很慢
优化:使用sun.misc.Unsafe 一次比较64个字节
CDHu2 的版本在1T排序,10节点,24G内存,6磁盘里面性能提升了大概20%左右.
MR 调度器改进
0.20.2:
TaskTracker 默认3秒一次心跳,即使对于小集群
每一次心跳分配一个任务给TT
如果一个task 运行时间小于 3*task slot , TT 会没有充分利用
0.20.205/CDH3
一次心跳分配多个任务
对于小集群将心跳减少到0.3秒(节点变多可以对应调整)
Out-of-band heartbeats on any task completion (task 完成有回调函数?还是从前面提到的多个任务中取一个运行?以后看了代码回来解释一下)
HDFS CPU 校验数据改进:
HDFS 校验每一片的输出输出
CPU消耗很多
优化:改成批量模式,一次校验64KB 的数据,而不是512字节
使用CRC32C 模式.
HDFS 随机存取
0.20.2
每一次读会重新连接DataNode
每一次创建线程和TCP 连接的消耗
0.23
客户端使用缓存的socket (跟HTTP 长连接一样) (0.23 用Netty 代替了Jetty, 目前这个功能还在性能测试证明当中)
HBase 使用模式使用一种小数量的sockets(每个region server 的datanode 只连接自己的一片?)
重写了BlockReader 消除数据复制.
FSDataset 类消除了锁竞争. (目前还没做完HDFS-1148 ,HDFS-2533)
MR2 Shuffle 改进:
删掉了io.sort.record.percent (MAPREDUCE-64)
Reduce 在一个TCP 之内取多个map 输出而不是重新连接
MR2: Shuffle现在用单独的进程,并用Netty 重写了,zero-copy sendfile .(更少CPU ,更少超时) MAPREDUCE-318
特别说明下,shuffle 已经有的几次比较大的变动. 如果各位还有其他shuffle 的改进欢迎留言
总结
Hadoop现在比以前更快
对比0.20.2 有2-3倍的随机写性能提升
更少的CPU消耗
对于shuffle 密集的任务有2倍的提升.
Random read keepalive: HDFS-941
Faster Checksum: HDFS-2080
fadvice/sync_file_range : HADOOP-7714
Faster compareBytes: HADOOP-7761
MR sort cache locality: MAPREDUCE-3235
Rewritten map-side shuffle : MAPREDUCE-64
Rewritten reduce side shuffle : MAPREDUCE-318
Hadoop World 上有一个谈到将来Hadoop 生态圈的时候,提到一个opentsdb 的专门的时间数据库也蛮有意思的,基于HBase, 但是将HBase 改成异步多线程的,专门用来做收集大量基于时间的数据点的数据库,非常适合做数据中心的监控分析,机器自动收集的信息比如GPS,温度测量之类的.
Hive 0.8 也差不多准备发布了,这次增加了bitmap index 的支持,timestamp 类型的支持,插件PDK 的开发包和JDBC 的改进(批量模式?)
参考资料:
hadoop and performance:
http://www.cloudera.com/resource/hadoop-world-2011-presentation-slides-hadoop-and-performance
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25548387/viewspace-734325/ ,如需转载,请注明出处,否则将追究法律责任。