欢迎光临
大数据平台 hive 部署
   

大数据平台 hive 部署

大数据平台 hive 部署

平台部署知识

文章讲解了 hive 的安装与部署 需要 Hadoop 以及 MySQL。

目录

文章目录

  • 大数据平台 hive 部署
    • 目录
    • 前期准备
      • 解压 hive 包
      • 配置 hive 的环境变量
      • 解决 jar 冲突
      • 内嵌模式部署
        • 修改 hive-env.sh 文件
        • 初始化元数据库 使用 derby
        • 启动 HDFS 和 hive 的客户端
        • 创建数据库并查询数据库
        • 本地+数据库 模式部署
          • 安装 MySQL
          • 在 MySQL 中创建 hive 需要的用户和数据库
          • 配置 hive
            • 配置 hive-site.xml
            • 配置 hive-env.sh
            • 装载MySQL驱动给 hive
            • 初始化元数据库
            • 启动 metaStore
            • 启动 HDFS 还有 hive的客户端
            • HQL 创建数据库并测试

              前期准备

              在这里我们需要将 hive 的包下载下来,这边我们使用的就是 hive 的 3.1.2 版本,各位小伙伴可以先下载这个版本的压缩包,另外还需要注意,hive 依赖 Hadoop 平台,它会将数据存储到 HDFS 中,计算任务运行在 YARN 资源调度集群,所以我们需要先参照 《大数据平台中 Hadoop 部署》 文章来将 Hadoop 部署起来!

              hive官网:https://hive.apache.org/

              解压 hive 包

              然后我们需要将 hive 解压到一个目录中,这里就是 hive 的安装目录了,下面是笔者解压之后的目录展示。

              root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# ll
              total 84
              drwxr-xr-x 10 root root   4096  3月 14  2023 ./
              drwxrwxrwx 13 root root   4096  2月 29 17:32 ../
              drwxr-xr-x  3 root root   4096  3月 14  2023 bin/
              drwxr-xr-x  2 root root   4096  3月 14  2023 binary-package-licenses/
              drwxr-xr-x  2 root root   4096  3月 14  2023 conf/
              drwxr-xr-x  4 root root   4096  3月 14  2023 examples/
              drwxr-xr-x  7 root root   4096  3月 14  2023 hcatalog/
              drwxr-xr-x  2 root root   4096  3月 14  2023 jdbc/
              drwxr-xr-x  4 root root  16384  3月 14  2023 lib/
              -rw-r--r--  1 root staff 20798  8月 23  2019 LICENSE
              -rw-r--r--  1 root staff   230  8月 23  2019 NOTICE
              -rw-r--r--  1 root staff  2469  8月 23  2019 RELEASE_NOTES.txt
              drwxr-xr-x  4 root root   4096  3月 14  2023 scripts/
              root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# 
              

              配置 hive 的环境变量

              我们需要打开 /etc/profile 文件并在文件的末尾追加下面的代码段这会配置好环境变量。

              # 开始编辑环境变量
              vim /etc/profile
              # 下面是环境变量
              export JAVA_HOME="/opt/software/jdk1.8.0_202"
              export HADOOP_HOME="/opt/software/hadoop-3.2.1"
              export HIVE_HOME="/opt/software/apache-hive-3.1.2-bin"
              export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HIVE_HOME}/bin:$PATH
              

              解决 jar 冲突

              # 解决日志冲突
              mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak
              # 解决 HDFS 操作冲突
              rm -rf ${HIVE_HOME}/lib/guava-19.0.jar
              cp ${HADOOP_HOME}/share/hadoop/common/lib/guava-27.0-jre.jar ${HIVE_HOME}/lib/
              

              内嵌模式部署

              本章节涉及的所有路径需要根据您设备的情况进行修改哦!!

              Hive 会将数据存储在 HDFS 中,会将元数据存储在数据库中,而在我们的入门测试阶段,可以直接将 hive 进行本地部署和使用,这样的操作就是让 hive 的元数据存储在 derby(hive 自带的元数据库) 中!

              修改 hive-env.sh 文件

              # 修改 hive 的启动脚本文件
              vim ./conf/hive-env.sh.template 
              # 在 脚本文件中找到下面的类似的配置 解开 HIVE_CONF_DIR 和 HIVE_AUX_JARS_PATH 的注释 并根据需要进行配置
              # Hive Configuration Directory can be controlled by:
              export HIVE_CONF_DIR=/opt/software/apache-hive-3.1.2-bin/conf
              # Folder containing extra libraries required for hive compilation/execution can be controlled by:
              export HIVE_AUX_JARS_PATH=/opt/software/apache-hive-3.1.2-bin/lib
              

              操作之后保存 然后执行下面的命令

              # 为 hive-env 文件重命名 让其生效
              mv ./conf/hive-env.sh.template ./conf/hive-env.sh
              

              初始化元数据库 使用 derby

              root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# ./bin/schematool -initSchema -dbType derby
              Metastore connection URL:        jdbc:derby:;databaseName=metastore_db;create=true
              Metastore Connection Driver :    org.apache.derby.jdbc.EmbeddedDriver
              Metastore connection User:       APP
              Starting metastore schema initialization to 3.1.0
              Initialization script hive-schema-3.1.0.derby.sql
              Initialization script completed
              schemaTool completed
              

              启动 HDFS 和 hive 的客户端

              root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# /opt/software/hadoop-3.2.1/sbin/start-all.sh 
              WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.
              Starting namenodes on [liming141]
              Starting datanodes
              Starting secondary namenodes [liming141]
              Starting resourcemanager
              Starting nodemanagers
              root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# hive
              

              创建数据库并查询数据库

              大数据平台 hive 部署,外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传,第1张

              本地+数据库 模式部署

              如果我们使用数据库来存储所有的 hive 元数据,也就实现了最基础的部署架构,本地部署模式,本地部署下可以将元数据存储到单独的数据库中,能够有效的避免元数据量过大,无法存储的问题。

              本章中出现的所有路径都需要按照您的设备来进行修改!

              安装 MySQL

              由于我们使用的是 乌班图 因此可以直接调用 sudo apt-get update 以及 sudo apt-get install mysql-server 命令来将 MySQL 安装进去,接下来就是安装好之后进入 mysql 的样子。

              root@liming-virtual-machine:~# mysql -uroot
              Welcome to the MySQL monitor.  Commands end with ; or \g.
              Your MySQL connection id is 8
              Server version: 8.0.36-0ubuntu0.22.04.1 (Ubuntu)
              Copyright (c) 2000, 2024, Oracle and/or its affiliates.
              Oracle is a registered trademark of Oracle Corporation and/or its
              affiliates. Other names may be trademarks of their respective
              owners.
              Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
              mysql> 
              

              在 MySQL 中创建 hive 需要的用户和数据库

              # 创建好hive的元数据库
              create
              database if not exists hive;
              # 创建一个用户hive 指定其密码为hive1234
              CREATE
              USER 'hive'@'%' IDENTIFIED BY 'Hive@12341234';
              # 赋予该用户针对 hive 库中表的所有权限
              grant all on hive.* to 'hive'@'%';
              # 查询用户表信息
              select user, host
              from mysql.user;
              

              配置 hive

              本地模式下部署,hive 需要依赖于MySQL这类服务器,所以我们需要告知hive 有关元数据库的一些信息,在这里就是我们配置好的示例。

              配置 hive-site.xml

              您需要打开 hive-site.xml 并输入下面的配置项目。

              # 编辑 hive-site.xml
              vim /opt/software/apache-hive-3.1.2-bin/conf/hive-site.xml
              # 在文件中输入下面的配置 注意 IP 地址需要修改!
              
              
                  
                  
                      javax.jdo.option.ConnectionURL
                      jdbc:mysql://127.0.0.1:3306/hive
                  
                  
                  
                      javax.jdo.option.ConnectionDriverName
                      com.mysql.cj.jdbc.Driver
                  
                  
                  
                      javax.jdo.option.ConnectionUserName
                      hive
                  
                  
                      javax.jdo.option.ConnectionPassword
                      Hive@12341234
                  
                  
                  
                      hive.metastore.uris
                      thrift://192.168.0.141:9083
                  
              
              
              配置 hive-env.sh

              这个操作 和 《内嵌模式部署》 章节中是一样的,您可以查阅其中的 《修改 hive-env.sh 文件》 小节。

              装载MySQL驱动给 hive

              您可以点击 《mysql-connector-j-8.0.33.jar》 来下载这个 jar 然后手动放到 ${HIVE_HOME}/lib 目录中,当然也可以直接使用下面的命令来实现包的自动装载!

              cd ${HIVE_HOME}/lib
              wget https://diskmirror.lingyuzhao.top//1/Binary/Article/Files/mysql-connector-j-8.0.33.jar
              

              初始化元数据库

              # 初始化元数据库
              ${HIVE_HOME}/bin/schematool -initSchema -dbType mysql -verbose
              

              启动 metaStore

              这是一个阻塞线程,因此需要单独终端启动,或者直接在命令结尾加 &。

              root@liming-virtual-machine:~# hive --service metastore -p 9083
              2024-03-08 15:32:00: Starting Hive Metastore Server
              

              启动 HDFS 还有 hive的客户端

              root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# /opt/software/hadoop-3.2.1/sbin/start-all.sh 
              WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER. Using value of HADOOP_SECURE_DN_USER.
              Starting namenodes on [liming141]
              Starting datanodes
              Starting secondary namenodes [liming141]
              Starting resourcemanager
              Starting nodemanagers
              root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# hive
              

              HQL 创建数据库并测试

              到这里 本地部署就成功了 元数据都是存储在 MySQL内的!

              root@liming-virtual-machine:/opt/software/apache-hive-3.1.2-bin# hive
              Hive Session ID = 02bad037-43ec-4aa9-ad61-eaabe20abd3c
              Logging initialized using configuration in jar:file:/opt/software/apache-hive-3.1.2-bin/lib/hive-common-3.1.2.jar!/hive-log4j2.properties Async: true
              Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
              Hive Session ID = e8686efd-c78b-45c9-b0c7-280481b9a3a0
              hive> create database myTest;
              OK
              Time taken: 2.184 seconds
              hive> show databases;
              OK
              default
              mytest
              Time taken: 0.431 seconds, Fetched: 2 row(s)
              hive> 
              

              =未完待续=


              文中有些资源可能不能正常显示,您可以访问https://www.lingyuzhao.top/?/linkController=/articleController&link=43091202查看文章最新动态!

               
打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《大数据平台 hive 部署》
文章链接:https://goodmancom.com/wl/175797.html