Hive部署,hive客户端

news2024/11/25 10:27:25

1、Hive部署

Hive是分布式运行的框架还是单机运行的?

  • Hive是单机工具,只需要部署在一台服务器即可。
  • Hive虽然是单机的,但是它可以提交分布式运行的MapReduce程序运行。

1.1、规划

我们知道Hive是单机工具后,就需要准备一台服务器供Hive使用即可。
同时Hive需要使用元数据服务,即需要提供一个关系型数据库,我们也选择一台服务器安装关系型数据库即可。

所以:
在这里插入图片描述

为了简单起见,都安装到node1服务器上。

1.2、步骤1:安装MySQL数据库

1.2.1、先联网

在这里插入图片描述

在ifcfg-ens33添加

DNS1=114.114.114.114

重启网络

service network restart

在这里插入图片描述
在这里插入图片描述

1.2.3、安装mysql
# 更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

# 安装Mysql yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm

# yum安装Mysql
yum -y install mysql-community-server

# 启动Mysql设置开机启动
systemctl start mysqld
systemctl enable mysqld

# 检查Mysql服务状态
systemctl status mysqld

# 第一次启动mysql,会在日志文件中生成root用户的一个随机密码,使用下面命令查看该密码
grep 'temporary password' /var/log/mysqld.log

# 修改root用户密码
mysql -u root -p -h localhost
Enter password:
 

# 如果你想设置简单密码,需要降低Mysql的密码安全级别
set global validate_password_policy=LOW; # 密码安全级别低
set global validate_password_length=4;	 # 密码长度最低4位即可

# 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

# 设置远程登录
grant all privileges on *.* to root@"%" identified by 'root' with grant option; 
# 刷新 
flush privileges;

1.3、步骤2:配置Hadoop

Hive的运行依赖于Hadoop(HDFS、MapReduce、YARN都依赖)。
同时涉及到HDFS文件系统的访问,所以需要配置Hadoop的代理用户。
即设置hadoop用户允许代理(模拟)其它用户。

配置如下内容在Hadoop的core-site.xml中,并分发到其它节点,且重启HDFS集群

  • 配置
<property>
    <name>hadoop.proxyuser.hadoop.hosts</name>
    <value>*</value>
  </property>

  <property>
    <name>hadoop.proxyuser.hadoop.groups</name>
    <value>*</value>
  </property>
  • 分发
    在这里插入图片描述
  • 重启hdfs
    先停再启
stop-dfs.sh
start-dfs.sh

1.4、步骤3:下载解压Hive

  • 切换到hadoop用户
su - hadoop
  • 下载Hive安装包:
    http://archive.apache.org/dist/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz
  • 解压到node1服务器的:/export/server/内
tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /export/server/

在这里插入图片描述

  • 设置软连接
ln -s /export/server/apache-hive-3.1.3-bin /export/server/hive

在这里插入图片描述

1.5、步骤4:提供MySQL Driver包

  • 下载MySQL驱动包:
    https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar
  • 将下载好的驱动jar包,放入:Hive安装文件夹的lib目录内
mv mysql-connector-java-5.1.34.jar /export/server/hive/lib/

在这里插入图片描述

1.6、步骤5:配置Hive

1.6.1、hive-env.sh文件

在Hive的conf目录内,新建hive-env.sh文件,填入以下环境变量内容:

export HADOOP_HOME=/export/server/hadoop
export HIVE_CONF_DIR=/export/server/hive/conf
export HIVE_AUX_JARS_PATH=/export/server/hive/lib

在这里插入图片描述

在这里插入图片描述

1.6.2、hive-site.xml

在Hive的conf目录内,新建hive-site.xml文件,填入以下内容:

连接数据库时,用户名和密码要对应自己mysql设置的

<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://bigdatanode1:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root</value>
  </property>

  <property>
    <name>hive.server2.thrift.bind.host</name>
    <value>bigdatanode1</value>
  </property>

  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://bigdatanode1:9083</value>
  </property>

  <property>
    <name>hive.metastore.event.db.notification.api.auth</name>
    <value>false</value>
  </property>

