Tez替换MR作为hive的计算引擎

CDH集群本身没有集成Tez,所以需要单独编译Tez并且上传Jar包到hdfs,具体可参考https://cloud.tencent.com/developer/article/1349504

本文主要讨论当集群已经有Tez之后的操作。

  1. 更改hive的执行引擎为tez
    1. session级别,可在执行sql的脚本中或者hue窗口
      set hive.execution.engine=tez;

       

    2. 全局执行引擎替换,将CDH集群中Hive的site.xml文件中参数添加参数

      参数添加

       

  2. 指定tez的container内存
    1. session级别
      set hive.tez.container.size = 2048;

       

    2. 全局参数tez-container-memory

配置结束就可以在执行sql的时候使用tez引擎了。

当使用oozie调度hive脚本时会发现之前的配置并没有生效。

原因:在oozie调度hive是会添加一个hive-site.xml文件,而这个文件会覆盖hive本身的site.xml文件

解决:将该文件添加tez需要的参数,包括

  1. tez.lib.uris  # jar包所在的位置
  2. tez.use.cluster.hadoop-libs # 使用hadoop集群的环境
  3. hive.execution.engine #制定执行引擎
  4. hive.tez.container.size #制定执行内存大小

当上面配置结束后oozie调度hive脚本呢就可以正常使用Tez来计算了

你可能感兴趣的:(hive,oozie,集群)