1、调优的目的
充分利用机器的性能,更快地完成Mr程序的计算任务。即使在有限的机器条件下,它也能支持运行足够的Mr程序。
2、调优概述
从磁流变程序的内部运行机制可知,磁流变程序由映射器和reducer组成。映射阶段包括数据读取,映射处理和写入操作(排序和合并/排序&而reducer阶段包括mapper输出数据采集、数据合并、reduce处理和写入操作。在这七个子阶段中,地图输出、reducer数据合并和可以更努力调优的reducer数量这三个方面就是调优操作。也就是说,虽然性能调优包括CPU、内存、磁盘IO和网络四个主要方面,但从Mr程序的执行过程中,我们可以知道主要是内存、磁盘IO和网络调优。在Mr程序调优中,主要考虑的是减少网络传输和磁盘IO操作。因此,本课程中的Mr调优主要包括服务器调优、代码调优、映射器调优、减速器调优和运行器调优。
https://pan.baidu.com/s/1lAWhUF9G0x-6lR9h30qi3Q?pwd=7y63
3、服务器调优
服务器调优主要包括服务器参数调优和JVM调优。在这个项目中,因为我们使用HBase作为我们分析数据的原始数据存储表,所以我们还需要对HBase做一些调优。除了参数调优之外,与其他通用Java程序一样,还需要进行一些JVM调优。 HDFS调优 1. dfs。datanode。失败了。卷。“容忍”:允许发生磁盘错误的磁盘数量。默认值为0,表示datanode不允许出现磁盘异常。当挂载多个磁盘时,可修改。 2. dfs。Replication:复制因子,默认为3 3.dfs。namenode。处理程序。Count: namenode节点的并发线程数。默认是10 4. dfs。datanode。处理程序。“Count”:节点间并发线程数。默认为10。
5. dfs。datanode。max.transfer。线程:datanode提供的数据流操作的并发线程数。默认为4096。 一般设置为Linux系统中文件句柄数的85% ~ 90%。检查文件句柄数,使用ulimit - A,并修改VIM / etc / security / limits Conf,不能设置太大 在文件的末尾,添加 * soft nofile 65535 * hard nofile 65535 注意:句柄的数量不能太大。可以将其设置为1000000以下的所有值。一般不设为- 1。 异常处理:当设置的句柄数较大时,再次登录时可能会出现无法加载会话的提示信息。此时,可以使用单用户模式进行修改。 单用户模式: 启动时,按“a”键进入选择界面,然后按“e”键进入内核修改界面,然后选择“kernel…”,按“e”键修改,在末尾加空格+单,按Enter键返回修改界面,最后按“B”键启动单用户模式。启动成功后,恢复文件并保存。最后退出并重启系统。
6. io。文件。缓冲区。Size:用于读写数据的缓冲区大小。缺省值是4096。它通常不设置。建议设置为4096(物理页面大小的整数倍)的整数倍。 HBase调优
1. 设置regionserver的内存大小,默认为1g,推荐使用4G。 修改“Sh_ HEAPSIZE=4g”下的“conf / HBase env HBase” 2. hbase。regionserver。处理程序。Count:修改客户端并发线程数。缺省值为10。设置规则是,当有许多放置和扫描操作时,将它们设置为较小的值;当有许多获取和删除操作时,将它们设置为更大的值。这是为了防止频繁的GC操作导致内存异常。 3.定制HBase分段和压缩操作。缺省情况下,当region大小达到HBase hregion时,才会有HBase分段机制。Max。文件大小(10g)用于自动分割。每个regionserver的region个数建议在20 ~ 500之间。HBase的收紧机制是HBase的一种非常重要的管理机制。HBase的收紧操作占用内存和CPU很多。因此,如果机器压力高,建议将其关闭,改为手动控制。 4. hbase。均衡器。周期:设置HBase的负载均衡时间,默认为300000(5分钟)。在高负载的集群上,这个值可以适当地增加。 5. hfile。块。缓存。Size:修改flie文件块在内存中的比例。缺省值为0.4。在读应用程序较多的系统中,这个值可以适当增加,而在写应用程序较多的系统中,
|