</configuration>

1.7、步骤6:初始化元数据库

支持Hive的配置已经完成,现在在启动Hive前,需要先初始化Hive所需的元数据库。

  • 在MySQL中新建数据库:hive
CREATE DATABASE hive CHARSET UTF8;

在这里插入图片描述

  • 执行元数据库初始化命令:
cd /export/server/hive
bin/schematool -initSchema -dbType mysql -verbos

在这里插入图片描述

在这里插入图片描述

初始化成功后,会在MySQL的hive库中新建74张元数据管理的表。
在这里插入图片描述

1.8、步骤7:启动Hive(使用Hadoop用户)

必须先启动hdfs和yarn

start-dfs.sh
start-yarn.sh
  • 确保Hive文件夹所属为hadoop用户
    在这里插入图片描述

  • 创建一个hive的日志文件夹:

mkdir /export/server/hive/logs

在这里插入图片描述

启动元数据管理服务(必须启动,否则无法工作)

  • 前台启动:bin/hive --service metastore
  • 后台启动:nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &
    在这里插入图片描述在这里插入图片描述

启动客户端,二选一(当前先选择Hive Shell方式)

  • Hive Shell方式(可以直接写SQL): bin/hive
 bin/hive

在这里插入图片描述

  • Hive ThriftServer方式(不可直接写SQL,需要外部客户端链接使用): bin/hive --service hiveserver2

2、Hive体验

首先,确保启动了Metastore服务。
在这里插入图片描述

可以执行:bin/hive,进入到Hive Shell环境中,可以直接执行SQL语句。
在这里插入图片描述

2.1、创建表

CREATE TABLE test(id INT, name STRING, gender STRING);

在这里插入图片描述

2.2、插入数据

INSERT INTO test VALUES(1, '王力红', '男'), (2, '周杰轮', '男'), (3, '林志灵', '女');

在这里插入图片描述

2.3、查询数据

SELECT gender, COUNT(*) AS cnt FROM test GROUP BY gender;

在这里插入图片描述

2.4、验证Hive的数据存储

Hive的数据存储在HDFS的:/user/hive/warehouse中
在这里插入图片描述

2.5、验证SQL语句启动的MapReduce程序

打开YARN的WEB UI页面查看任务情况:http://bigdatanode1:8088
在这里插入图片描述

3、hive客户端

3.1、HiveServer2 & Beeline

3.1.1、HiveServer2服务

在启动Hive的时候,除了必备的Metastore服务外,有2种方式使用Hive:

  • 方式1: bin/hive 即Hive的Shell客户端,可以直接写SQL
  • 方式2: bin/hive --service hiveserver2
    后台执行脚本:nohup bin/hive --service hiveserver2 >> logs/hiveserver2.log 2>&1 &

bin/hive --service metastore,启动的是元数据管理服务
bin/hive --service hiveserver2,启动的是HiveServer2服务

HiveServer2是Hive内置的一个ThriftServer服务,提供Thrift端口供其它客户端链接
可以连接ThriftServer的客户端有:

  • Hive内置的 beeline客户端工具(命令行工具)
  • 第三方的图形化SQL工具,如DataGrip、DBeaver、Navicat等

Hive的客户端体系如下
在这里插入图片描述

  • 启动
    在hive安装的服务器上,首先启动metastore服务,然后启动hiveserver2服务。
nohup bin/hive --service metastore >> logs/metastore.log 2>&1 &
nohup bin/hive --service hiveserver2 >> logs/hiveserver2.log 2>&1 &

在这里插入图片描述

3.1.2、beeline
  • 在node1上使用beeline客户端进行连接访问。需要注意hiveserver2服务启动之后需要稍等一会才可以对外提供服务。
  • Beeline是JDBC的客户端,通过JDBC协议和Hiveserver2服务进行通信,协议的地址是:jdbc:hive2://node1:10000
