`

hive任务的mappe-reducer数量

    博客分类:
  • hive
 
阅读更多

 

 1 hive mapper数量:

 

hadoop mapper数量以及hive对此的优化:

hadoop2中,

5000个100M左右的文件,则会产生5000个map任务,建立5000个进程来执行销毁成本较高,

hive默认是使用CombileFileInputFormat,对小文件进行合并,来减少mapper数,

每个进程的开启和关闭耗时,涉及cpu io 带宽 jvm等。

hive-default.xml.template中默认设置如下:

  <property>
    <name>hive.input.format</name>
    <value>org.apache.hadoop.hive.ql.io.CombineHiveInputFormat</value>
    <description>The default input format. Set this to HiveInputFormat if you encounter problems with CombineHiveInputFormat.</description>
  </property>

 这样在hive执行mapper task时,会对大量小文件进行合并,让涉及到要操作的文件数据所存储的小文件先进行文件块合并,减少操作的split后在对合并后的文件进行mapper task操作(比如要对 10个50M的存储hdfs文件进行mapper操作,先处理成5个100M的在对这5个文件进行处理这样从10个mapper进程减少到5个)

 

 

疑问:  hive>descirbe extended stu;后看到表stu都是 textinputformat  textoutputformat,

         那么这个表的两个format和hive配置文件默认的CombineHiveInputFormat各自使用场景区别在哪?

         目前没理解好,找不到答案。

 

 

 

总结: hive mapper数量由两个因素决定 1 inputsplit   2 CombineHiveInputFormat

 

 

 

 2  hive reducer数量:

 

 

这是默认reducer task任务个数, hive-default.xml.template中设置为:

<property>
    <name>hive.exec.reducers.max</name>
    <value>1009</value>
    <description>
      max number of reducers will be used. If the one specified in the configuration parameter mapred.reduce.tasks is
      negative, Hive will use this one as the max number of reducers when automatically determine number of reducers.
    </description>
  </property>

 

hive中查看当前设置的reducer任务个数:

hive>set mapred.reduce.tasks
mapred.reduce.tasks=-1 

 数值为-1时,hive会自动推测决定reduce task数量,而最大数值在上面配置文件中配置好了为1009

如果reduce task个数超过这个数值时,就会排队等待,

 

设置hivereducer个数:

hive (default)> set mapred.reduce.tasks;  
mapred.reduce.tasks=3

 

设置后就意味着hive.exec.reducer.max=3

 

 

每个reduce任务处理的数据量也是由限定的,hive-default.xml.template中设置为:

  <property>
    <name>hive.exec.reducers.bytes.per.reducer</name>
    <value>256000000</value>
    <description>size per reducer.The default is 256Mb, i.e if the input size is 1G, it will use 4 reducers.</description>
  </property>

 默认是256M,如果给reducer输入的数据量是1G,那么按照默认规则就会分拆成4个reducer。

 

 

reducer 任务个数 :

   min(向上取整(reduce输入文件大小/reducer默认处理大小) , hive.exec.reducer.max)

 

eg:

1G的reduce输入数据

hive.exec.reducers.bytes.per.reducer=256M

mapred.reduce.tasks=-1 或者 hive.exec.reducer.max=1009

 

那么真实产生recuder个数为:

 min(向上取整(1G/256m), 1009) = 4;

 

1T的reduce数据则为    min(向上取整(1T/256m), 1009) = 1009;

 

 

 

 

 

 

 

 

 
分享到:
评论

相关推荐

    含两个文件hive-jdbc-3.1.2-standalone.jar和apache-hive-3.1.2-bin.tar.gz

    含两个文件hive-jdbc-3.1.2-standalone.jar和apache-hive-3.1.2-bin.tar.gz 含两个文件hive-jdbc-3.1.2-standalone.jar和apache-hive-3.1.2-bin.tar.gz 含两个文件hive-jdbc-3.1.2-standalone.jar和apache-hive-...

    apache-hive-2.1.1-bin.tar

    apache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tarapache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tar apache-hive-2.1.1-bin.tarapache-hive-2.1.1-bin.tar apache-hive-2.1.1-...

    Hive-2.1.1-CDH-3.6.1 相关JDBC连接驱动 Jar 包集合

    02、hive-exec-2.1.1-cdh6.3.1.jar 03、hive-jdbc-2.1.1-cdh6.3.1.jar 04、hive-jdbc-2.1.1-cdh6.3.1-standalone.jar 05、hive-metastore-2.1.1-cdh6.3.1.jar 06、hive-service-2.1.1-cdh6.3.1.jar 07、libfb303-...

    Apache Hive(apache-hive-3.1.3-bin.tar.gz)

    Apache Hive(apache-hive-3.1.3-bin.tar.gz、apache-hive-3.1.3-src.tar.gz)是一种分布式容错数据仓库系统,支持大规模分析,并使用 SQL 促进读取、写入和管理驻留在分布式存储中的 PB 级数据。Hive 构建在 Apache...

    Apache Hive(apache-hive-1.2.2-bin.tar.gz)

    Apache Hive(apache-hive-1.2.2-bin.tar.gz、apache-hive-1.2.2-src.tar.gz)是一种分布式容错数据仓库系统,支持大规模分析,并使用 SQL 促进读取、写入和管理驻留在分布式存储中的 PB 级数据。Hive 构建在 Apache...

    hive驱动包hive-jdbc-uber-2.6.5.0-292.jar(用户客户端连接使用)

    标题中的"**hive-jdbc-uber-2.6.5.0-292.jar**"是一个Uber(也称为Shaded)JAR文件,它集成了Hive JDBC驱动的所有依赖项。Uber JAR的目的是为了方便部署,因为它将所有必需的库合并到一个单一的文件中,避免了类路径...

    hive-jdbc-3.1.2-standalone

    hive-jdbc-3.1.2-standalone适用于linux

    DBeaver链接hive驱动包下载: hive-jdbc-uber-2.6.5.0-292.jar

    《DBeaver与Hive连接:hive-jdbc-uber-2.6.5.0-292.jar驱动详解》 在大数据处理领域,Hive作为一个基于Hadoop的数据仓库工具,广泛用于数据查询和分析。而DBeaver,作为一款跨平台的数据库管理工具,以其用户友好的...

    Apache Hive(hive-storage-2.8.1.tar.gz)

    Apache Hive(hive-storage-2.8.1.tar.gz、hive-storage-2.7.3.tar.gz)是一种分布式容错数据仓库系统,支持大规模分析,并使用 SQL 促进读取、写入和管理驻留在分布式存储中的 PB 级数据。Hive 构建在 Apache ...

    hive-jdbc-uber-2.6.5.jar

    hive-jdbc-uber-2.6.5.0-292.jar DbVisualizer (as of version 9.5.5) Below is an example configuration using DbVisualizer: Open the Diver Manager dialog ("Tools" &gt; "Driver Manager...") and hit the ...

    hive-jdbc-1.2.1-standalone.jar

    hive-jdbc-1.2.1-standalone.jar hive-jdbc驱动jar包,欢迎下载

    hive-jdbc-jar-多版本.zip

    "hive-jdbc-jar-多版本.zip"是一个压缩包,包含了不同版本的Hive JDBC Uber Jars,覆盖了从1.5到1.8的多个Hive版本,适应不同的项目需求。 首先,我们要理解Uber JAR的概念。Uber JAR(也称为Shaded JAR)是一个...

    hive-jdbc-uber-3.1.2+yanagishima-18.0

    这里我们关注的是"Hive-jdbc-uber-3.1.2",这是一个包含所有依赖的Uber jar包,旨在简化部署和使用流程。 Hive JDBC Uber 3.1.2是Hive的Java数据库连接器的一个优化版本,它通过将所有必需的依赖项打包到一个单一的...

    hive-jdbc-2.3.7-standalone.jar

    hive-jdbc-2.3.7-standalone,可用dbeaver连接hive数据库,在工具中进行数据库记录的新增改查

    hive-jdbc-uber-2.6.5.0-292.zip

    标题中的“hive-jdbc-uber-2.6.5.0-292.zip”指的是Hive JDBC驱动的Uber版本,版本号为2.6.5.0-292。Uber JAR是一种包含所有依赖的单一JAR文件,便于分发和使用,特别是对于连接工具如DataGrip这样的集成开发环境...

    hive-hcatalog-core-1.2.1.jar

    hive-hcatalog-core-1.2.1.jarhive-hcatalog-core-1.2.1.jarhive-hcatalog-core-1.2.1.jar

    hive-jdbc-2.1.1-cdh6.2.0-standalone.jar

    hive-jdbc-2.1.1-cdh6.2.0(ieda等jdbc链接hive2.1.1);cdh6.2.0安装的hive2.1.1

    hive-jdbc-2.1.0-standalone.jar

    hive-jdbc-2.1.0-standalone.jar

    hive-jdbc-3.1.2-standalone.jar

    Hive连接的jar包——hive-jdbc-3.1.2-standalone.jar,使用数据库连接软件连接数据仓库时需要使用相应的驱动器驱动,希望对大家有所帮助

    hive-jdbc-1.2.1.spark2.jar

    hive-serde-1.1.0,mysql-connector-java-5.1.31.jar,hive-jdbc-standalone,atlas-plugin-classloader-1.2.0,hive-bridge-shim-1.2.0

Global site tag (gtag.js) - Google Analytics