Hadoop生态圈框架部署(九)- Hive部署

打印 上一主题 下一主题

主题 1020|帖子 1020|积分 3060


前言

随着大数据技术的快速发展,Hive作为一种数据堆栈工具,在处置惩罚大规模数据集时展现了其独特的上风。它基于Hadoop分布式文件体系(HDFS)之上提供了一种雷同SQL的查询语言——HiveQL,使得熟悉关系型数据库的开发者可以或许轻松地举行数据查询和分析。别的,Hive还支持数据汇总、即席查询以及数据分析等任务,成为企业级数据处置惩罚解决方案中的告急组成部分。
本教程旨在为读者提供一份详尽且易于理解的Hive部署教程。通过按照本文档步骤操作,您可以成功地在单机或多机环境中搭建起Hive环境,并实现与Hadoop集群的精良集成。我们将从下载Hive安装包开始,逐步先容怎样上传、解压、配置Hive环境变量及核心配置文件,直至完成Hive服务的启动和客户端访问。不但如此,我们还将进一步探讨怎样设置长途连接,以便用户可以从其他主机上连接到Hive执行查询任务。

一、Hive部署(手动部署)

下载Hive

点击在官网下载Hive3.1.3安装包:https://archive
.apache.org/dist/hive
/hive
-3.1.3/apache-hive
-3.1.3-bin.tar.gz
点击在华为镜像站下载Hvie3.1.3安装包:https://repo.huaweicloud.com/apache/hive
/hive
-3.1.3/apache-hive
-3.1.3-bin.tar.gz
1. 上传安装包

通过拖移的方式将下载的Hive安装包apache-hive
-3.1.3-bin.tar.gz上传至虚拟机hadoop3的/export/software目次。

2. 解压Hive安装包

2.1 解压

虚拟机hadoop3上传完成后将Hive安装包通过解压方式安装至/export/servers目次。
  1. tar -zxvf /export/software/apache-hive
  2. -3.1.3-bin.tar.gz -C /export/servers/
复制代码
解压完成如下图所示。

2.2 重定名

虚拟机hadoop3执行如下下令将apache-hive
-3.1.3-bin重定名为hive
-3.1.3。
  1. mv /export/servers/apache-hive
  2. -3.1.3-bin /export/servers/hive
  3. -3.1.3
复制代码

2.3 解决guava冲突

如下图所示,hadoop中的guava与hive
中的guava版本不一致,会产生冲突,需要把hive
的guava更换为hadoop的guava高版本。

虚拟机hadoop3执行如下下令解决guava冲突标题。
  1. rm -f /export/servers/hive
  2. -3.1.3/lib/guava-19.0.jar
  3. cp /export/servers/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar /export/servers/hive
  4. -3.1.3/lib
复制代码

3. 配置Hive

3.1 配置Hive环境变量

虚拟机hadoop3执行如下下令设置Hive环境变量,并加载体系环境变量配置文件。
  1. echo >> /etc/profile
  2. echo 'export HIVE_HOME=/export/servers/hive
  3. -3.1.3' >> /etc/profile
  4. echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile
  5. source /etc/profile
复制代码

3.2 修改 hive
-site.xml 配置文件


虚拟机hadoop3使用cat下令把配置内容重定向并写入到 /export/servers/hive
-3.1.3/conf/hive
-site.xml 文件。
  1. cat >/export/servers/hive
  2. -3.1.3/conf/hive
  3. -site.xml <<EOF
  4. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  5. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
  6. <configuration>
  7.     <!-- 配置JDO(Java Data Objects)选项,指定Hive元数据存储的数据库连接URL。这里使用的是MySQL数据库,并且如果数据库不存在则自动创建。 -->
  8.     <property>
  9.         <name>javax.jdo.option.ConnectionURL</name>
  10.         <value>jdbc:mysql://hadoop1:3306/hive
  11. ?createDatabaseIfNotExist=true</value>
  12.     </property>
  13.     <!-- 指定用于连接数据库的JDBC驱动类名 -->
  14.     <property>
  15.         <name>javax.jdo.option.ConnectionDriverName</name>
  16.         <value>com.mysql.cj.jdbc.Driver</value>
  17.     </property>
  18.     <!-- 数据库连接用户名 -->
  19.     <property>
  20.         <name>javax.jdo.option.ConnectionUserName</name>
  21.         <value>root</value>
  22.     </property>
  23.     <!-- 数据库连接密码 -->
  24.     <property>
  25.         <name>javax.jdo.option.ConnectionPassword</name>
  26.         <value>123456</value>
  27.     </property>
  28.     <!-- 指定Hive元数据仓库在HDFS上目录的位置 -->
  29.     <property>
  30.         <name>hive
  31. .metastore.warehouse.dir</name>
  32.         <value>/user/hive
  33. _local/warehouse</value>
  34.     </property>
  35. </configuration>
  36. EOF
复制代码

3.3 配置MySQL驱动包

3.3.1 下在MySQL驱动包

点击下载MySQL驱动jar包:https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.30/mysql-connector-java-8.0.30.jar
3.3.2 上传MySQL驱动包

通过拖移的方式将下载的MySQL驱动包上传至虚拟机hadoop3的/export/software目次。

3.3.3 配置MySQL驱动包

虚拟机hadoop3执行如下下令复制MySQL驱动包到/export/servers/hive
-3.1.3/lib目次下。
  1. cp /export/software/mysql-connector-java-8.0.30.jar /export/servers/hive
  2. -3.1.3/lib/
复制代码

4. 初始化MySQL上的存储hive
元数据的数据库


虚拟机hadoop3执行如下下令初始化MySQL上的存储hive
元数据的数据库。
  1. schematool -initSchema -dbType mysql
