Hive整合MySQL

news/2024/9/19 4:57:21/ 标签: mysql, hive, 大数据, 数据仓库, 数据库

 

目录

Hive整合MySQL

 安装MySQL

1)上传MySQL安装包以及MySQL驱动jar包

2)解压MySQL安装包

3)卸载系统自带的mariadb

4)安装MySQL依赖

mysql-client-toc" style="margin-left:120px;">5)安装mysql-client

mysql-server-toc" style="margin-left:120px;">6)安装mysql-server

7)启动MySQL

8)查看MySQL密码

配置MySQL

1)用刚刚查到的密码进入MySQL(如果报错,给密码加单引号)

2)设置复杂密码(由于MySQL密码策略,此密码必须足够复杂)

3)更改MySQL密码策略

4)设置简单好记的密码

5)进入MySQL库

6)查询user表

7)修改user表,把Host表内容修改为%

8)刷新

9)退出

 卸载MySQL说明

 配置Hive元数据存储到MySQL

 配置元数据到MySQL

 验证元数据是否配置成功

 查看MySQL中的元数据


Hive整合MySQL

 安装MySQL

1)上传MySQL安装包以及MySQL驱动jar包
  • mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
  • mysql-connector-java-5.1.37.jar
2)解压MySQL安装包
[lzl@hadoop12software]$ mkdir mysql_lib
[lzl@hadoop12software]$ tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C mysql_lib/
3)卸载系统自带的mariadb
[lzl@hadoop12~]$ sudo rpm -qa | grep mariadb | xargs sudo rpm -e --nodeps
4)安装MySQL依赖
[lzl@hadoop12software]$ cd mysql_lib
[lzl@hadoop12mysql_lib]$ sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
[lzl@hadoop12mysql_lib]$ sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
[lzl@hadoop12mysql_lib]$ sudo rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
mysql-client">5)安装mysql-client
[lzl@hadoop12mysql_lib]$ sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
mysql-server">6)安装mysql-server
[lzl@hadoop12mysql_lib]$ sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

注意:若出现以下错误

warning: 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64

解决办法

[lzl@hadoop12software]$ sudo yum -y install libaio
7)启动MySQL
[lzl@hadoop12software]$ sudo systemctl start mysqld
8)查看MySQL密码
[lzl@hadoop12software]$ sudo cat /var/log/mysqld.log | grep password

配置MySQL

配置主要是root用户 + 密码,在任何主机上都能登录MySQL数据库

1)用刚刚查到的密码进入MySQL(如果报错,给密码加单引号)
[lzl@hadoop12software]$ mysql -uroot -p'password'
2)设置复杂密码(由于MySQL密码策略,此密码必须足够复杂)
mysql> set password=password("Qs23=zs32");
3)更改MySQL密码策略
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=4;
4)设置简单好记的密码
mysql> set password=password("123456");
5)进入MySQL库
mysql> use mysql
6)查询user表
mysql> select user, host from user;
7)修改user表,把Host表内容修改为%
mysql> update user set host="%" where user="root";
8)刷新
mysql> flush privileges;
9)退出
mysql> quit;

 卸载MySQL说明

