欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > Hive部署

Hive部署

2025/1/30 15:02:57 来源:https://blog.csdn.net/weixin_66400215/article/details/145312249  浏览:    关键词:Hive部署

1. 最小化安装Hive

本次安装的版本是Hive的3.1.3版本
在这里插入图片描述

  1. 解压缩Hive压缩包

    # 解压缩
    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,添加如下配置

    # 修改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. 初始化元数据库

    bin/schematool -dbType derby -initSchema -verbose
    

    执行过程中报错,这是因为Hive和Hadoop的guava版本冲突导致的
    在这里插入图片描述

解决方法:

# 进入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

    /bin/hive
    

    在这里插入图片描述

  2. 使用Hive

    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目录下

    cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib
    

    在这里插入图片描述

  3. 在Hive的conf目录下新建 hive-site.xml文件

    # 新建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元数据库

    bin/schematool -dbType mysql -initSchema -verbose
    

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

    在这里插入图片描述

  2. 启动Hive

    bin/hive
    

    在这里插入图片描述

  3. 使用Hive

    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文件,然后将文件分到其他机器

# 修改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文件中添加如下配置信息

<!-- 指定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. 启动

    bin/hive --service hiveserver2
    
  2. 使用图形化客户端访问hive
    在这里插入图片描述

  3. 测试Hive是否可以正常执行
    在这里插入图片描述
    ​ 至此,就完成了Hive的安装部署

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com