一、基础环境

基础环境: centos6.8
ambari版本: 2.2.1
HDP版本: 2.3.2.0
HDP的默认配置文件:(本文以ambari-2.2.1为例):
配置文件目录:/usr/hdp/2.3.2.0-2950/hadoop/src/hadoop-common-project/hadoop-common/src/main/resources/
core-default.xml
配置文件目录:/usr/hdp/2.3.2.0-2950/hadoop/src/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/
hdfs-default.xml
配置文件目录:/usr/hdp/2.3.2.0-2950/hadoop/src/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/resources/
mapred-default.xml
ambari优先调用配置文件:
配置文件目录(可web界面配置):/usr/hdp/2.3.2.0-2950/hadoop/conf
core-site.xml
hdfs-site.xml
mapred-site.xml
说明:
参数名称更新:例如原来的mapred.reduce.tasks更新为mapreduce.job.reduces,这两个参数都可以使用,只是使用第一个参数时会提示升级(本文使用新参数)。
ambari调用/usr/hdp/2.3.2.0-2950/hadoop/conf下面的配置文件,其他参数使用默认的(本文的调优值都是在web界面操作),配置完成后重启组件后可以在All Applications里面的tools查看Configuration是否配置生效。

二、操作系统调优

1.内核默认参数调优

# cat /etc/sysctl.conf

##内核默认参数
kernel.sysrq = 0
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
##打开文件数参数(20*1024*1024)
fs.file-max= 20971520
##WEB Server参数
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_keepalive_time=1200
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_rmem=4096 87380 8388608
net.ipv4.tcp_wmem=4096 87380 8388608
net.ipv4.tcp_max_syn_backlog=8192
net.ipv4.tcp_max_tw_buckets = 5000
##TCP补充参数
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_window_scaling = 1
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 262144
net.core.somaxconn = 65535
net.ipv4.tcp_max_orphans = 3276800
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_mem = 94500000 915000000 927000000
##swap使用率优化
vm.swappiness=0

三、HDFS参数调优

1. core-default.xml 配置(优先设置core-site.xml) :

hadoop.tmp.dir (core-default.xml):

默认值: /tmp/hadoop-${user.name}
说明: 默认存在了里系统的默认临时文件/tmp里。如果服务器是多磁盘的,每个磁盘都设置一个临时文件目录,这样便于mapreduce或者hdfs等使用的时候提高磁盘IO效率。
fs.trash.interval (core-site.xml):

默认值:0
调优值:360
说明: 这个是开启hdfs文件删除自动转移到垃圾箱的选项,值为垃圾箱文件清除时间。
io.file.buffer.size (core-site.xml):

默认值:4096
调优值:131072
说明:SequenceFiles在读写中可以使用的缓存大小,可减少 I/O 次数。在大型的 Hadoop cluster,建议可设定为 65536 到 131072。

2. hdfs-default.xml配置(优先设置hdfs-site.xml):

dfs.blocksize (hdfs-default.xml):

默认值:134217728
说明: 这个就是hdfs里一个文件块的大小了,ambari中默认128M。太大的话会有较少map同时计算,太小的话也浪费可用map个数资源,而且文件太小namenode就浪费内存多,根据需要进行设置。
dfs.namenode.handler.count (hdfs-default.xml):

默认值:10
说明:设定 namenode server threads 的数量,这些 threads 會用 RPC 跟其他的 datanodes 沟通。当 datanodes 数量太多时会发現很容易出現 RPC timeout,解決方法是提升网络速度或提高这个值,但要注意的是 thread 数量多也表示 namenode 消耗的内存也随着增加

四、 MapReduce参数调优

mapred-default.xml(优先设置mapred-site.xml):
mapreduce.job.reduces (mapred-default.xml):

默认值:1
说明:默认启动的reduce数。通过该参数可以手动修改reduce的个数。
mapreduce.map.memory.mb (mapred-site.xml):

默认值:1024
调优值:16384
一个Map Task可使用的资源上限(单位:MB),如果Map Task实际使用的资源量超过该值,则会被强制杀死。
mapreduce.reduce.memory.mb (mapred-site.xml):

