cdh的hive配置文件位置_【原创】CDH5.5.4配置Hive on Tez

前言

最近发现hive作业运行较慢,在对hive做了优化后,虽然效率提高了几倍,但总感觉还是可以再提高,想到之前使用Apache开源版本的Hadoop配置过Hive on Tez,于是照那一套方法配置,发现完全不是那么一回事儿,Cloudera公司针对Hive做了修改,很多框架在Apache开源版本上可以正常使用,但在CDH版本上会出现不兼容的问题,而Tez官方也没有提供CDH版本的Tez(Tez是Hortonworks的项目,Hortonworks与Cloudera是竞争关系),这时候就需要自己针对CDH版本编译对应的jar。于是查找了很多相关资料,修改了源码文件的几处代码和一些pom配置后才编译通过。

文章最后,我会把已经编译好的jar包共享出来,此编译好的二进制包是针对cdh5.5.4版本的,其他版本没有测试可用性。

关于Hive on Tez:

Tez是由Hortonworks公司发起的一个分布式计算框架项目,希望能够取代Map Reduce作为Hadoop生态系统下一代的分布式计算引擎。Hive on Tez作为Hortonworks stinger(Hortonworks改进Hive的项目代号)的一部分,已经在Hive 0.13版本(于2014年4月21号发布)中支持,目前最新稳定版为0.8.4

有关Apache 开源hadoop的tez安装和使用请参考本站博文:HIVE ON TEZ安装使用 参考手册

环境说明cdh版本:5.5.4

hive版本:1.1.2

hadoop版本:2.6.0

jdk版本:1.8

安装Tez1、将安装包里的名称为tez-0.8.4.tar.gz的包上传到hdfs上一个目录下,我这里使用的是/apps目录

命令:hadoop fs -put tez-0.8.4.tar.gz /apps2、在/etc/hive/conf目录下创建tez-site.xml文件,添加如下内容:

tez.lib.uris

${fs.defaultFS}/apps/tez-0.8.4.tar.gz

3、把tez-0.8.4目录下的所有jar包和lib下的jar包拷贝到hive的lib目录下。我的hive的lib路径为:/opt/cloudera/parcels/CDH-5.5.4-1.cdh5.5.4.p0.9/lib/hive/lib

Tez VS MR启动hive的shell环境,进入shell,执行命令:set hive.execution.engine=tez;

hive支持的执行引擎共三个,mr、spark、tez,hive默认的执行引擎为mr。将hive的执行引擎切换到tez,这个需要每次使用前执行这个命令,如果关闭了shell窗口,下次再进入hive的shell环境是需要重新设置执行引擎为tez,如果不设置,hive使用默认的执行引擎为mr。

使用Tez执行作业

此时,在yarn的作业监控界面,可以看到有一个作业类型为tez的长连接任务出现。如图:

使用MR执行作业

结论

使用mr引擎执行作业耗时:149.78s

使用tez引擎执行作业耗时:22.38s

由此可知,149.78/22.38=6.69,tez

note:tez好像不支持hive通过jdbc方式提交作业时,会报错。

错误堆栈:Exception in thread "main" java.sql.SQLException: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.tez.TezTask

at org.apache.hive.jdbc.HiveStatement.execute(HiveStatement.java:296)

at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:392)

at mx.tc.hive.common.HiveJdbcTest.main(HiveJdbcTest.java:59)

Hive日志

监控hive日志文件,如果没有特别配置hive的日志存储目录,则默认在/tmp/root/下,(root为你当前登录的用户名,我这里使用的是超级用户。)

命令:tail -f /tmp/root/hive.log

如果hive执行报错,在这个日志文件中都会有详细错误日志产生,便于排除错误。

下载地址

以下是共享的360云盘下载地址,tez-0.8.4.rar里包含所有需要的jar包和压缩包。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值