hive3.1.2的保姆级安装教程,使用MariaDB作为元数据库

hive3.1.2的保姆级安装教程,使用MariaDB作为元数据库
本次安装的操作系统是Kylin X86。
需要JDK环境,本文是在已经装好Hadoop3.2.2伪分布式的基础上在部署hive服务,Hadoop3.2.2伪分布式的搭建可以去看博主写的这篇文,写的很细,无脑跟着操作就行https://blog.ZEEKLOG.net/ash_77/article/details/157763889?spm=1011.2124.3001.6209

1. 下载hive3.1.2安装包
下载地址:http://archive.apache.org/dist/hive/
并把安装包上传到目录/data/hadoop/

2. 安装hive并配置

#解压cd /data/hadoop/ tar-zvxf apache-hive-3.1.2-bin.tar.gz mv apache-hive-3.1.2-bin hive-3.1.2 #修改文件夹名称chown-R hadoop:hadoop hive-3.1.2 #修改权限vim /etc/profile #配置环境变量# 新增以下内容exportHIVE_HOME=/data/hadoop/hive-3.1.2 exportPATH=$PATH:$HIVE_HOME/bin #切换hadoop用户su - hadoop #修改hive配置文件cd conf/ cp hive-env.sh.template hive-env.sh vim hive-env.sh 新增以下内容 exportJAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-8.ky10.x86_64 exportHADOOP_HOME=/data/hadoop/hive-3.1.2 exportHIVE_CONF_DIR=/data/hadoop/hive-3.1.2/conf cp hive-default.xml.template hive-site.xml vim hive-site.xml 先清空内容,只需要保留以下内容 <?xml version="1.0"?><?xml-stylesheet type="text/xsl"href="configuration.xsl"?><configuration><!-- hive元数据库MySQL的URL --><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://ck02:3306/hive?useSSL=false</value></property><!-- hive元数据库的Driver--><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><!-- 元数据库使用的username--><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value></property><!-- 元数据库jdbc连接的password --><property><name>javax.jdo.option.ConnectionPassword</name><value>XXXX</value></property><!-- Hive默认在HDFS的工作目录 --><property><name>hive.metastore.warehouse.dir</name><value>/usr/hive/warehouse</value></property><!-- Hive元数据存储的验证 --><property><name>hive.metastore.schema.verification</name><value>false</value></property><!-- 元数据存储授权 --><property><name>hive.metastore.event.db.notification.api.auth</name><value>false</value></property><!-- 指定存储元数据要连接的地址 --><property><name>hive.metastore.uris</name><value>thrift://ck02:9083</value></property><!-- 指定hiveserver2连接的host --><property><name>hive.server2.thrift.bind.host</name><value>ck02</value></property><!-- 指定hiveserver2连接的端口号 --><property><name>hive.server2.thrift.port</name><value>10000</value></property></configuration>

在Hadoop中创建hive数据存储的目录

hdfs dfs -mkdir-p /usr/hive/warehouse hdfs dfs -chmod g+w /usr/hive/warehouse 

剩下还需要配置hive的元数据库,默认使用的是Derby,但是Derby不支持多会话,在生产环境中都会配置成MySQL数据库

3. 配置MySQL数据库
因为RPM的仓库中只提供了MariaDB,所以安装MariaDB来存储hive的元数据。
先安装MariaDB:

yum install-y mariadb-server #启动服务 systemctl start mariadb systemctl status mariadb #初始化数据库,包括设置root用户的密码等 mysql_secure_installation #连接数据库,创建hive用户 mysql -u root -p#库名和用户名跟hive-site.xml配置文件中一致 CREATE DATABASE hive CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER'hive'@'%' IDENTIFIED BY 'XXX'; GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%'; FLUSH PRIVILEGES;exit;

上传MySQL驱动:

scp mysql-connector-java-5.1.47.jar root@ck02:/data/hadoop/hive-3.1.2/lib/ 

然后需要初始化hive元数据库,使用root用户执行以下命令,

[root@ck02 conf]# schematool -dbType mysql -initSchema

如果有遇到以下报错,是因为Hive和Hadoop自带的Guava版本不一致导致的,需要统一Guava版本。

rm /data/hadoop/hive-3.1.2/lib/guava-19.0.jar cp /data/hadoop/hadoop-3.2.2/share/hadoop/common/lib/guava-27.0-jre.jar /data/hadoop/hive-3.1.2/lib/ 
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found
binding in
[jar:file:/data/hadoop/hive-3.1.2/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in
[jar:file:/data/hadoop/hadoop-3.2.2/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an
explanation. SLF4J: Actual binding is of type
[org.apache.logging.slf4j.Log4jLoggerFactory] Exception in thread
“main” java.lang.NoSuchMethodError:
com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357)
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1338)
at org.apache.hadoop.mapred.JobConf.setJar(JobConf.java:536)
at org.apache.hadoop.mapred.JobConf.setJarByClass(JobConf.java:554)
at org.apache.hadoop.mapred.JobConf.(JobConf.java:448)
at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5141)
at org.apache.hadoop.hive.conf.HiveConf.(HiveConf.java:5104)
at org.apache.hive.beeline.HiveSchemaTool.(HiveSchemaTool.java:96)
at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1473)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:323)
at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
然后初始化hive元数据库 # 执行[root@ck02 hive-3.1.2]# schematool -dbType mysql -initSchema[root@ck02 hive-3.1.2]# su - hadoop[hadoop@ck02 hive-3.1.2]$ mysql -u hive -p MariaDB [(none)]> use hive; MariaDB [hive]>source /data/hive-3.1.2/scripts/metastore/upgrade/mysql/hive-schema-3.1.0.mysql.sql; MariaDB [hive]>exit;

