千家信息网

Hadoop 企业优化

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,1 MapReduce 跑的慢的原因2 MapReduce 优化方法MapReduce优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、数据倾斜问题和常用的调优参数。2.1
千家信息网最后更新 2026年11月02日Hadoop 企业优化

1 MapReduce 跑的慢的原因

2 MapReduce 优化方法

MapReduce优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、数据倾斜问题和常用的调优参数。

2.1 数据输入

2.2 Map 阶段

2.3 Reduce 阶段

2.4 IO 传输

2.5 数据倾斜问题

2.6 常用的调优参数

2.6.1 资源相关参数

以下参数是在用户自己的MR应用程序中配置就可以生效[mapred-default.xml]

配置参数参数说明
mapreduce.map.memory.mb一个MapTask可使用的资源上限(单位:MB),默认为1024。如果MapTask实际使用的资源量超过该值,则会被强制杀死
mapreduce.reduce.memory.mb一个ReduceTask可使用的资源上限(单位:MB),默认为1024。如果ReduceTask实际使用的资源量超过该值,则会被强制杀死
mapreduce.map.cpu.vcores每个MapTask可使用的最多cpu core数目,默认值: 1
mapreduce.reduce.cpu.vcores每个ReduceTask可使用的最多cpu core数目,默认值: 1
mapreduce.reduce.shuffle.parallelcopies每个Reduce去Map中取数据的并行数。默认值是5
mapreduce.reduce.shuffle.merge.percentBuffer中的数据达到多少比例开始写入磁盘。默认值0.66
mapreduce.reduce.shuffle.input.buffer.percentBuffer大小占Reduce可用内存的比例。默认值0.7
mapreduce.reduce.input.buffer.percent指定多少比例的内存用来存放Buffer中的数据,默认值是0.0

应该在YARN启动之前就配置在服务器的配置文件中才能生效[yarn-default.xml]

配置参数参数说明
yarn.scheduler.minimum-allocation-mb给应用程序Container分配的最小内存,默认值:1024
yarn.scheduler.maximum-allocation-mb给应用程序Container分配的最大内存,默认值:8192
yarn.scheduler.minimum-allocation-vcores每个Container申请的最小CPU核数,默认值:1
yarn.scheduler.maximum-allocation-vcores每个Container申请的最大CPU核数,默认值:32
yarn.nodemanager.resource.memory-mb给Containers分配的最大物理内存,默认值:8192

Shuffle性能优化的关键参数,应在YARN启动之前就配置好[mapred-default.xml]

配置参数参数说明
mapreduce.task.io.sort.mbShuffle的环形缓冲区大小,默认100m
mapreduce.map.sort.spill.percent环形缓冲区溢出的阈值,默认80%
2.6.2 容错相关参数(MapReduce性能优化)
配置参数参数说明
mapreduce.map.maxattempts每个Map Task最大重试次数,一旦重试参数超过该值,则认为Map Task运行失败,默认值:4
mapreduce.reduce.maxattempts每个Reduce Task最大重试次数,一旦重试参数超过该值,则认为Map Task运行失败,默认值:4
mapreduce.task.timeoutTask超时时间,经常需要设置的一个参数,该参数表达的意思为:如果一个Task在一定时间内没有任何进入,即不会读取新的数据,也没有输出数据,则认为该Task处于Block状态,可能是卡住了,也许永远会卡住,为了防止因为用户程序永远Block住不退出,则强制设置了一个该超时时间(单位毫秒),默认是600000。如果你的程序对每条输入数据的处理时间过长(比如会访问数据库,通过网络拉取数据等),建议将该参数调大,该参数过小常出现的错误提示是"AttemptID:attempt_14267829456721_123456_m_000224_0 Timed out after 300 secsContainer killed by the ApplicationMaster."

3 HDFS 小文件优化方法

3.1 HDFS 小文件弊端

HDFS 上每个文件都要在 NameNode 上建立一个索引,这个索引的大小约为 150byte,这样当小文件比较多的时候,就会产生很多的索引文件,一方面会大量占用 NameNode 的内存空间,另一方面就是索引文件过大使得索引速度变慢。

3.2 HDFS小文件解决方案

小文件的优化无非以下几种方式:

  • 在数据采集的时候,就将小文件或小批数据合成大文件再上传 HDFS。
  • 在业务处理之前,在 HDFS 上使用MapReduce程序对小文件进行合并。
  • 在 MapReduce 处理时,可采用 CombineTextInputFormat 提高效率。
参数 数据 文件 配置 内存 程序 最大 索引 资源 时间 阶段 单位 大小 应用程序 方法 比例 分配 处理 应用 强制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司华为 美国互联网科技巨头监管 互联网公司 科技公司 互联网医疗科技 互联网科技公司发展 广州宏创互联网科技 齐家互联网科技有限公司 恒生科技互联网指数分析 汉立互联网科技有限公司联系电话 华中科技有哪些互联网大佬 恒银科技与互联网金融 中国航天科技大学国际工业互联网 苏州铭阳互联网科技有限公司 浙南科技城互联网大厦建设工程 河南住房之家互联网科技 四川慕妮娅互联网科技有限公司 朱啸虎曾投资哪些互联网科技企业 沐思想互联网科技有限公司 锡山区互联网智能科技产品供应 恒生互联网科技趋势 河南云网互联网络科技有限公司 互联网的科技 互联网 科技创新 天速互联网络科技有限公司 互联网科技商业 搜狐科技互联网 互联网科技创新的路径 爱医互联网络科技 锡山区互联网智能科技产品供应 福建互联网展示科技馆设计
0