说明: 这个参数调优借鉴之尚硅谷课程

1. 配置hdfs存储多目录

生产环境的磁盘情况

问题: 需要增加的磁盘? 如何进行存储

说明:

HDFS的DataNode节点保存数据的路径由dfs.datanode.data.dir参数决定,其默认值为file://${hadoop.tmp.dir}/dfs/data,若服务器有多个磁盘,必须对该参数进行修改。如服务器磁盘如上图所示,则该参数应修改为如下的值。

hdfs-site.xml

<property><name>dfs.datanode.data.dir</name><value>file:///dfs/data1,file:///**hd2**/dfs/data2,  <!--注意这个目录的位置data1就是本地, hd2,hd3,hd4都是挂载的磁盘-->file:///**hd3**/dfs/data3,file:///**hd4**/dfs/data4</value>
</property>

注意:因为每台服务器节点的磁盘情况不同,所以这个配置配完之后,不需要分发


2. 集群数据均衡

问题: 有时候因为新添加的节点,或者是因为副本分配问题出现了数据不均衡问题
1)节点间数据均衡
开启数据均衡命令:

start-balancer.sh -threshold 10
对于参数10,代表的是集群中各个节点的磁盘空间利用率相差不 超过10%,可根据实际情况进行调整。

(2)停止数据均衡命令:

stop-balancer.sh

注意:由于启动数据均衡命令比较耗费资源, 最好找一台比较空闲的机器进行执行, 防止namenode 宕机

3. 集群配置LZO压缩

  1. hadoop本身并不支持lzo压缩,故需要使用twitter提供的hadoop-lzo开源组件。hadoop-lzo需依赖hadoop和lzo进行编译.这个编译是有点麻烦的,大家可以自己到网上去找一下和hadoop对应版本编译好的lZO
  2. 将编译好的jar包放到 hadoop/share/hadoop/common/下
  3. 在core-site.xml添加以下支持
<property>
<name>io.compression.codecs</name>
<value>
org.apache.hadoop.io.compress.GzipCodec,
org.apache.hadoop.io.compress.DefaultCodec,
org.apache.hadoop.io.compress.BZip2Codec,
org.apache.hadoop.io.compress.SnappyCodec,
com.hadoop.compression.lzo.LzoCodec,
com.hadoop.compression.lzo.LzopCodec
</value>
</property><property><name>io.compression.codec.lzo.class</name><value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
  1. 上面就已经添加好LZO的支持了,LZO虽然支持切片,但是如果想要进行使用切片,还得创建索引文件

例:
hadoop jar LZOjar包com.hadoop.compression.lzo.DistributedLzoIndexer 目标lzo文件路径

4.参数调优

4.1 hdfs-site.xml:

NameNode有一个工作线程池,用来处理不同DataNode的并发心跳以及客户端并发的元数据操作。
对于大集群或者有大量客户端的集群来说,通常需要增大参数dfs.namenode.handler.count的默认值10。

<property><name>dfs.namenode.handler.count</name><value>10</value>
</property>

计算方式:
dfs.namenode.handler.count=20 X log e 服务器个数,比如集群规模(DataNode台数)为8台时,此参数设置为20 X log e 8 = 41。

4.2 yarn-site.xml

(1)情景描述:总共7台机器,每天几亿条数据,数据源->Flume->Kafka->HDFS->Hive
面临问题:数据统计主要用HiveSQL,没有数据倾斜,小文件已经做了合并处理,开启的JVM重用,而且IO没有阻塞,内存用了不到50%。但是还是跑的非常慢,而且数据量洪峰过来时,整个集群都会宕掉。基于这种情况有没有优化方案。

(2)解决办法
内存利用率不够。这个一般是Yarn的2个配置造成的单个任务可以申请的最大内存大小Hadoop单个节点可用内存大小。调节这两个参数能提高系统内存的利用率。

(a)yarn.nodemanager.resource.memory-mb:
表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。
(b)yarn.scheduler.maximum-allocation-mb:
单个任务可申请的最多物理内存量,默认是8192(MB)。

hdfs读写性能测试:

写性能测试:

hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 128MB

读性能测试:

hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar TestDFSIO -read -nrFiles 10 -fileSize 128MB

将读写性能测试产生的数据进行删除:

hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar TestDFSIO -clean

参数解析:

