当前位置: 首页 > news >正文

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

文章目录

  • 前言
  • 一、Hive部署(手动部署)
    • 下载Hive
    • 1. 上传安装包
    • 2. 解压Hive安装包
      • 2.1 解压
      • 2.2 重命名
      • 2.3 解决guava冲突
    • 3. 配置Hive
      • 3.1 配置Hive环境变量
      • 3.2 修改 hive-site.xml 配置文件
      • 3.3 配置MySQL驱动包
      • 3.3.1 下在MySQL驱动包
      • 3.3.2 上传MySQL驱动包
      • 3.3.3 配置MySQL驱动包
    • 4. 初始化MySQL上的存储hive元数据的数据库
    • 5. 进入Hive客户端
    • 6. 设置远程连接
      • 6.1 启动MetaStore服务
      • 6.2 启动HiveServer2服务
      • 6.3 进入Hive客户端
  • 二、在hadoop2部署一个hive作为客户端
    • 1. 在hadoop2部署hive
    • 2. 配置
      • 2.1 配置Hive环境变量
      • 2.2 修改 hive-site.xml 配置文件
    • 3. 进入Hive客户端


前言

随着大数据技术的快速发展,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目录。

tar -zxvf /export/software/apache-hive-3.1.3-bin.tar.gz -C /export/servers/

解压完成如下图所示。

在这里插入图片描述

2.2 重命名

虚拟机hadoop3执行如下命令将apache-hive-3.1.3-bin重命名为hive-3.1.3。

mv /export/servers/apache-hive-3.1.3-bin /export/servers/hive-3.1.3

在这里插入图片描述

2.3 解决guava冲突

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

在这里插入图片描述

虚拟机hadoop3执行如下命令解决guava冲突问题。

rm -f /export/servers/hive-3.1.3/lib/guava-19.0.jar
cp /export/servers/hadoop-3.3.0/share/hadoop/common/lib/guava-27.0-jre.jar /export/servers/hive-3.1.3/lib

在这里插入图片描述

3. 配置Hive

3.1 配置Hive环境变量

虚拟机hadoop3执行如下命令设置Hive环境变量,并加载系统环境变量配置文件。

echo >> /etc/profile
echo 'export HIVE_HOME=/export/servers/hive-3.1.3' >> /etc/profile
echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile
source /etc/profile

在这里插入图片描述

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

虚拟机hadoop3使用cat命令把配置内容重定向并写入到 /export/servers/hive-3.1.3/conf/hive-site.xml 文件。

cat >/export/servers/hive-3.1.3/conf/hive-site.xml <<EOF
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- 配置JDO(Java Data Objects)选项,指定Hive元数据存储的数据库连接URL。这里使用的是MySQL数据库,并且如果数据库不存在则自动创建。 --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://hadoop1:3306/hive?createDatabaseIfNotExist=true</value></property><!-- 指定用于连接数据库的JDBC驱动类名 --><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.cj.jdbc.Driver</value></property><!-- 数据库连接用户名 --><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><!-- 数据库连接密码 --><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><!-- 指定Hive元数据仓库目录的位置 --><property><name>hive.metastore.warehouse.dir</name><value>/user/hive_local/warehouse</value></property>
</configuration>
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目录下。

cp /export/software/mysql-connector-java-8.0.30.jar /export/servers/hive-3.1.3/lib/

在这里插入图片描述

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

虚拟机hadoop3执行如下命令初始化MySQL上的存储hive元数据的数据库。

schematool -initSchema -dbType mysql

在这里插入图片描述

初始化完成如下图所示。

在这里插入图片描述

5. 进入Hive客户端

虚拟机hadoop3执行如下命令在本地进入Hive客户端。

hive

在这里插入图片描述

退出Hive客户端。可以使用exit;命令或者按快捷键Ctrl+c退出。

exit;

在这里插入图片描述

