hadoop 调优

Hadoop调优

mapred.tasktracker.map.tasks.maximum

官方解释:The maximum number of map tasks that will be run  simultaneously by a task tracker.

我的理解:一个tasktracker最多可以同时运行的map任务数量

默认值:2

优化值:mapred.tasktracker.map.tasks.maximum = cpu数量

cpu数量 = 服务器CPU总核数 / 每个CPU的核数
服务器CPU总核数 = more /proc/cpuinfo | grep ‘processor‘ | wc -l
每个CPU的核数 = more /proc/cpuinfo | grep ‘cpu cores‘

mapred.map.tasks

官方的解释:The default number of map tasks per job

我的解释:一个Job会使用task tracker的map任务槽数量,这个值 ≤ mapred.tasktracker.map.tasks.maximum

默认值:2

优化值:

  1. CPU数量 (我们目前的实践值)
  2. (CPU数量 > 2) ? (CPU数量 * 0.75) : 1  (mapr的官方建议)

注意:map任务的数量是由input spilit决定的,和上面两个参数无关

mapred.tasktracker.reduce.tasks.maximum

官方解释:The maximum number of reduce tasks that will be run  simultaneously by a task tracker.

我的理解:一个task tracker最多可以同时运行的reduce任务数量

默认值:2

优化值: (CPU数量 > 2) ? (CPU数量 * 0.50): 1 (mapr的官方建议)

mapred.reduce.tasks

官方解释:The default number of reduce tasks per job. Typically set to 99%  of the cluster‘s reduce capacity, so that if a node fails the reduces can  still be executed in a single wave.

我的理解:一个Job会使用task tracker的reduce任务槽数量

默认值:1

优化值:

  • 0.95 * mapred.tasktracker.tasks.maximum

理由:启用95%的reduce任务槽运行task, recude task运行一轮就可以完成。剩余5%的任务槽永远失败任务,重新执行

  • 1.75 * mapred.tasktracker.tasks.maximum

理由:因为reduce task数量超过reduce槽数,所以需要两轮才能完成所有reduce task。具体快的原理我没有完全理解,上原文:

hadoop官方wiki: 写道

At 1.75 the faster nodes will finish their first round of reduces and launch a second round of reduces doing a much better job of load balancing.

环境变量

disable ipv6配置,修改bin/hadoop,添加下行:

HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"

Hive调优:

mapred.reduce.tasks

官方 写道

The default number of reduce tasks per job. Typically set
to a prime close to the number of available hosts. Ignored when
mapred.job.tracker is "local". Hadoop set this to 1 by default, whereas hive uses -1 as its default value.
By setting this property to -1, Hive will automatically figure out what should be the number of reducers.

我的理解

tasktracker执行hive job的reduce任务数,设置为"-1"hive将自动设置该值,策略如下:

1. hive.exec.reducers.bytes.per.reducer(默认为1GB)
2. hive.exec.reducers.max(默认为999)

mapred.reduce.tasks = min ( 参数2,总输入数据量/参数1 )

默认值:-1

优化值:显式设置为Hadoop配置中mapred.reduce.tasks值,参考上文。

参考资料:

时间: 2024-08-29 17:50:11

hadoop 调优的相关文章

Hadoop调优参数总结

Map端调优参数 属性名称 类型 默认值 说明 io.sort.mb int 100 排序map输出时所使用的内存缓冲区大小,以M为单位.当节点内存较大时,可调高该参数,以减少磁盘写入次数. io.sort.record.percent float 0.05 用作存储map输出(io.sort.mb)记录的比例.剩余的空间用来存储map输出记录本身 io.sort.spill.percent float 0.80 map输出开始写磁盘的阈值. io.sort.factor int 10 map输

hadoop调优之一:概述

