一文搞定hive2.3集成tez引擎

在集成tez之前,我们先来安装一下Hive注意此时安装hive一定要安装hive2.0版本以上的,因为Tez对于低版本hive不支持,这里我选用2.3版本的作为演示

1.解压tar包到指定的目录

[mo@node102 software]$ tar -zxvf apache-hive-2.3.6-bin.tar.gz   -C  /opt/module/

2.将mysql的jar包拷贝到hive的lib目录下

cp /opt/software/mysql-libs/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar   /opt/module/hive/lib/

3.在/opt/module/hive/conf路径上,创建hive-site.xml文件并填写如下内容,注意里面的数据库用户名和密码等需要更改成自己的

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
	<property>
	    <name>javax.jdo.option.ConnectionURL</name>
	    <value>jdbc:mysql://node102:3306/metastore?createDatabaseIfNotExist=true</value>
	    <description>JDBC connect string for a JDBC metastore</description>
	</property>

	<property>
	    <name>javax.jdo.option.ConnectionDriverName</name>
	    <value>com.mysql.jdbc.Driver</value>
	    <description>Driver class name for a JDBC metastore</description>
	</property>

	<property>
	    <name>javax.jdo.option.ConnectionUserName</name>
	    <value>root</value>
	    <description>username to use against metastore database</description>
	</property>

	<property>
	    <name>javax.jdo.option.ConnectionPassword</name>
	    <value>123456</value>
	    <description>password to use against metastore database</description>
	</property>
    
    <property>
         <name>hive.metastore.warehouse.dir</name>
         <value>/user/hive/warehouse</value>
         <description>location of default database for the warehouse</description>
    </property>
    
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
    </property>

    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>
    
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
    
    <property>
        <name>datanucleus.schema.autoCreateAll</name>
        <value>true</value> 
</property>

<property>
    <name>hive.metastore.uris</name>
    <value>thrift://node102:9083</value> 
</property>

</configuration>

4.开启hive的原数据服务,注意红框内的提示是自动生成的,不用在意直接回车进行相应的下一步即可。
在这里插入图片描述

5.启动hive

在这里插入图片描述

二:hive集成引擎tez

为什么要安装tez:
Hive默认计算引擎时MR,为了提高计算速度,我们选用Tez引擎
可以参考一下MR和Tez的执行图:
在这里插入图片描述
从图中可以看到MR中途需要将中间结果持久化写到HDFS,而Tez是基于内存计算的,所以要比MR快的多。

Tez引擎的安装:
1.在HDFS的根目录下创建tez目录

hdfs dfs -mkdir /tez
hdfs dfs -put   ./apache-tez-0.9.1-bin.tar.gz   /tez

2.解压缩到指定的目录

tar -zxvf apache-tez-0.9.1-bin.tar.gz -C /opt/module

3.修改名称

mv apache-tez-0.9.1-bin/ tez-0.9.1

4.进入到Hive的配置目录:/opt/module/hive/conf目录下创建tez-site.xml文件并将如下内容添加进去.

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>tez.lib.uris</name>
        <value>${fs.defaultFS}/tez/apache-tez-0.9.1-bin.tar.gz</value>
    </property>
    <property>
         <name>tez.use.cluster.hadoop-libs</name>
         <value>true</value>
    </property>
    <property>
         <name>tez.history.logging.service.class</name>        
         <value>org.apache.tez.dag.history.logging.ats.ATSHistoryLoggingService</value>
    </property>
</configuration>

5.在/opt/module/hive/conf目录下hive-env.sh文件中添加tez环境变量配置和依赖包环境变量配置。
先将hive-env.sh.template文件改名为hive-env.sh

mv   hive-env.sh.template   hive-env.sh

然后在hive-env.sh文件的最后一行添加如下内容.

# Set HADOOP_HOME to point to a specific hadoop install directory
export HADOOP_HOME=/opt/module/hadoop-2.7.2

# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/module/hive/conf

# Folder containing extra libraries required for hive compilation/execution can be controlled by:
export TEZ_HOME=/opt/module/tez-0.9.1    #是你的tez的解压目录
export TEZ_JARS=""
for jar in `ls $TEZ_HOME |grep jar`; do
    export TEZ_JARS=$TEZ_JARS:$TEZ_HOME/$jar
done
for jar in `ls $TEZ_HOME/lib`; do
    export TEZ_JARS=$TEZ_JARS:$TEZ_HOME/lib/$jar
done

export HIVE_AUX_JARS_PATH=/opt/module/hadoop-2.7.2/share/hadoop/common/hadoop-lzo-0.4.20.jar$TEZ_JARS

6.在hive-site.xml文件中最后添加如下配置,更改hive计算引擎为tez

<property>
    <name>hive.execution.engine</name>
    <value>tez</value>
</property>

在这里插入图片描述

7.在hadoop集群中的每一台机器上的yarn-site.xml文件末尾都添加如下内容,注意一定不要忘记是全部机器

<property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
</property>

在这里插入图片描述

8.重启集群,然后在开启hive就可以顺利的进行操作了

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值