/export/server/hive/bin/beeline

在这里插入图片描述

! connect jdbc:hive2://bigdatanode1:10000

在这里插入图片描述

3.2、DataGrip & DBeaver

我这里用idea连接数据库

3.2.1、idea
  • 在idea右边找到hive
    在这里插入图片描述

  • 配置连接,下载驱动
    在这里插入图片描述

  • 测试链接
    在这里插入图片描述
    在这里插入图片描述

  • 进行操作
    在这里插入图片描述

3.2.2、DBeaver

DBeaver的连接都是差不多的,注意的是DBeaver的hive驱动要自己下载并引入,默认提供的不能用。

结束!!!!
hy:41


													人所有的拖沓都是代表他并非真正热爱。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1029566.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI聊天ChatGPT系统源码卡密验证开源版

ChatGPT卡密验证版源码是一个基于PHP7.4和MySQL5.6的聊天AI源码&#xff0c;它不仅支持暗黑模式、反应速度极快&#xff0c;而且充值方面采用后台生成卡密方式&#xff0c;方便快捷&#xff0c;如果您有能力将其接入在线支付&#xff0c;即可进一步拓展充值方式&#xff0c;为更…

QT-day5

1、添加注册功能到数据库 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMessageBox> //消息对话框类头文件 #include <QDebug> #include <QPushButton> #include <QSqlDatabase> //数据库管理类 #include…

C++之template可变模板参数应用总结(二百二十八)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

【工作记录】springboot集成aop实现日志@20230918

springboot集成aop实现日志 1. 添加依赖 <!-- aop 依赖 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>2. 定义注解 Target(ElementType.METHOD)…

HarmonyOS之 应用程序页面UIAbility

一 UIAbility介绍&#xff1a; 1.1 UIAbility是一种包含用户界面的应用组件&#xff0c;用于和用户进行交互UIAbility是系统调度的单元、提1.2 供窗口用于界面绘制2. UIAbility的创建和对应页面的创建 1.3 UIAbility内页面间的跳转 1.4 UIAbility的创建、前后台切换、销毁的生…

要如何选择报修工单管理系统?需要注意哪些核心功能?

现如今&#xff0c;越来越多的企业已经离不开报修工单管理系统&#xff0c;但市面上的产品繁多&#xff0c;很难寻找到一款特别符合企业需求的系统。企业采购报修工单管理系统的主要目的在于利用其核心功能&#xff0c;如工单流转等&#xff0c;来解决工作事件的流程问题&#…

uniapp----微信小程序 日历组件(周日历 月日历)【Vue3+ts+uView】

uniapp----微信小程序 日历组件&#xff08;周日历&& 月日历&#xff09;【Vue3tsuView】 用Vue3tsuView来编写日历组件&#xff1b;存在周日历和月日历两种显示方式&#xff1b;高亮显示当天日期&#xff0c;红点渲染有数据的日期&#xff0c;点击显示数据 1. calenda…

滑动时间窗口统计 QPS

一、代码 1、先上实现代码&#xff0c;如下 package cn.jt.emqxspringbootdesignpattern.emqx.controller;import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExec…

如何提取视频中的音频转为mp3

如何提取视频中的音频转为mp3&#xff1f;在丰富多样的视频作品中&#xff0c;我们常常会遇到一些引人入胜的对话和有趣的音乐变奏。不少朋友可能曾经看过那种画面与其他作品声音巧妙搭配&#xff0c;给人带来无比愉悦和和谐感的趣味作品。然而&#xff0c;很多人虽然有着相似的…

小程序中如何查看会员卡的注册时间

会员系统是小程序中非常重要的一部分&#xff0c;可以帮助企业更好地管理客户&#xff0c;并提供更好的服务。在实际应用中&#xff0c;我们经常需要查看会员的注册时间&#xff0c;以便更好地了解客户的行为和需求。本文将介绍小程序如何查看会员的注册时间。 1. 找到指定的…