默认值:1024
调优值:6114
一个Reduce Task可使用的资源上限(单位:MB),如果Reduce Task实际使用的资源量超过该值,则会被强制杀死。
mapreduce.map.cpu.vcores (mapred-default.xml):

默认值:1
每个map task可使用的最多cpu core数目
mapreduce.reduce.cpu.vcores (mapred-default.xml):

默认值:1
每个reduce task可使用的最多cpu core数目
mapreduce.task.io.sort.factor (mapred-site.xml):

默认值:10
调优值:100
说明:Reduce Task中合并小文件时,一次合并的文件数据,每次合并的时候选择最小的前10进行合并。
mapreduce.task.io.sort.mb (mapred-site.xml):

默认值:100
调优值:2047
说明: Map Task缓冲区所占内存大小。
mapred.child.Java.opts (mapred-default.xml):

默认值:-Xmx200m
说明:jvm启动的子线程可以使用的最大内存。建议值:-Xmx512m -Xmx1024m -verbose:gc -Xloggc:/tmp/@taskid@.gc(@taskid@会被Hadoop框架自动换为相应的taskid)
mapreduce.jobtracker.handler.count (mapred-default.xml):

默认值:10
说明:JobTracker可以启动的线程数。
mapreduce.reduce.shuffle.parallelcopies (mapred-site.xml):

默认值:5
调优值:50
说明:reuduce shuffle阶段并行传输数据的数量。集群大可以增大。
mapreduce.tasktracker.http.threads (mapred-default.xml):

默认值:40
说明:map和reduce是通过http进行数据传输的,这个是设置传输的并行线程数。
mapreduce.map.output.compress (mapred-site.xml):

默认值:false
调优值:true
说明: map输出是否进行压缩,如果压缩就会多耗cpu,但是减少传输时间,如果不压缩,就需要较多的传输带宽。配合 mapreduce.map.output.compress.codec使用,默认是 org.apache.hadoop.io.compress.DefaultCodec,可以根据需要设定数据压缩方式。
mapreduce.output.fileoutputformat.compress (mapred-site.xml):

默认值:false
调优值:true
说明: map输出是否进行压缩,如果压缩就会多耗cpu,但是减少传输时间,如果不压缩,就需要较多的传输带宽。配合 mapreduce.output.fileoutputformat.compress.codec使用,默认是 org.apache.hadoop.io.compress.DefaultCodec,可以根据需要设定数据压缩方式。
mapreduce.reduce.shuffle.merge.percent (mapred-site.xml):

默认值: 0.66
说明:reduce归并接收map的输出数据可占用的内存配置百分比。类似mapreduce.reduce.shuffle.input.buffer.percen属性。
mapreduce.reduce.shuffle.memory.limit.percent (mapred-default.xml):

默认值: 0.25
说明:一个单一的shuffle的最大内存使用限制。
mapreduce.jobtracker.handler.count (mapred-default.xml):

默认值: 10
说明:可并发处理来自tasktracker的RPC请求数,默认值10。
mapreduce.job.jvm.numtasks (mapred-default.xml):

默认值: 1
说明:一个jvm可连续启动多个同类型任务,默认值1,若为-1表示不受限制。
mapreduce.tasktracker.reduce.tasks.maximum (mapred-default.xml):

默认值: 2
说明:一个tasktracker并发执行的reduce数,建议为cpu核数

