Hadoop 企业优化
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,1 MapReduce 跑的慢的原因2 MapReduce 优化方法MapReduce优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、数据倾斜问题和常用的调优参数。2.1
千家信息网最后更新 2025年01月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安全错误
数据库的锁怎样保障安全
淮安服务器有哪些
2019网络安全开了几次会
山西搞软件开发的公司
属于数据库中的一条记录是
软件开发项目主管职责
游戏版本与服务器版本不符
关于软件开发培训计划
黄河鲲鹏服务器和台式机生产线
安全服务器是双电单电
软件开发必须有服务器
广西山山互联网科技有限公司
中企欣软件开发公司
社交软件开发有哪些法律限制
天津虚拟服务器管理软件云空间
进口网络技术服务欢迎咨询
我们应该如何学好网络安全专业
网络安全数据安全上市公司
ASU服务器
滨州服务器管理系统
数据库招聘专科
松下软件开发公司电话
服务器cpu功耗排名
如何让前端对接数据库
ios做app的软件开发
信息网络安全宣传ppt
怎么知道网页的数据库账号密码
个人记账软件开发课程设计
网络安全人人有责主题
周村物流竞价报价软件开发
率土之滨各个服务器势力表