uniapp后台播放音频功能制作

在UniApp中&#xff0c;你可以使用uni.getRecorderManager()方法来创建一个录音管理器实例。但是&#xff0c;请注意&#xff0c;录音管理器并不直接用于后台音频播放功能&#xff0c;而是用于录制音频。如果想要在后台播放音频&#xff0c;你需要使用uni.getBackgroundAudioMa…

小程序壁纸demo,数据采集第三方的,没有服务端

概述 小程序demo&#xff0c;共有三个页面&#xff0c;首页&#xff0c;详情&#xff0c;搜索&#xff0c;数据来源于第三方。有兴趣的可以看看&#xff0c;比较简单 详细 小程序demo&#xff0c;共有三个页面&#xff0c;首页&#xff0c;详情&#xff0c;搜索&#xff0c;…

2种方法,jmeter用一个正则提取器提取多个值!

jmeter中&#xff0c;用json提取器&#xff0c;一次提取多个值&#xff0c;这个很多人都会。但是&#xff0c;用正则提取器一次提取多个&#xff0c;是否可以呢&#xff1f; 肯定&#xff0c;很多人都自信满满的说&#xff0c;可以&#xff01;形如&#xff1a;token":“…

STM32单片机入门学习(一)

一、购入硬件装备 心血来潮&#xff0c;想学STM32&#xff0c;话不多说&#xff0c;先把东西买了STM32F103C8T6开发板ST-LINK下载器&#xff0c;小元器件自备。 二、安装软件装备 1.Keil uVision5安装 其他都是下一步。 2.用注册机给 Keil 5 注册 打开keil 5&#xff0c;打…

【C++】unordered_map与unorder_set的封装(哈希桶)

文章目录 前言一、模板参数的改造二、模板的特例化操作三、仿函数的妙用四、unordered迭代器基本操作1.const迭代器注意&#xff1a;2.HashTable与HTIterator的冲突 五、迭代器的构造问题六、完整代码1.hash_bucket.h2.unordered_set.h3.unordered_map.h 前言 我们开辟一个指针…

340. 至多包含 K 个不同字符的最长子串

340. 至多包含 K 个不同字符的最长子串 vip

Michael.W基于Foundry精读Openzeppelin第36期——Ownable2Step.sol

Michael.W基于Foundry精读Openzeppelin第36期——Ownable2Step.sol 0. 版本0.1 Ownable2Step.sol 1. 目标合约2. 代码精读2.1 pendingOwner() && transferOwnership(address newOwner) && _transferOwnership(address newOwner)2.2 acceptOwnership() 0. 版本 …

YOLOv8快速复现 训练 SCB-Dataset3-S 官网版本 ultralytics

目录 0 相关资料SCB-Dataset3-S 数据训练yaml文件 YOLOv8 训练SCB-Dataset3-S相关参数 0 相关资料 YOLOV8环境安装教程.&#xff1a;https://www.bilibili.com/video/BV1dG4y1c7dH/ YOLOV8保姆级教学视频:https://www.bilibili.com/video/BV1qd4y1L7aX/ b站视频&#xff1a;…

第一百五十回 自定义组件综合示例:游戏摇杆

文章目录 概念介绍实现方法示例代码我们在上一章回中介绍了自定义组件相关的内容,本章回中将综合使用这些内容 自定义游戏摇杆组件.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们介绍的游戏摇杆就是一个内层的小圆嵌套一个外层的大圆,大圆的位置不变,小圆只能在大圆…

【AD9361】设置带宽

接收链路滤波器 RX TIA LPF&#xff1a;RX TIA LPF 是一款单极点低通滤波器&#xff0c;具有可编程 3dB 转角频率。转折频率可在 1 MHz 至 70 MHz 范围内进行编程。RX TIA LPF 通常校准为基带通道带宽的 2.5 倍。 RX BB LPF&#xff1a;RX BB LPF 是具有可编程 3dB 转角频率的…