若因为安装失败或者其他原因,MySQL需要卸载重装,可参考以下内容。

  1. 清空原有数据

    • 通过/etc/my.cnf查看MySQL数据的存储位置

      [lzl@hadoop12software]$ sudo cat /etc/my.cnf[mysqld]
      datadir=/var/lib/mysql
    • 去往/var/lib/mysql路径需要root权限

      [lzl@hadoop12mysql]$ su - root
      [root@hadoop12~]# cd /var/lib/mysql
      [root@hadoop12mysql]# rm -rf *
  2. 卸载MySQL相关包

    • 查看安装过的MySQL相关包

      1[lzl@hadoop12software]$ sudo rpm -qa | grep -i -E mysql

      输出示例:

      mysql-community-libs-5.7.16-1.el7.x86_64
      mysql-community-client-5.7.16-1.el7.x86_64
      mysql-community-common-5.7.16-1.el7.x86_64
      mysql-community-libs-compat-5.7.16-1.el7.x86_64
      mysql-community-server-5.7.16-1.el7.x86_64
    • 一键卸载命令

      [lzl@hadoop12software]$ rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps

 配置Hive元数据存储到MySQL

 配置元数据到MySQL

  1. 新建Hive元数据库

    • 登录MySQL

      [lzl@hadoop12software]$ mysql -uroot -p123456
    • 创建Hive元数据库

      mysql> create database metastore;
      mysql> quit;
  2. 将MySQL的JDBC驱动拷贝到Hive的lib目录下

    [lzl@hadoop12software]$ cp /opt/software/mysql-connector-java-5.1.37.jar $HIVE_HOME/lib
  3. $HIVE_HOME/conf目录下新建hive-site.xml文件

    [lzl@hadoop12software]$ vim $HIVE_HOME/conf/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://hadoop12: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>
  4. 初始化Hive元数据库(修改为采用MySQL存储元数据)

    [lzl@hadoop12hive]$ bin/schematool -dbType mysql -initSchema -verbose

 验证元数据是否配置成功

  1. 再次启动Hive

    [lzl@hadoop12hive]$ 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. 在Xshell窗口中开启另一个窗口开启Hive(两个窗口都可以操作Hive,没有出现异常)

    hive> show databases;
    hive> show tables;
    hive> select * from stu;

 查看MySQL中的元数据

  1. 登录MySQL

    [lzl@hadoop12hive]$ mysql -uroot -p123456
  2. 查看元数据库metastore

    mysql> show databases;
    mysql> use metastore;
    mysql> show tables;
    • 查看元数据库中存储的库信息

      mysql> select * from DBS;
      +-------+-----------------------+-------------------------------------------+---------+------------+------------+-----------+
      | DB_ID | DESC          | DB_LOCATION_URI              | NAME   | OWNER_NAME | OWNER_TYPE | CTLG_NAME |
      +-------+-----------------------+-------------------------------------------+---------+------------+------------+-----------+
      |   1 | Default Hive database | hdfs://hadoop12:8020/user/hive/warehouse | default | public   | ROLE    | hive    |
      +-------+-----------------------+-------------------------------------------+---------+------------+------------+-----------+
    • 查看元数据库中存储的表信息

      mysql> select * from TBLS;
      +--------+-------------+-------+------------------+---------+------------+-----------+-------+----------+---------------+
      | TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER  | OWNER_TYPE | RETENTION | SD_ID | TBL_NAME | TBL_TYPE    | 
      +--------+-------------+-------+------------------+---------+------------+-----------+-------+----------+---------------+
      |    1 |  1656318303 |   1 |         0 | lzl | USER    |     0 |   1 | stu    | MANAGED_TABLE |
      +--------+-------------+-------+------------------+---------+------------+-----------+-------+----------+---------------+
    • 查看元数据库中存储的表中列相关信息

      mysql> select * from COLUMNS_V2;
      +-------+----------+---------+------------+-------------+-------------+--------+
      | CS_ID | CAT_NAME | DB_NAME | TABLE_NAME | COLUMN_NAME | COLUMN_TYPE | TBL_ID |
      +-------+----------+---------+------------+-------------+-------------+--------+
      |   1 | hive   | default | stu     | id      | int     |    1 |
      |   2 | hive   | default | stu     | name     | string    |    1 |
      +-------+----------+---------+------------+-------------+-------------+--------+

http://www.ppmy.cn/news/1520628.html

相关文章

Maven与Gradle差异

作为Java 开发者&#xff0c;你平时用 Maven 还是 Gradle&#xff1f; 我一直用的都是 Maven&#xff0c;但是前几天做了一个小项目&#xff0c;用的是 Gradle&#xff0c;因工作需要就去了解了Gradle的相关信息。 直到看到 Spring 和 Spring Boot 都从 Maven 切换到 Gradle了…

