Hadoop 企业优化
发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,1 MapReduce 跑的慢的原因2 MapReduce 优化方法MapReduce优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、数据倾斜问题和常用的调优参数。2.1
千家信息网最后更新 2024年11月28日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.percent | Buffer中的数据达到多少比例开始写入磁盘。默认值0.66 |
mapreduce.reduce.shuffle.input.buffer.percent | Buffer大小占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.mb | Shuffle的环形缓冲区大小,默认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.timeout | Task超时时间,经常需要设置的一个参数,该参数表达的意思为:如果一个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安全错误
数据库的锁怎样保障安全
万方数据库个人查重
网络技术支持岗位简介
软件开发三方付款协议范本
网络安全的感知
企业外包软件开发需要交增值税吗
网络安全宣传知识竞答上线
什么密码能让所有的服务器登录
计算机网络技术专业忙吗
网络安全等级保护评估报告
虎丘区大数据软件开发活动
电子政务网络技术ppt
安徽托育管理系统软件开发
为什么说查询是数据库重要对象
网络安全模型有何作用
注意网络安全问题有哪些问题
那些大学有网络安全专业
网络安全比赛是电竞吗
linux服务器查询cpu状态
网络安全产业包括什么内容
数据库表如何存有范围的值
旌德微型软件开发服务生产过程
数据库怎样数据存储
若拙网络技术
购书馆管理系统数据库
服务器两块硬盘黄灯和红灯
虹口区一站式软件开发出厂价格
德施曼云端服务器
中兴通讯软件开发笔试题目
云服务器杀病毒软件
如何对数据库某个表操作