6. 设置远程连接

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

  1. MetaStore 服务:MetaStore 服务负责管理 Hive 的元数据,并通过与关系型数据库的连接来存储和检索这些元数据。

  2. HiveServer2 服务:HiveServer2 服务基于 Thrift 协议实现,提供了通过 JDBC 和 ODBC 连接到 Hive 的功能。它依赖于 MetaStore 服务来获取元数据信息。用户在通过 HiveServer2 服务远程连接到 Hive 之前,需要确保 MetaStore 服务已经启动并运行。

6.1 启动MetaStore服务

虚拟机hadoop3执行如下命令启动MetaStore服务。此时的MetaStore服务是前台启动,退出将会停止MetaStore服务。

hive --service metastore

在这里插入图片描述

可以按快捷键Ctrl+c停止MetaStore服务。

由于前台启动会占用页面,执行其他命令时需要复制一个新标签,我们可以在停止MetaStore服务后使用如下命令把MetaStore服务放到后台启动,并指定日志输出位置。

mkdir -p /export/servers/hive-3.1.3/logs
nohup hive --service metastore > /export/servers/hive-3.1.3/logs/metastore.log 2>&1 &

在这里插入图片描述

可以使用如下命令查看启动后的MetaStore服务进程,此时如果要停止MetaStore服务,需要使用kill命令杀死对应进程。

ps -ef | grep hive

在这里插入图片描述

6.2 启动HiveServer2服务

复制一个hadoop3标签,在虚拟机hadoop3执行如下命令启动HiveServer2服务。此时的HiveServer2服务是前台启动,退出将会停止HiveServer2服务。启动HiveServer2服务后,用户可以通过HiveServer2服务远程连接Hive。

hive --service hiveserver2

在这里插入图片描述

可以按快捷键Ctrl+c停止HiveServer2服务。

由于前台启动会占用页面,执行其他命令时需要复制一个新标签,我们可以在停止HiveServer2服务后使用如下命令把HiveServer2服务放到后台启动,并指定日志输出位置。

nohup hive --service hiveserver2 > /export/servers/hive-3.1.3/logs/hiveserver2.log 2>&1 &

在这里插入图片描述

可以使用如下命令查看启动后的HiveServer2服务进程,此时如果要停止HiveServer2服务,需要使用kill命令杀死对应进程。

ps -ef | grep hive

在这里插入图片描述

6.3 进入Hive客户端

复制一个hadoop3标签,在虚拟机hadoop3执行如下命令远程进入Hive客户端。

beeline -u jdbc:hive2://hadoop3:10000 -n root --hiveconf hive.metastore.uris=thrift://hadoop3:9083
  • 参数 -u:指定HiveServer2服务的JDBC URL。

    • jdbc:hive2://hadoop3:10000 中:
      • hadoop3 是运行HiveServer2服务的服务器主机名。
      • 10000 是HiveServer2服务默认使用的端口号。
  • 参数 -n:指定连接HiveServer2服务时使用的用户名。

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

在这里插入图片描述


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

1. 在hadoop2部署hive

虚拟机hadoop3执行如下命令复制hadoop3安装好的hive到虚拟机hadoop2。

scp -r root@hadoop3:/export/servers/hive-3.1.3 root@hadoop2:/export/servers/

在这里插入图片描述

2. 配置

2.1 配置Hive环境变量

虚拟机hadoop2执行如下命令设置Hive环境变量,并加载系统环境变量配置文件。

echo >> /etc/profile
echo 'export HIVE_HOME=/export/servers/hive-3.1.3' >> /etc/profile
echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile
source /etc/profile

在这里插入图片描述

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

虚拟机hadoop2使用cat命令把配置内容重定向并写入到 /export/servers/hive-3.1.3/conf/hive-site.xml 文件。

cat >/export/servers/hive-3.1.3/conf/hive-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.metastore.uris</name><value>thrift://hadoop3:9083</value></property>
</configuration>
EOF

在这里插入图片描述

3. 进入Hive客户端

虚拟机hadoop2执行如下命令远程进入部署在hadoop3的Hive

beeline -u jdbc:hive2://hadoop3:10000 -n root

