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

相关推荐
viperrrrrrrrrr75 小时前
大数据学习(36)- Hive和YARN
大数据·hive·学习
想做富婆9 小时前
大数据,Hadoop,HDFS的简单介绍
大数据·hadoop·分布式
WorkAgent10 小时前
windows下本地部署安装hadoop+scala+spark-【不需要虚拟机】
hadoop·spark·scala
JZC_xiaozhong11 小时前
低空经济中的数据孤岛难题,KPaaS如何破局?
大数据·运维·数据仓库·安全·ci/cd·数据分析·数据库管理员
村口蹲点的阿三21 小时前
Spark SQL 中对 Map 类型的操作函数
javascript·数据库·hive·sql·spark
重生之Java再爱我一次1 天前
Hadoop集群搭建
大数据·hadoop·分布式
中东大鹅1 天前
MongoDB的索引与聚合
数据库·hadoop·分布式·mongodb
狮歌~资深攻城狮1 天前
TiDB出现后,大数据技术的未来方向
数据库·数据仓库·分布式·数据分析·tidb