-write : 写
-read: 读
-nrFiles : 文件的个数
-filesize: 每个文件的大小

hadoop经验调优相关推荐

  1. Hadoop性能调优

      Hadoop为用户作业提供了多种可配置的参数,以允许用户根据作业特点调整这些参数值使作业运行效率达到最优. 一 应用程序编写规范 1.设置Combiner         对于一大批MapRedu ...

  2. [Hadoop性能调优]

    一. Hadoop概述 随着企业要处理的数据量越来越大,MapReduce思想越来越受到重视.Hadoop是MapReduce的一个开源实现,由于其良好的扩展性和容错性,已得到越来越广泛的应用. Ha ...

  3. Hadoop性能调优总结

    目的 随着企业要处理的数据量越来越大,Hadoop运行在越来越多的集群上,同时MapReduce由于具有高可扩展性和容错性,已经逐步广泛使用开来.因此也产生很多问题,尤其是性能方面的问题.这里从管理员 ...

  4. Hadoop性能调优全面总结

    一. Hadoop概述 随着企业要处理的数据量越来越大,MapReduce思想越来越受到重视.Hadoop是MapReduce的一个开源实现,由于其良好的扩展性和容错性,已得到越来越广泛的应用. Ha ...

  5. Hadoop性能调优、YARN的内存和CPU配置

    转 Hadoop性能调优.YARN的内存和CPU配置 2018年06月12日 21:01:54 toto1297488504 阅读数:2417 转: https://blog.csdn.net/deh ...

  6. Hadoop-调优剖析

    1.概述 其实,在从事过调优相关的工作后,会发现其实调优是一项较为复杂的工作.而对于Hadoop这样复杂且庞大的系统来说,调优更是一项巨大的工 作,由于Hadoop包含Common.HDFS.MapR ...

  7. Hadoop性能调优概要说明

    Hadoop容易遇到的问题有:Namenode/jobtracker单点故障.HDFS小文件问题.数据处理性能等.为此 "Hadoop Performance Optimization&qu ...

  8. Hadoop Mapreduce 调优

    转载于:https://www.cnblogs.com/pickKnow/p/10783304.html

  9. [ hadoop ] 集群性能调优全面总结

    [ hadoop ] 集群性能调优全面总结_bone_ds的博客-CSDN博客_hadoop集群优化 引子 文章涵盖了hadoop框架的三个组成架构各自的优化方法,涉及存储,计算,故障排除等多个方面的 ...

最新文章

  1. c++中的public,protected,private
  2. python脚本设置linux环境变量_Linux环境变量export方法与修改文件方法的区别
  3. 云南大学网络课程作业计算机,云南大学842计算机程序设计考研复习经验
  4. SpringBoot 信息输出
  5. 去哪儿-10-city-ajax
  6. Python中的sys模块
  7. 设计模式(Design pattern—
  8. NYOJ260 - 数数小木块
  9. 我的世界服务器物品管理,JEI物品管理器 _ 我的世界Minecraft中国版官方网站——你想玩的,这里都有...
  10. 通用高效分页存储过程
  11. CMA检测报告中,CNAS,CMA分别代表的意义
  12. 笔记本cpu降压 XTU
  13. vue抽屉_vue 自定义抽屉组件 仿 iview
  14. SQLite System.DllNotFoundException for SQLite.Interop.dll
  15. Test类中的@testSetup标注 测试环境数据准备
  16. 链游的趋势和前景:团队开始专注于建设 进入 6-12 个月重新整合期
  17. 【软件测试】8年资深测试解析,软件测试行业情报,风风雨雨......
  18. 国家进口的爱乐维与德国药店的爱乐维的区别
  19. html 在td中加css,html td nowrap不换行属性使用方法
  20. JAVA设计模式--组合模式

热门文章

  1. Windows 7登陆时自动创建TEMP临时文件夹问题解决
  2. jquery 获取某个值得键名_jquery中获取元素里某一特定子元素的代码
  3. 浅谈H5业务场景下的人脸识别
  4. mongodb中的in和notin的查询
  5. SpringBoot Data整合ElasticSearch
  6. Android Scrapped or attached views may not be recycled.
  7. webSocket——Vue2简易聊天室
  8. 前端日历,vue日历,一周的日历
  9. html表格导入wps,怎么快速将网页数据导入WPS表格中?
  10. 亚马逊CPSC认证常见产品测试标准合集