ambari_HDP之mapreduce参数调优相关推荐

  1. 由美团技术文章整理---spark性能优化基础篇--开发调优与资源参数调优

    文章地址1:Spark性能优化指南--基础篇 - 美团技术团队 文章地址2:Spark性能优化指南--高级篇 - 美团技术团队 目录 一.关于性能优化基础篇--开发调优 1.避免创建重复RDD (1) ...

  2. hive优化之参数调优

    hive优化之参数调优 1.hive参数优化之默认启用本地模式 启动hive本地模式参数,一般建议将其设置为true,即时刻启用: hive (chavin)> set hive.exec.mo ...

  3. 大数据hive 参数调优

    复制于: tony~博客小屋夫学须静也,才须学也.非学无以广才,非志无以成学→_→_ 大数据:Hive常用参数调优 1.limit限制调整 一般情况下,Limit语句还是需要执行整个查询语句,然后再返 ...

  4. 开源sk-dist,超参数调优仅需3.4秒,sk-learn训练速度提升100倍

    作者 | Evan Harris 译者 | Monanfei 编辑 | Jane  出品 | AI科技大本营(ID:rgznai100) [导语]这篇文章为大家介绍了一个开源项目--sk-dist.在 ...

  5. 机器学习模型评估与超参数调优详解

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤  深圳大学,Datawhale高校群成员 机器学习分为两类 ...

  6. 超参数调优河伯、组合优化器CompBO,华为诺亚开源贝叶斯优化库

    视学算法报道 编辑:陈萍.杜伟 华为诺亚开源了一个贝叶斯优化的库,该库包含三个部分:河伯.T-LBO.CompBO. 贝叶斯优化可以说是一种黑盒优化算法,该算法用于求解表达式未知函数的极值问题.因其具 ...

  7. python minimize_简单三步实现Python脚本超参数调优(附代码)

    作者:Jakub Czakon, Neptune.ai 翻译:陈之炎 校对:和中华 本文约1500字,建议阅读5分钟. Python机器学习模型建立起来之后,如何对它的性能进行优化?按照本指南中的三个 ...

  8. R语言使用caret包构建GBM模型:在模型最优参数已知的情况下,拟合整个训练集,而无需进行任何重采样或参数调优

    R语言使用caret包构建GBM模型:在模型最优参数已知的情况下,拟合整个训练集,而无需进行任何重采样或参数调优 目录 R语言使用caret包构建GBM模型:在模型最优参数已知的情况下,拟合整个训练集 ...

  9. R语言使用caret包对GBM模型进行参数调优实战:Model Training and Parameter Tuning

    R语言使用caret包对GBM模型进行参数调优实战:Model Training and Parameter Tuning 目录 R语言使用caret包对GBM模型进行参数调优实战:Model Tra ...

最新文章

  1. python 倒计时功能怎么用print实现_python 实现倒计时功能(gui界面)
  2. (转)iOS开发资源:推送通知相关开源项目--PushSharp、APNS-PHP以及Pyapns等
  3. java+testng接口测试入门
  4. lightoj 1300 边双联通分量+交叉染色求奇圈
  5. 全栈Python 必备库
  6. 如何使用router-link对象方式传递参数?
  7. FairMOT论文详解
  8. mysql一对多查询合并多的一方的数据。
  9. ubuntu磁盘分区与挂载
  10. Php-fpm没生成sock,PHP-FPM无法生成.sock文件
  11. DSP28335 eCAP 测频
  12. 函数day_of_year 和month_day
  13. 面试中可以谎报薪资嘛?
  14. 安装CocoaPods出现错误解决方法
  15. 本地代码无问题邮件却发送失败的问题
  16. 如何在Python中安装NumPy
  17. HTML5中polygon坐标,SVG Polygon(多边形)
  18. mysql中的case when 与if else
  19. iphone 微信打开H5自动播放音乐问题
  20. 深圳大数据培训:Transformation算子演示

热门文章

  1. 【Linux CPUFreq模块】
  2. 微信小程序显示分页列表
  3. 常见的Http状态码以及其代表的意义
  4. 网约车租车平台有哪些,网约车租车平台都有哪些功能
  5. Laravel Excel实现Excel/CSV文件导入导出的功能详解(合并单元格,设置单元格样式)
  6. vs未找到导入的项目,请确认 声明中的路径正确
  7. [Android] 代码获取手机系统类型(小米MIUI、华为EMUI、魅族FLYME)
  8. 数据库的学习笔记(一)
  9. 纯css实现文字跳动的动画效果
  10. 文档控件Aspose.words for.java 授权须知