相关文章:

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

文章目录 前言一、Hive部署&#xff08;手动部署&#xff09;下载Hive1. 上传安装包2. 解压Hive安装包2.1 解压2.2 重命名2.3 解决guava冲突 3. 配置Hive3.1 配置Hive环境变量3.2 修改 hive-site.xml 配置文件3.3 配置MySQL驱动包3.3.1 下在MySQL驱动包3.3.2 上传MySQL驱动包3.…...

c语言的qsort函数理解与使用

介绍&#xff1a;qsort 函数是 C 标准库中用于排序的快速排序算法函数。它的用法非常灵活&#xff0c;可以对任意类型的元素进行排序&#xff0c;只要提供了比较函数即可。 qsort 函数原型及参数解释&#xff1a; void qsort ( void* base, //指向要排序的数组的首元素…...

Java 语言的起源发展与基本概念(JDK,JRE,JVM)

Java语言的起源 源起 Java语言最初是由Sun Microsystems公司&#xff08;该公司于2009年被Oracle公司收购&#xff09;开发的一种编程语言。其创造者是詹姆斯高斯林&#xff08;James Gosling&#xff09;&#xff0c;他是一位加拿大计算机科学家。其前身名为Oak&#xff08;橡…...

03_变量

变量 var num 10; 变量的重新赋值 var num10; num 20; 变量提升 JavaScript 引擎的工作方式是&#xff0c;先解析代码&#xff0c;获取所有被声明的变量&#xff0c;然后再一行一行地运行。这造成的结果&#xff0c;就是所有的变量的声明语句&#xff0c;都会被提升到代码的…...

[论文阅读-综述]Supervised Speech Separation Based on Deep Learning: An Overview

基于深度学习的监督语音分离&#xff1a;综述 出版&#xff1a;IEEE 核心&#xff1a;使用语音分离将目标语音信号与噪声混合分离的计算 本文用于对该文章的学习&#xff0c;主要是对内容的理解翻译与笔记 1. 语音分离介绍 语音分离的目标&#xff1a;将目标语音与背景干扰分…...

群控系统服务端开发模式-应用开发-邮箱配置功能开发

邮箱配置主要是将管理员数据做归属。具体见下图&#xff1a; 一、创建表 1、语句 CREATE TABLE cluster_control.nc_param_mail (id int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 编号,title varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT…...

【机器学习】——卷积与循环的交响曲:神经网络模型在现代科技中的协奏

&#x1f3bc;个人主页&#xff1a;【Y小夜】 &#x1f60e;作者简介&#xff1a;一位双非学校的大二学生&#xff0c;编程爱好者&#xff0c; 专注于基础和实战分享&#xff0c;欢迎私信咨询&#xff01; &#x1f386;入门专栏&#xff1a;&#x1f387;【MySQL&#xff0…...

android studio引用so库

在工程中编译好的so库文件将在原始编译工程对应目录下&#xff1a;build/intermediates/cxx/Debug/xxxxxx/obj/ 其目录结构如上所示&#xff0c;包含生成的四个版本&#xff0c;每个文件夹下均包含c/c源码编译成的Android版本的libnavi.so库和提供应用接口的libnavi-lib.so库。…...

2024年信号处理与神经网络应用(SPNNA 2024)

会议官网&#xff1a;www.spnna.org 会议时间&#xff1a;2024年12月13-15日 会议地点&#xff1a;中国武汉...

wxWidgets-ImageView

wxWidgets实现图片浏览、放大缩小、另存为新的图片格式等 #include "wx/wxprec.h"#ifndef WX_PRECOMP#include "wx/wx.h" #endif#include "wx/filename.h" #include "wx/zstream.h"#include "imageviewctrl.h"class MyFrame…...

第1章-JVM和Java体系架构

虚拟机 虚拟机概念 所谓虚拟机&#xff08;Virtual Machine&#xff09;&#xff0c;就是一台虚拟的计算机。它是一款软件&#xff0c;用来执行一系列虚拟计算机指令。大体上&#xff0c;虚拟机可以分为系统虚拟机和程序虚拟机。 大名鼎鼎的Virtual Box&#xff0c;VMware就属…...

