IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hive2.3.6集成Tez0.9.1 -> 正文阅读

[大数据]Hive2.3.6集成Tez0.9.1

1.Hive安装

前期准备:Hadoop集群搭建完毕,MySQL准备完毕。
Hive安装包下载:http://archive.apache.org/dist/hive/hive-2.3.6/

  1. 上传apache-hive-2.3.6-bin.tar.gz 到/opt/software目录下,并解压到/opt/module

    [lili@hadoop102 software]$ tar -zxvf apache-hive-2.3.6-bin.tar.gz -C /opt/module/
    
  2. 修改apache-hive-2.3.6-bin名称为hive

    [lili@hadoop102 module]$ mv apache-hive-2.3.6-bin hive
    
  3. 将Mysql的mysql-connector-java-5.1.27-bin.jar拷贝到/opt/module/hive/lib/

    [lili@hadoop102 module]$ cp mysql-connector-java-5.1.27-bin.jar /opt/module/hive/lib/
    
  4. 在/opt/module/hive/conf路径上,创建hive-site.xml文件

    [lili@hadoop102 conf]$ vim 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://hadoop102: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://hadoop102:9083</value>
    </property>
    </configuration>
    
    
  5. 启动Hive的metastore服务

    [lili@hadoop102 hive]$ nohup bin/hive --service metastore &
    
  6. 服务启动完毕后在启动Hive

    [lili@hadoop102 hive]$ bin/hive
    
  7. 到此Hive安装完毕。

  8. 如果启动报错参看

    https://blog.csdn.net/weixin_46560570/article/details/119428379
    

2.Hive集成引擎Tez

Tez是一个Hive的运行引擎,性能优于MR。为什么优于MR呢?

如图所示:

在这里插入图片描述

用Hive直接编写MR程序,假设有四个有依赖关系的MR作业,上图中,绿色是Reduce Task,云状表示写屏蔽,需要将中间结果持久化写到HDFS。

Tez可以将多个有依赖的作业转换为一个作业,这样只需写一次HDFS,且中间节点较少,从而大大提升作业的计算性能。正是因为如此,Tez在进行时转换时假如中间任何一个环节出现问题,整个过程需要从头开始。

2.1Tez安装

Tez安装包下载:http://archive.apache.org/dist/tez/0.9.1/

  1. 上传apache-tez-0.9.1-bin.tar.gz到hadoop102的/opt/software目录,并解压。

    [lili@hadoop102 software]$ tar -zxvf apache-tez-0.9.1-bin.tar.gz -C /opt/module
    
  2. 将apache-tez-0.9.1-bin.tar.gz上传到HDFS的/tez目录下。

    [lili@hadoop102 software]$ hadoop fs -mkdir /tez
    [lili@hadoop102 software]$ hadoop fs -put apache-tez-0.9.1-bin.tar.gz/ /tez
    
  3. 修改/opt/module目录下的apache-tez-0.9.1-bin.tar.gz名称为tez-0.9.1。

    [lili@hadoop102 module]$ mv apache-tez-0.9.1-bin/ tez-0.9.1
    

3.Hive集成Tez

  1. 进入到Hive的/opt/module/hive/conf下面创建一个tez-site.xml文件

    [lili@hadoop102 conf]$ vim 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>
    
  2. 在hive-env.sh文件中添加tez环境变量配置和依赖包环境变量配置

    [atguigu@hadoop102 conf]$ mv hive-env.sh.template hive-env.sh
    [atguigu@hadoop102 conf]$ vim 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
    
    
  3. 在hive-site.xml文件中添加如下配置,更改hive计算引擎

    <property>
        <name>hive.execution.engine</name>
        <value>tez</value>
    </property>
    
  4. 关掉虚拟内存检查,修改yarn-site.xml文件。

    由于运行Tez时检查到用过多内存而被NodeManager杀死进程,这种问题是运行的Container试图使用过多的内存,而被NodeManager 杀死掉了。因此我们需要关闭虚拟内存检查。

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

    修改时候记得将yarn-site.xml文件分发给其他服务器。(不会分发,可以对集群每个服务器都进行修改yarn-site.xml文件)

  5. 重启Hadoop集群。

4.测试

  1. 在Hadoop集群启动完毕后,首先开启Hive的metastore服务

    [lili@hadoop102 hive]$ nohup bin/hive --service metastore &
    
  2. 服务启动完毕后在启动Hive

    [lili@hadoop102 hive]$ bin/hive
    
  3. 创建表

    hive (default) > create table student(id int,name string);
    
  4. 向表中插入数据

    hive (default)> insert into student values(281,"lili");
    

    执行结果

    在这里插入图片描述

  5. 查看数据

    hive (default)> select * from student;
    

    执行结果

    在这里插入图片描述

  6. 到这里没有报错,恭喜你集成完毕!

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:09:17  更:2021-08-07 12:09:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 18:45:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码