复制代码

初始化完成如下图所示。

5. 进入Hive客户端

虚拟机hadoop3执行如下下令在本地进入Hive客户端。
  1. hive
复制代码

退出Hive客户端。可以使用exit;
下令或者按快捷键Ctrl+c退出。
  1. exit;
复制代码

6. 设置长途连接

Hive 提供了两种服务以支持用户的长途连接:

  • MetaStore 服务:MetaStore 服务负责管理 Hive 的元数据,并通过与关系型数据库的连接来存储和检索这些元数据。
  • HiveServer2 服务:HiveServer2 服务基于 Thrift 协议实现,提供了通过 JDBC 和 ODBC 连接到 Hive 的功能。它依赖于 MetaStore 服务来获取元数据信息。用户在通过 HiveServer2 服务长途连接到 Hive 之前,需要确保 MetaStore 服务已经启动并运行。
6.1 启动MetaStore服务

虚拟机hadoop3执行如下下令启动MetaStore服务。此时的MetaStore服务是前台启动,退出将会停止MetaStore服务。
  1. hive
  2. --service metastore
复制代码

   可以按快捷键Ctrl+c停止MetaStore服务。
  由于前台启动会占用页面,执行其他下令时需要复制一个新标签,我们可以在停止MetaStore服务后使用如下下令把MetaStore服务放到后台启动,并指定日记输出位置。
  1. mkdir -p /export/servers/hive
  2. -3.1.3/logsnohup hive
  3. --service metastore > /export/servers/hive
  4. -3.1.3/logs/metastore.log 2>&1 &
复制代码

可以使用如下下令检察启动后的MetaStore服务进程,此时如果要停止MetaStore服务,需要使用kill下令杀死对应进程。
  1. ps -ef | grep hive
复制代码

6.2 启动HiveServer2服务

复制一个hadoop3标签,在虚拟机hadoop3执行如下下令启动HiveServer2服务。此时的HiveServer2服务是前台启动,退出将会停止HiveServer2服务。启动HiveServer2服务后,用户可以通过HiveServer2服务长途连接Hive。
  1. hive
  2. --service hive
  3. server2
复制代码

   可以按快捷键Ctrl+c停止HiveServer2服务。
  由于前台启动会占用页面,执行其他下令时需要复制一个新标签,我们可以在停止HiveServer2服务后使用如下下令把HiveServer2服务放到后台启动,并指定日记输出位置。
  1. nohup hive
  2. --service hive
  3. server2 > /export/servers/hive
  4. -3.1.3/logs/hive
  5. server2.log 2>&1 &
复制代码

可以使用如下下令检察启动后的HiveServer2服务进程,此时如果要停止HiveServer2服务,需要使用kill下令杀死对应进程。
  1. ps -ef | grep hive
复制代码

6.3 进入Hive客户端

复制一个hadoop3标签,在虚拟机hadoop3执行如下下令长途进入Hive客户端。
  1. beeline -u jdbc:hive
  2. 2://hadoop3:10000 -n root --hive
  3. conf hive
  4. .metastore.uris=thrift://hadoop3:9083
复制代码


  • 参数 -u:指定HiveServer2服务的JDBC URL。

    • jdbc:hive
      2://hadoop3:10000 中:

      • hadoop3 是运行HiveServer2服务的服务器主机名。
      • 10000 是HiveServer2服务默认使用的端口号。


  • 参数 -n:指定连接HiveServer2服务时使用的用户名。

    • root 是用户名,该用户必须具有操作HDFS的得当权限。



二、在hadoop2部署一个hive
作为客户端


1. 在hadoop2部署hive


虚拟机hadoop3执行如下下令复制hadoop3安装好的hive
到虚拟机hadoop2。
  1. scp -r root@hadoop3:/export/servers/hive
  2. -3.1.3 root@hadoop2:/export/servers/
复制代码

2. 配置

2.1 配置Hive环境变量

虚拟机hadoop2执行如下下令设置Hive环境变量,并加载体系环境变量配置文件。
  1. echo >> /etc/profile
  2. echo 'export HIVE_HOME=/export/servers/hive
  3. -3.1.3' >> /etc/profile
  4. echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile
  5. source /etc/profile
复制代码

2.2 修改 hive
-site.xml 配置文件


虚拟机hadoop2使用cat下令把配置内容重定向并写入到 /export/servers/hive
-3.1.3/conf/hive
-site.xml 文件。
  1. cat >/export/servers/hive
  2. -3.1.3/conf/hive
  3. -site.xml <<EOF<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration>    <!-- 指定Hive Metastore服务的地址 -->    <property>        <name>hive
  4. .metastore.uris</name>        <value>thrift://hadoop3:9083</value>    </property></configuration>EOF
复制代码

3. 进入Hive客户端

虚拟机hadoop2执行如下下令长途进入部署在hadoop3的Hive
  1. beeline -u jdbc:hive
  2. 2://hadoop3:10000 -n root
复制代码

留意

在Hive安装并配置完成后,每当体系重启后,为了确保Hive可以或许正常工作,首先需要启动Hadoop集群。
  1. start-all.sh
复制代码
如果还需要支持长途连接功能,则必须在虚拟机hadoop3上手动启动Hive的MetaStore服务和HiveServer2服务。
  1. mkdir -p /export/servers/hive
  2. -3.1.3/logsnohup hive
  3. --service metastore > /export/servers/hive
  4. -3.1.3/logs/metastore.log 2>&1 &nohup hive
  5. --service hive
  6. server2 > /export/servers/hive
  7. -3.1.3/logs/hive
  8. server2.log 2>&1 &
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表