Hive部署

1. 最小化安装Hive

本次安装的版本是Hive的3.1.3版本

  1. 解压缩Hive压缩包

    shell 复制代码
    # 解压缩
    tar -zxvf apache-hive-3.1.3-bin.tar.gz、
    # 修改文件夹名称(看个人习惯,可以不执行)
    mv apache-hive-3.1.3-bin apache-hive-3.1.3
  2. 在conf目录下,新增hive-env.sh,添加如下配置

    shell 复制代码
    # 修改hive-env.sh
    vim hive-env.sh
    export HADOOP_HOME=/home/hadoop/hadoop-3.1.3
    export HIVE_CONF_DIR=/home/hadoop/apache-hive-3.1.3/conf
    export HIVE_AUX_JARS_PATH=/home/hadoop/apache-hive-3.1.3/lib
    # source一下
    source /home/hadoop/apache-hive-3.1.3/conf/hive-env.sh
  3. 初始化元数据库

    shell 复制代码
    bin/schematool -dbType derby -initSchema -verbose

    执行过程中报错,这是因为Hive和Hadoop的guava版本冲突导致的

解决方法:

shell 复制代码
# 进入Hive的lib目录
rm guava-19.0.jar
# 将Hadoop的share/hadoop/hdfs/lib目录下的guava拷贝到hive的lib目录下
cp guava-27.0-jre.jar /home/hadoop/apache-hive-3.1.3/lib/
# 拷贝完成后重新执行初始化元数据操作
bin/schematool -dbType derby -initSchema

如果看到下面的输出,表示初始化完成:

  1. 启动Hive

    shell 复制代码
    /bin/hive
  2. 使用Hive

    shell 复制代码
    hive> show databases;
    hive> show tables;
    hive> create table stu(id int, name string);
    hive> insert into stu values(1,"ss");
    hive> select * from stu;


  3. 观察HDFS的路径/user/hive/warehouse/stu

​ 至此,完成了Hive的最小化安装

2. 配置Hive元数据存储到MySQL

MySQL需要提前安装,我这里使用的是之前云服务器上安装好的MySQL数据库

  1. 新建Hive元数据库

  2. 将MySQL的 JDBC 驱动拷贝到Hive的lib目录下

    shell 复制代码
    cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib
  3. 在Hive的conf目录下新建 hive-site.xml文件

    shell 复制代码
    # 新建hive-site.xml文件
    vim hive-site.xml
    # 添加如下内容
    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <configuration>
        <!-- jdbc连接的URL -->
        <property>
            <name>javax.jdo.option.ConnectionURL</name>
            <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false</value>
        </property>
        
        <!-- jdbc连接的Driver-->
        <property>
            <name>javax.jdo.option.ConnectionDriverName</name>
            <value>com.mysql.jdbc.Driver</value>
        </property>
        
    	<!-- jdbc连接的username-->
        <property>
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>root</value>
        </property>
    
        <!-- jdbc连接的password -->
        <property>
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>123456</value>
        </property>
    
        <!-- Hive默认在HDFS的工作目录 -->
        <property>
            <name>hive.metastore.warehouse.dir</name>
            <value>/user/hive/warehouse</value>
        </property>
    </configuration>

  1. 初始化Hive元数据库

    shell 复制代码
    bin/schematool -dbType mysql -initSchema -verbose

    观察到如下输出,表示初始化完成:


  2. 启动Hive

    shell 复制代码
    bin/hive
  3. 使用Hive

    shell 复制代码
    hive> show databases;
    hive> show tables;
    hive> create table stu(id int, name string);
    hive> insert into stu values(1,"ss");
    hive> select * from stu;

3. 部署HiveServer2

Hive的hiveserver2服务的作用是提供jdbc/odbc接口,为用户提供远程访问Hive数据的功能,例如用户期望在个人电脑中访问远程服务中的Hive数据,就需要用到Hiveserver2。

3.1 配置模拟用户功能

hivesever2的模拟用户功能,依赖于Hadoop提供的proxy user(代理用户功能),只有Hadoop中的代理用户才能模拟其他用户的身份访问Hadoop集群。因此,需要将hiveserver2的启动用户设置为Hadoop的代理用户,配置方式如下:

修改Hadoop的core-site.xml文件,然后将文件分到其他机器

shell 复制代码
# 修改core-site.xml
vim core-site.xml
# 增加如下配置
<!--配置所有节点的hadoop用户都可作为代理用户-->
<property>
    <name>hadoop.proxyuser.hadoop.hosts</name>
    <value>*</value>
</property>

<!--配置hadoop用户能够代理的用户组为任意组-->
<property>
    <name>hadoop.proxyuser.hadoop.groups</name>
    <value>*</value>
</property>

<!--配置hadoop用户能够代理的用户为任意用户-->
<property>
    <name>hadoop.proxyuser.hadoop.users</name>
    <value>*</value>
</property>

修改Hive配置,在hive-site.xml文件中添加如下配置信息

shell 复制代码
<!-- 指定hiveserver2连接的host -->
<property>
	<name>hive.server2.thrift.bind.host</name>
	<value>hadoop1</value>
</property>

<!-- 指定hiveserver2连接的端口号 -->
<property>
	<name>hive.server2.thrift.port</name>
	<value>10000</value>
</property>

3.2 启动HiveServer2

  1. 启动

    shell 复制代码
    bin/hive --service hiveserver2
  2. 使用图形化客户端访问hive

  3. 测试Hive是否可以正常执行

    ​ 至此,就完成了Hive的安装部署

相关推荐
yumgpkpm16 分钟前
CMP (类ClouderaCDP7.3(404次编译) )华为鲲鹏Aarch64(ARM)信创环境 查询2100w行 hive 查询策略
数据库·数据仓库·hive·hadoop·flink·mapreduce·big data
CoookeCola13 小时前
MovieNet(A holistic dataset for movie understanding) :面向电影理解的多模态综合数据集与工具链
数据仓库·人工智能·目标检测·计算机视觉·数据挖掘
K_i13421 小时前
Hadoop 集群自动化运维实战
运维·hadoop·自动化
Q26433650231 天前
【有源码】基于Python与Spark的火锅店数据可视化分析系统-基于机器学习的火锅店综合竞争力评估与可视化分析-基于用户画像聚类的火锅店市场细分与可视化研究
大数据·hadoop·python·机器学习·数据分析·spark·毕业设计
想ai抽1 天前
深入starrocks-多列联合统计一致性探查与策略(YY一下)
java·数据库·数据仓库
starfalling10241 天前
【hive】一种高效增量表的实现
hive
顧棟2 天前
【Yarn实战】Yarn 2.9.1滚动升级到3.4.1调研与实践验证
hadoop·yarn
D明明就是我2 天前
Hive 拉链表
数据仓库·hive·hadoop
嘉禾望岗5032 天前
hive join优化和数据倾斜处理
数据仓库·hive·hadoop
yumgpkpm2 天前
华为鲲鹏 Aarch64 环境下多 Oracle 数据库汇聚操作指南 CMP(类 Cloudera CDP 7.3)
大数据·hive·hadoop·elasticsearch·zookeeper·big data·cloudera