windows 服务器角色

windows 服务器角色 Active Directory Rights Management Services Active Directory RightsManagement Services (AD RS)帮助保护信息&#xff0c;防止未授权使用。AD RMS 将建立用户标识&#xff0c;并为授权用户提供受保护信息的许可证。 ServicesActive Directory 联合身…...

[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker编译环境镜像下载以及使用方式

T. 已测试目录 主机类型主机版本Docker镜像版本结果WSL2Ubuntu22.04Ubuntu20.04PASSWSL2Ubuntu22.04Ubuntu18.04PASS R. 软硬件要求&#xff1a; 编译硬件需求&#xff1a;做多系统测试&#xff0c;磁盘500GB起步(固态)&#xff08;机械会卡死&#xff09;&#xff0c;内存3…...

C#中判断两个 List<T> 的内容是否相等

ET实现游戏中邮件系统逻辑思路&#xff08;服务端&#xff09;_游戏邮件系统设计-CSDN博客 场景&#xff1a;今天遇到一个BUG&#xff0c;在服务器重启的时候&#xff08;体验服&#xff09;&#xff0c;玩家之前接收的邮件又重新接收了一次&#xff0c;但是两封邮件的ID是不同…...

Linux环境下配置neo4j图数据库

1.下载安装包 openjdk-11.0.1_linux-x64_bin.tar.gz neo4j-community-4.2.19-unix.tar.gz 2.之前配置好的配置文件 neo4j.conf 3.安装 3.1-jdk11的安装&#xff08;jdk1.8不够用&#xff09; 解压缩 tar -zxvf openjdk-11.0.1_linux-x64_bin.tar.gz修改系统环境变量 打开pro…...

Windows 11 搭建 Docker 桌面版详细教程

在当今的软件开发与部署领域&#xff0c;Docker 已成为一项极为重要的容器化技术。它能够让开发者轻松地打包应用及其依赖项&#xff0c;实现跨环境的一致性运行&#xff0c;大大提高了开发效率与部署的便捷性。本教程将详细介绍在 Windows 11 操作系统上搭建 Docker 桌面版的具…...

Pytest-Bdd-Playwright 系列教程(13):钩子(hooks)

Pytest-Bdd-Playwright 系列教程&#xff08;13&#xff09;&#xff1a;钩子&#xff08;hooks&#xff09; 前言一、什么是钩子&#xff1f;二、Pytest-Bdd 提供的钩子一览三、钩子用法详解1. pytest_bdd_before_scenario2. pytest_bdd_after_scenario3. pytest_bdd_before_s…...

dns 服务器简单介绍

dns 服务器分类&#xff1a; 根域名服务器顶级域名服务器权威域名服务器本地域名服务器 dns 的查询过程 国内优秀公共域名 腾讯&#xff1a;DNSPod-免费智能DNS解析服务商-电信_网通_教育网,智能DNS-烟台帝思普网络科技有限公司 119.29.29.29 和 182.254.118.118 阿里&#xf…...

Neo4j图形数据库-Cypher中常用指令

一、创建与修改 1.1 create 创建图数据库中的节点、关系等元素&#xff1a; CREATE (:Person {name: "Alice", age: 30}) CREATE (p1:Person {name: "Bob"})-[r:KNOWS]->(p2:Person {name: "Charlie"})批量创建元素 CREATE (n1:Node),(n2…...

linux安全管理-防火墙配置

1. 开启系统防火墙 1、检查内容 检查操作系统是否开启防火墙&#xff1b; 2、配置要求 操作系统开启防火墙&#xff1b; 3、配置方法 systemctl status firewalld ##查看系统防火墙运行状态 systemctl start firewalld ##启动防火墙 systemctl restart firewalld ##重启防火墙…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

Axure 下拉框联动

实现选省、选完省之后选对应省份下的市区...