hadoop集群性能低下的常见原因 (一)硬件环境 1.CPU/内存不足,或未充分利用 2.网络原因 3.磁盘原因 (二)map任务原因 1.输入文件中小文件过多,导致多次启动和停止JVM进程.可以设置JVM重用. 2.数据倾斜:大文件且不可分割,导致处理这些文件的map需要很长时间. 3.数据本地化效果差. (三)reduce任务的原因 1.reduce任务数量过大或过小 2.数据倾斜:一部分key的记录数量太大,导致某些reduce执行过慢 3.缓慢的shuffle和排序 (四)hadoop

Cloudera Hadoop 5& Hadoop高阶管理及调优课程(CDH5,Hadoop2.0,HA,安全,管理,调优)

1.课程环境 本课程涉及的技术产品及相关版本: 技术 版本 Linux CentOS 6.5 Java 1.7 Hadoop2.0 2.6.0 Hadoop1.0 1.2.1 Zookeeper 3.4.6 CDH Hadoop 5.3.0 Vmware 10 Hive 0.13.1 HBase 0.98.6 Impala 2.1.0 Oozie 4.0.0 Hue 3.7.0 2.内容简介 本教程针对有一定Hadoop基础的学员,深入讲解如下方面的内容: 1.Hadoop2.0高阶运维,包括H

七、Hadoop学习笔记————调优之Hadoop参数调优

dfs.datanode.handler.count默认为3,大集群可以调整为10 传统MapReduce和yarn对比 如果服务器物理内存128G,则容器内存建议为100比较合理 配置总量时考虑系统调优块,双路四核2*4*2=16g,则总量设置为10到12比较合适,需要预留空间给其他服务器 需要给master分配足够资源,并且分配受限于yarn hadoop调优需要不断尝试,没有固定的套路

Hive 的简单使用及调优参考文档

Hive 的简单使用及调优参考文档 ? HIVE的使用 命令行界面 使用一下命令查看hive的命令行页面, hive --help --service cli 简化命令为hive –h 会输出下面的这些东西 -d,--define <key=value> Variable subsitution to apply to hive commands. e.g. -d A=B or --define A=B --database <databasename> Specify the d

Hive| 压缩| 存储| 调优

Hadoop压缩配置 修改Hadoop集群具有Snappy压缩方式: 查看hadoop支持的压缩方式 [kris@hadoop101 datas]$ hadoop checknative 将编译好的支持Snappy压缩的hadoop-2.7.2.tar.gz包导入到hadoop101的/opt/software中 1.解压hadoop-2.7.2.tar.gz到当前路径 [kris@hadoop101 software]$ tar -zxvf hadoop-2.7.2.tar.gz 2.进入到/

大数据技术之_08_Hive学习_04_压缩和存储(Hive高级)+ 企业级调优(Hive优化)

第8章 压缩和存储(Hive高级)8.1 Hadoop源码编译支持Snappy压缩8.1.1 资源准备8.1.2 jar包安装8.1.3 编译源码8.2 Hadoop压缩配置8.2.1 MR支持的压缩编码8.2.2 压缩参数配置8.3 开启Map输出阶段压缩8.4 开启Reduce输出阶段压缩8.5 文件存储格式8.5.1 列式存储和行式存储8.5.2 TextFile格式8.5.3 Orc格式8.5.4 Parquet格式8.5.5 主流文件存储格式对比实验8.6 存储和压缩结合8.6.1 修

Hive 企业级调优

1 Fetch 抓取 Fectch 抓取是指对某些情况下的查询不必使用 MapReduce 计算 将 hive.fetch.task.conversion 设置成 more,在全局查找.字段查找.limit查找等都不走 MapReduce 2 本地模式 多数的 Hadoop Job 是需要 Hadoop 提供的完整的可扩展性来处理大数据集的,不过,有时 Hive 的输入数据量是非常小的,在这种情况下,为查询触发执行任务消耗的时间可能会比实际job的执行时间要多的多,对于大多数这种情况,Hive

二、hive调优

下面是hive使用过程中一些调优策略 一.fetch抓取 ? Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算.例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台.? 在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本hive默认是minimal,该属性修改为more以后,在全局查