【博学谷学习记录】超强总结,用心分享 | Hive介绍与安装

 #博学谷IT技术支持#  

一、Hive概述

  1. Hive是数仓管理工具。
  2. Hive可以将数仓存在HDFS上的文件变成一张张的表。
  3. Hive提供一种HiveSQL可以分析处理表。
  4. HiveSQL底层默认是MapReduce,可以换成其他引擎如Spark。
  5. HiveSQL会匹配底层的MR模板,匹配上则执行,否则不能执行。

二、Hive的特点

  1. Hive只是一个工具,不存任何数据,Hive的表数据存在HDFS上,Hive的元数据(表结构和HDFS文件之间的映射关系)存在第三方的数据库中(MySQL)。
  2. Hive底层引擎默认是MapReduce,可换成其他引擎如Tez,Spark

三、Hive的架构

四、Hive的安装

 hive的安装共有三种方式:内嵌模式、本地模式、远程模式

内嵌模式:使用内嵌的Derby数据库存储元数据,不需要额外启动Meta store服务,数据库和Metastore服务嵌入在主Hive Server进程中。默认配置简单但是只能一个客户端连接。

本地模式:采用外部数据库存储元数据,不需要单独启动Meta store服务,用的是跟hive同一个进程里的Metastore服务,即启动一个hive服务里面默认会启动一个Metastore服务,hive根据hive.metastore.uris参数值判断,如果为空则为本地模式。

远程模式:需要单独启动Metastore服务,每个客户端在配置文件里配置连接到该服务。Metastore和hive运行在不同的进程。生产环境建议用远程模式配置Metastore。其他依赖hive的软件都可以通过Metastore访问hive。

远程模式需要配置hive.metastore.uris参数来指定metastore服务运行的机器ip和端口,并且需要单独手动启动metastore服务。HiveServer2是hive启动了一个server,客户端可以使用JDBC协议,通过IP+Port的方式访问。

1. 上传压缩包并解压

cd /export/software/
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /export/server
cd /export/server
mv apache-hive-3.1.2-bin hive-3.1.2

2. 解决hadoop、hive之间guava版本差异

cd /export/server/hive-3.1.2
rm -rf lib/guava-19.0.jar
cp /export/server/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/

3. 添加mysql jdbc驱动到hive安装包lib/文件下

4. 修改hive环境变量文件,添加Hadoop_HOME

cd /export/server/hive-3.1.2/conf/
mv hive-env.sh.template hive-env.sh

vim hive-env.sh

HADOOP_HOME=/export/server/hadoop-3.3.0
export HIVE_CONF_DIR=/export/server/hive-3.1.2/conf
export HIVE_AUX_JARS_PATH=/export/server/hive-3.1.2/lib
export HADOOP_HEAPSIZE=4096

5. 在conf目录下新增hive-site.xml文件,配置mysql等相关信息

vim hive-site.xml

<configuration>
    <!-- 存储元数据mysql相关配置 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value> jdbc:mysql://node3:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>

    <!-- H2S运行绑定host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>node3</value>
    </property>

    <!-- 远程模式部署metastore 服务地址 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://node3:9083</value>
    </property>

    <!-- 关闭元数据存储授权  -->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>

    <!-- 关闭元数据存储版本的验证 -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
</configuration>

6. 添加环境变量

vim /etc/profile

export HIVE_HOME=/export/server/hive-3.1.2
export PATH=:$HIVE_HOME/bin:$PATH


source /etc/profile

7. 初始化metadata

cd /export/server/hive-3.1.2
schematool -initSchema -dbType mysql -verbos

初始化成功会在mysql中创建74张表。 

8. 启动Metastore和Hiveserver2

nohup /export/server/hive-3.1.2/bin/hive --service metastore  2>&1 &
nohup /export/server/hive-3.1.2/bin/hive --service hiveserver2 2>&1 &

9. 验证是否安装成功

命令行输入hive,回车,出现一个终端可以输入sql命令

show databases;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值