摘抄
Bios 调优检查表
- 检查硬件上所以cpu内核是否得到了充分利用;否则,可以降级cpu频率
- 启用原生命令排队模式。一般来说,可以通过BIOS中的 advanced host controller interface 选项启用NCQ模式
OS配置建议
- 选择支持EXT4 文件系统的Linux 分发包
- 默认情况下,每个读操作都会触发一个写操作。可以通过文件系统上的 noatime 禁用文件和目录的访问时间的日志
- 避免使用逻辑卷管理(LVM),它是用来管理磁盘驱动器及相似的大容易存储设备的,使用LVM 会影响磁盘的 I/O 性能
- 降低 Linux内核交换内存的值
- 尝试使用 I/O 调度器的完全平等排队(CFQ),其 I/O 操作用循环队列方式实现,且每个 I/O 操作都允许有固定的执行时间
- 提高 Linux 操作系统的最大打开文件描述符,这样可以改善MR 作业性能
Hadoop安装部署
- 低于4个节点时,可手动安装;在大型集群中部署hadoop时,推荐使用配置管理工具或自动部署工具,如Cloudera,Hortonworks,MapR等。对于部署应用,可以选择使用Yum 和 Puppet
Hadoop调优建议
- 内存
- 调整内存设置避免因内存不足引起的作业挂起
- 设置或定义 JVM 复用策略
- 校验JVM 代码缓存并在必要时增加缓存大小
- 分析垃圾收集(GC)周期(使用详细的日志),观察是否存在密集周期并检查hadoop 框架堆的利用情况
2. I / O
- 在输入数据源较大的环境中,对数据源进行压缩
- 遇到大量溢写任务时,从map 任务减少溢写记录。通过调优 io.sort.mb、io.sort.record.percent、io.sort.spill.percent 来减少溢写记录
- 压缩 Map 输出,降低 I/O 操作
- 实现 Combiner 操作 ,在代码中添加 Combiner
- 压缩 Reduce 作业输出
- 调整复制参数值