IPSec 参数

IPSec抗重放&#xff1a; 抗重放窗口&#xff1a; ChatGPT 说&#xff1a; ChatGPT 在 IPSec&#xff08;Internet Protocol Security&#xff09;中&#xff0c;“抗重放”机制是一种用于防止重放攻击的安全功能。重放攻击是一种攻击形式&#xff0c;攻击者捕获合法的网络通…

大数据技术之Flume 参数调优(12)

目录 1. Source 调优 增加 Source 个数 调整 batchSize 参数 2. Channel 调优 选择 Channel 类型 配置 dataDirs 参数 设置 Capacity 和 transactionCapacity 参数 3. Sink 调优 增加 Sink 个数 调整 batchSize 参数 4. Flume 的事务机制 事务处理 5. 数据丢失与重…

Linux中的编译器gcc/g++

目录 一、gcc与g的区别 1.gcc编译器使用 2.g编译器使用 二、gcc/g编译器编译源文件过程 1.预处理 2.编译 3.汇编 4.链接 三、静态库和动态库 1.库中的头文件作用 2.静态库 3.动态库 四、gcc编译器的一些选项命令 一、gcc与g的区别 gcc用于编译C语言代码&#xff…

Power Automate向Power Apps传Table数据

Flow返回查询的数据表并返回Apps 场景介绍代码开发Power Automate开发数据库Power Automate调用存储过程 Power Apps开发代码开发 测试 场景介绍 我们通常会使用Flow 查询数据表然后Apps端将表中的数据显示出来&#xff0c;我们怎么来传呢&#xff0c;它自带的response for Po…

揭秘GLM-130B爆火秘诀:颠覆性自回归填空和二维位置编码的训练黑科技

GLM&#xff08;通用语言模型&#xff09;的训练过程确实复杂&#xff0c;尤其是涉及到其独特的预训练目标和架构调整。让我来详细解释一下GLM的训练过程。 1. 模型架构简介 GLM-130B 是基于 Transformer 架构的双语&#xff08;中文和英文&#xff09;语言模型&#xff0c;拥…

仕考网:应届生考公务员的优势

应届生报考公职存在显著优势&#xff0c;建议大家充分利用这一身份&#xff1a; 1.政策优惠 在不缴纳社保的前提下&#xff0c;应届毕业生可在两年内利用此身份参与各类公职考试。国考及省考中&#xff0c;大量岗位专为应届生设置&#xff0c;其中国考约有三分之一的职位仅限…

解除本地Git仓库与远程仓库关联

清除Git凭据缓存 Git在本地会缓存你的认证信息&#xff0c;以便在后续操作中自动使用。你可以通过以下步骤来清除这些缓存的凭据&#xff1a; 对于Windows用户&#xff1a; 打开“控制面板”并选择“凭据管理器”&#xff08;Credential Manager&#xff09;。在“Windows凭据…

C#如何使用外部别名Extern alias

说到 extern 关键字&#xff0c;只是很简单告诉大家用来做区分两个不同 dll 有相同的命名空间和类&#xff0c;可以使用这个关键字。 在遇到了存在两个 dll 都有相同的命名空间&#xff0c;而且有相同的类的时候&#xff0c;如何同时使用这两个 dll 的类。 这里有两个库 Jall…

通俗易懂理解Java枚举类

什么是枚举 一组常量。 比如一年的 4 个季节&#xff0c;一年的 12 个月份&#xff0c;一个星期的 7 天&#xff0c;方向有东南西北等。 Java 枚举类使用 enum 关键字来定义&#xff0c;各个常量使用逗号 , 来分割。 例如定义一个颜色的枚举类。 enum Color { RED, GREEN, …

C++菜鸟教程 - 从入门到精通 第一节