4. 启动hive元数据服务

[hadoop@ck02 hive-3.1.2]$ nohup hive --service metastore > /dev/null 2>&1&# 验证[hadoop@ck02 hive-3.1.2]$ hive hive> show databases; OK default Time taken: 0.557 seconds, Fetched: 1 row(s) hive> create database test; OK Time taken: 0.751 seconds hive>exit;

在Hadoop UI(http://ck02:9870)中可以看到对应的数据库目录

在这里插入图片描述

Read more

Creative-Commons许可长上下文视频数据集-4个高清MP4视频文件-适用于计算机视觉模型训练-视频内容理解-算法研发-开放数据集-可用于科研与产业应用

Creative-Commons许可长上下文视频数据集-4个高清MP4视频文件-适用于计算机视觉模型训练-视频内容理解-算法研发-开放数据集-可用于科研与产业应用

Creative Commons许可长上下文视频数据集 引言与背景 在当前数字化时代,视频数据作为一种包含丰富信息的多媒体形式,已成为计算机视觉、人工智能和多媒体处理领域的核心研究对象。随着深度学习技术的快速发展,高质量、多样化的视频数据集对于训练高效、鲁棒的算法模型至关重要。本数据集提供了4个基于Creative Commons许可的长上下文视频文件,为科研人员、开发者和产业用户提供了一个开放、可信赖的视频资源。 本数据集包含4个完整的MP4格式视频文件,所有文件均采用Creative Commons许可协议,确保用户可以在合规的前提下自由使用、修改和分发这些资源。数据集的内容构成简洁明了,包含完整的视频原始文件,无需额外的元数据或标注信息即可直接使用。这些视频文件具有不同的文件大小和内容特征,为多样化的研究和应用场景提供了基础支持。 对于科研领域而言,该数据集可用于视频分类、动作识别、场景理解等计算机视觉任务的算法开发和性能评估;对于产业应用来说,这些视频可用于训练产品推荐系统、内容审核模型和视频分析工具。此外,Creative Commons许可的开放性使得这些资源能够

By Ne0inhk
Java前缀和算法题目练习

Java前缀和算法题目练习

前缀和 * 前缀和 * 二维前缀和 * 寻找数组的中心下标 * 除自身以外数组的乘积 * 和为k的子数组 * 和可被K整除的子数组 * 连续数组 * 矩阵区域和 前缀和 题目解析:在一个数组中查询起对应区间的和,会查询多次 算法思想:暴力解法:每次查询都进行一次遍历,时间复杂度O(n*m) 前缀和解法:新定义一个数组,每一个下标存放的值是要查询数组的前下标对应值的和,这样我们在访问起某一个区间的时候,直接利用这个数组就非常快速 importjava.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息publicclassMain{publicstaticvoidmain(String[] args){Scanner in =newScanner(System.in);int n = in.nextInt();int m = in.nextInt();int[

By Ne0inhk
数据结构七大排序算法图解——选择排序动图演示

数据结构七大排序算法图解——选择排序动图演示

系列文章目录 四、选择排序 紧接上一篇交换排序 前言: 1、直接选择排序 思想: 例题: 代码部分: 性能分析 2、树形选择排序 思想: 例题一: 例题二: 性能分析 3、堆排序 定义: 方法: 如何“筛选”? 例题: 如何“建初始堆”? 例题: 代码部分 性能分析 4、总结 直接选择排序 树形排序 堆排序 前言: 选择排序的主要思想是每一趟从待排序列中选取一个关键字值最小的记录,也即第 1 趟从 n 个记录中选取关键字值最小的记录,在第 2 趟中,从剩下的 n-1 个记录中选取关键字值最小的记录,直到整个序列中的记录都选完位置。这样,由选取记录的顺序便可得到按关键字值有序的序列。

By Ne0inhk
链表的学习与应用--双向循环链表_增加操作

链表的学习与应用--双向循环链表_增加操作

相信大家都在学习双向链表的过程中痛不欲生,但没关系相信大家看了这篇文章之后会对着抽象的数据结构有一个新的理解    这段时间以来笔者也是成功入职了一家方案公司,也算是实现了最初的那个梦想吧!|    话不多说现在开始双向循环链表插入知识的介绍 本人郑重承诺:         所有文章均不设置任何观看门槛均免费  📜虚拟滚动与长列表优化 🎮游戏开发与多媒体播放列表 🖥️操作系统中的进程调度  ✍️文本编辑器的“撤销”与“重做”  🌐浏览器历史记录 📒双向链表的实际应用 📂list.h 文件 🍋老规矩上源码 #ifndef __LIST_H_ #define __LIST_H_ #include <stdio.h> #include <windows.h> #include <stdbool.h> typedef struct Flight_List { /* 航班号码数据 */ int Flight_Number[10]

By Ne0inhk