MetaSore 是 Hive 元数据存储的地方。Hive 数据库、表、函数等的定义都存储在 Metastore 中。根据系统配置方式,统计信息和授权记录也可以存储在此处。Hive 或者其他执行引擎在运行时使用此数据来确定如何解析,授权以及有效执行用户查询。
经过查询,两台主机的地址分别是192.168.56.105和192.168.56.106,那么105作为本地,106作为远程
元数据服务(metastore)作用是:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。
Hive是Hadoop生态中的一个重要组成部分,主要用于数据仓库。前面的文章中我们已经搭建好了Hadoop的群集,下面我们在这个群集上再搭建Hive的群集。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的[SQL]查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
离线数据分析平台实战——110Hive介绍和Hive环境搭建 Hive介绍 Hive是构建在Hadoop之上的数据仓库平台,设计目标就是将hadoop上的数据操作同SQL结合,让熟悉SQL编程的开发人员能够轻松的向Hadoop平台上转移。 Hive可以在HDFS上构建数据仓库存储结构化数据,这些数据来源就是hdfs上,hive提供了一个类似sql的查询语言HiveQL来进行查询、变换数据等操作。 当然HiveQL语句的底层是转换为相应的mapreduce代码进行执行的。 Hive组成 Hive包含用户接口
hive服务端安装好之后,服务端如何连接使用? * 服务端需要启动hive metastore服务,客户端才能远程使用hive元信息
第一种方式: derby版hive (不推荐) 默认使用derby(数据库)维护元数据 此版本,每个节点自己独立维护一个derby数据库,所以在节点1添加了数据库,在节点2 无法查看 第一步:查看
注意:各主机中的操作系统版本需保持一致。安装过程中都在hadoop用户下,本教材中密码统一采用:password(注意大小写)
将MySQL的驱动jar包上传至虚拟机,然后将该jar包复制到hive安装路径下的lib文件夹中
解压hive压缩包 apache-hive-2.1.0-bin.tar.gz(官网下载) 配置HADOOP_HOME环境变量 配置HIVE_HOME环境变量 在$HIVE_HOME/conf下创建hi
本文的安装参照了官方的文档:GettingStarted,将Hive 0.12.0安装在Hadoop 2.4.0上。本文将Hive配置成Server模式,并且使用MySQL作为元数据数据库,远程连接MySQL。
tar xivf apache-hive-3.1.2-bin -C /opt/hive/
hadoop2.7.1+ubuntu 14.04 hive 2.0.1 集群环境 namenode节点:master (hive服务端) datanode 节点:slave1,slave2(hive客户端) hive建立在hadoop的HDFS上,搭建hive前,先需搭建hadoop 远程模式: 101.201.81.34(Mysql server meta server安装位置)
hive是一个著名的离线处理的数据仓库,可以通过类SQL语言轻松的访问大量的数据集,也可以访问HDFS中的文件,但是其底层的实现是MapReduce,所以具有较高的可扩展性。但是hive不是RDBMS数据库。
hadoop01-hadoop04:hadoop集群 hadoop01:MySQL服务器 hadoop02:Hive
为了一次性成功,在hive主目录下找到conf文件夹下的hive_env.sh,将其中得HADOOP_HOME和HIVE_CONF_DIR放开并怕配置
下载安装mysql 下载并安装MySQL官方的 Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm` 使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。 yum -y install mysql57-community-release-el7-10.noarch.rpm` 下面就是使用yum安装MySQL了 y
最近在出差,客户现场的 HiveServer 在很长时间内不可用,查看 CM 的监控发现,HiveServer 的内存在某一时刻暴涨,同时 JVM 开始 GC,每次 GC 长达 1 分钟,导致很长时间内,整个 HiveServer 不可用。
根本原因:java.sql.SQLException异常:拒绝访问用户’root’@‘192.168.200.200’(使用密码:是)
在每一个节点上安装hive,每一个hive是拥有一套自己的元数据,每个节点的库,表就不统一。所以安装一个MySQL让其他的节点都连接这一个MySQL。
hadoop01-hadoop04:hadoop集群 hadoop01:MySQL服务器 hadoop02:Hive服务端 hadoop03-hadoop04:Hive客户端
Ubuntu 16.04,Hadoop版本是2.7.2 ,选择Hive版本为 hive-2.1.17
交互方式-用户接口:CLI(linux命令行)、WUI(hive web页面)、Client(连接远程服务HiveServer2,eg:JDBC、ODBC)
FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
本文的安装参照《Hive 0.12.0安装指南》,内容来源于官方的:GettingStarted,将Hive 1.2.1安装在Hadoop 2.7.1上。本文将Hive配置成Server模式,并且使用MySQL作为元数据数据库,远程连接MySQL。
mysql可以使用nevicat导出insert语句用于数据构造,但是hive无法直接导出insert语句。我们可以先打印在hive命令行,然后使用脚本拼装成insert语句,进行数据构造。
一、HIVE架构 Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据
Hive可以管理HDFS中的数据,可以通过SQL语句可以实现与MapReduce类似的同能,因为Hive底层的实现就是通过调度MapReduce来实现的,只是进行了包装,对用户不可见。 Hive对HDFS的支持只是在HDFS中创建了几层目录,正真的数据存在在MySql中,MYSQL中保存了Hive的表定义,用户不必关系MySQL中的定义,该层对用户不可见。Hive中的库在HDFS中对应一层目录,表在HDFS中亦对应一层目录,如果在对应的表目录下放置与表定义相匹配的数据,即可通过Hive实现对数据的可视化及查询等功能 综上所述,Hive实现了对HDFS的管理,通过MySQL实现了对HDFS数据的维度管理 Hive基本功能及概念 database table 外部表,内部表,分区表 Hive安装 1. MySql的安装(密码修改,远程用户登陆权限修改) 2. Hive安装获取,修改配置文件(HADOOP_HOME的修改,MySQL的修改) 3. 启动HDFS和YARN(MapReduce),启动Hive Hive基本语法: 1. 创建库:create database dbname 2. 创建表:create table tbname Hive操作: 1. Hive 命令行交互式 2. 运行HiveServer2服务,客户端 beeline 访问交互式运行 3. Beeline 脚本化运行 3.1 直接在 命令行模式下 输入脚本命令执行(比较繁琐,容易出错,不好归档) 3.2 单独保存SQL 命令到 文件,如etl.sql ,然后通过Beeline命令执行脚本 数据导入: 1. 本地数据导入到 Hive表 load data local inpath "" into table .. 2. HDFS导入数据到 Hive表 load data inpath "" into table .. 3. 直接在Hive表目录创建数据 Hive表类型: 1. 内部表: create table 表数据在表目录下,对表的删除会导致表目录下的数据丢失,需要定义表数据的分隔符。 2. 外部表: create external table 表目录下挂载表数据,表数据存储在其他HDFS目录上,需要定义表数据的分隔符。 3. 分区表:与创建内部表相同,需要定义分区字段及表数据的分隔符。在导入数据时需要分区字段,然后会在表目录下会按照分区字段自动生成分区表,同样也是按照目录来管理,每个分区都是单独目录,目录下挂载数据文件。 4. CTAS建表 HQL 1. 单行操作:array,contain等 2. 聚合操作:(max,count,sum)等 3. 内连接,外连接(左外,右外,全外) 4. 分组聚合 groupby 5. 查询 : 基本查询,条件查询,关联查询 6. 子查询: 当前数据源来源于 另个数据执行的结果,即当前 table 为临时数据结果 7. 内置函数: 转换, 字符串, 函数 转换:字符与整形,字符与时间, 字符串:切割,合并, 函数:contain,max/min,sum, 8. 复合类型 map(key,value)指定字符分隔符与KV分隔符 array(value)指定字符分隔符 struct(name,value) 指定字符分割与nv分隔符 9. 窗口分析函数 10. Hive对Json的支持
大数据的生态包含各种各样的组件,hive是其中之一,hive主要是作为数据仓库的工具,简化相关人员的代码工作,只要编写简单的SQL就可以实现mapreduce效果。
Hive 的底层执行引擎有 :MapReduce,Tez,Spark - Hive on MapReduce - Hive on Tez - Hive on spark
上次介绍了HDFS,本来想进入Mapreduce,但感觉Mapreduce基本废弃,于是直接进入了Hive中来。
在经过几天MapReduce的学习之后,我们总算是来到了Hive阶段。本篇博客小菌将为大家带来Hadoop组件之——Hive的介绍! 首先在开始之前,再让我们通过一张熟悉的图片来回顾一下Hadoop生态系统的组成部分!
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
本文节选自《Netkiller Database 手札》 5.26. Spring boot with Apache Hive 5.26.1. Maven <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.springframew
========================================================
同样,这部也属于收藏夹吃灰系列。看在写了辣么多字儿,险些把PP坐出ZC的份儿上,各位看官来个三连呗!
Hive是什么?其体系结构简介* Hive的安装与管理* HiveQL数据类型,表以及表的操作* HiveQL查询数据*** Hive的Java客户端** Hive的自定义函数UDF* 1:什
1.hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Hive.png Hive 运行方式 命令行 脚本 jdbc webui 搭建模式 local 单用户模式 远程模式/多用户模式 一般模式 Beeline · 服务器hiveserver2启动 · 客户端beeline连接 HQL 建表(create) 内部表 · hive管理,删除表时源数据消失 外部表 · 非hive管理,删除表时源数据不消失 查看表描述(desc) DML 和sql基本类似,用到查询即可 分区 静态分区 动态分区 分桶 适用场景 抽样 map-join 索引 提高检索性能 SerDe
spark SQL经常需要访问Hive metastore,Spark SQL可以通过Hive metastore获取Hive表的元数据。从Spark 1.4.0开始,Spark SQL只需简单的配置,就支持各版本Hive metastore的访问。注意,涉及到metastore时Spar SQL忽略了Hive的版本。Spark SQL内部将Hive反编译至Hive 1.2.1版本,Spark SQL的内部操作(serdes, UDFs, UDAFs, etc)都调用Hive 1.2.1版本的class。
https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/
我最近研究了hive的相关技术,有点心得,这里和大家分享下。 首先我们要知道hive到底是做什么的。下面这几段文字很好的描述了hive的特性: 1.hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 2.Hive是建立在 Hadoo
假设MySQL数据库中有一张表,库名是sqooptest,表名是digdata,表的字段包含:
领取专属 10元无门槛券
手把手带您无忧上云