一.C简介 C 是一种编程语言&#xff0c;它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C 进一步扩充和完善了 C 语言&#xff0c;是一种面向对象的程序设计语言。C 可运行于多种平台上&#xff0c;如 Windows、MAC 操作系统以及 UNIX 的各种版本。 C 是一种…

MongoDB之MongoDB Compass工具

MongoDB Compass 是 MongoDB 官方提供的一款图形化用户界面 (GUI) 工具&#xff0c;用于与 MongoDB 数据库进行交互和管理。Compass 提供了丰富的功能&#xff0c;能够帮助开发者、数据库管理员以及数据分析师轻松管理和分析 MongoDB 数据。以下是对 MongoDB Compass 的详细介绍…

Go语言 Go程基础

本篇文章主要为Go语言 Go程基础内容介绍及代码示例。 目录 并发与并行 Go程介绍 简单go程示例 匿名函数写法 启动多个子go进程 总结 并发与并行 并发&#xff1a;电脑同时听歌&#xff0c;看小说&#xff0c;看电影。cpu根据时间片进行划分&#xff0c;交替执行这个三个…

Windows安装docker,启动ollama运行open-webui使用AIGC大模型写周杰伦歌词

Windows安装docker&#xff0c;启动ollama运行open-webui使用AIGC大模型写周杰伦歌词 1、下载docker的Windows版本。 docker下载地址&#xff1a; https://docs.docker.com/desktop/install/windows-install/https://docs.docker.com/desktop/install/windows-install/ 2、设…

java基础知识-JVM知识详解

一、JVM内存结构 Java虚拟机(JVM)的内存结构主要分为几个不同的区域,每个区域都有其特定的目的和功能。以下是JVM内存结构的主要组成部分: 先看一下总体的结构图 程序计数器(Program Counter Register) 这是一个较小的内存块,用于存储当前线程所执行的字节码指令的地址…

tomato靶机通关攻略

主机发现 用kali去扫描端口&#xff0c;发现有3个开放端口 访问网站 在kali里面进行目录扫描&#xff0c;找到一个antibot_image 找到一个/antibot_image/ 目录&#xff0c;进而找到/antibots/目录 发现可能存在文件包含 页面通过image传参查看passwd文件 页面通过image传参查…

Linux 虚拟网络三大基石:Namespace、Veth pair 与 Bridge

引言 在 Linux 的世界里&#xff0c;虚拟网络技术是系统管理、云计算和容器化不可或缺的一部分。今天&#xff0c;我们将深入探讨构建这些虚拟网络的三大基石&#xff1a;Namespace、Veth 对和 Bridge&#xff0c;揭示它们如何在背后默默支撑起你的网络环境。 Namespace&…

区块链入门

1.1 区块链技术的发展 随着 2008 年比特币(Bitcoin) 的发明,一个被称为区块链(Blockchain) 的新概念进入了人们的视野,这项新技术据信有可能彻底改变整个社会。 区块链有望对每个行业产生颠覆的影响,包括但不限于 IT、金融、政府、媒体、医疗、法律和艺术等。一个流派将区…

速盾:防御ddos攻击的几大有效方法是什么?

DDoS攻击&#xff08;分布式拒绝服务攻击&#xff09;是一种恶意攻击手段&#xff0c;旨在通过向目标服务器发送大量的请求&#xff0c;使其无法正常响应正常用户的请求。这种攻击会耗尽服务器的带宽和资源&#xff0c;导致服务不可用。为了保护网络安全&#xff0c;防御DDoS攻…

线性代数 -- 矩阵求导

Tips&#xff1a;本文为理解神经网络的前置知识&#xff0c;整体内容并不全&#xff0c;相关内容还需后续进一步完善。 一、基础 1、标量、向量和矩阵 标量&#xff1a;只有大小&#xff0c;没有方向的量 向量&#xff08;欧几里得向量&#xff09;&#xff1a;具有大小和方向…