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的安装部署

相关推荐
B站计算机毕业设计超人4 小时前
计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型民宿推荐系统 hive民宿可视化 民宿爬虫 大数据毕业设计(源码+LW文档+PPT+讲解)
大数据·hadoop·爬虫·机器学习·课程设计·数据可视化·推荐算法
不剪发的Tony老师7 小时前
Apache Hop:开源版本的Kettle
数据仓库·etl
知初~12 小时前
出行项目案例
hive·hadoop·redis·sql·mysql·spark·database
m0_7482359516 小时前
Python大数据可视化:基于Python的王者荣耀战队的数据分析系统设计与实现_flask+hadoop+spider
hadoop·python·flask
B站计算机毕业设计超人1 天前
计算机毕业设计hadoop+spark旅游景点推荐 旅游推荐系统 旅游可视化 旅游爬虫 景区客流量预测 旅游大数据 大数据毕业设计
大数据·hadoop·爬虫·深度学习·机器学习·数据可视化·推荐算法
专注API从业者2 天前
分布式电商系统中的API网关架构设计
大数据·数据仓库·分布式·架构
我要用代码向我喜欢的女孩表白2 天前
hive迁移补数脚本细粒度 表名-分区唯一键
数据仓库·hive·hadoop
隔壁老登2 天前
查询hive指定数据库下所有表的建表语句并生成数据字典
数据库·hive·hadoop
m0_748233643 天前
【分布式】Hadoop完全分布式的搭建(零基础)
大数据·hadoop·分布式
薇晶晶3 天前
如何安装Hadoop
大数据·hadoop·分布式