1:hive是一个构建在hadoop上的数据仓库平台,hive提供一个被称为Hive查询语言,来查询存储在Hadoop集群中的数据。hive的查询语句会被解析为mapreduce任务,由hadoop集群执行mapReduce任务读取hdfs分布式文件系统中的数据,hive不会在数据加载时进行验证,而是在查询时进行,读时模式。
2:hive会为每个数据库创建一个目录。数据库中的表将会以这个数据库目录的子目录形式存储。
3:hive本身不存储和计算数据,依赖于hdfs和mapreduce,hive中的表是逻辑表,是元数据。
4:hbase是一个分布式的,面向列的开源数据库,它是一个适合于非结构化数据存储的数据库,是物理表。
5: hive与关系性数据库:
存储位置:HDFS和本地文件
数据格式:用户定义和系统决定
数据更新:不支持和支持
索引:无和有
执行:MapReduce和Executor(数据库执行引擎)
执行延迟:高和低
6:数据仓库(DW):面向主题,数据稳定,时间而更新,数据模型(星型模型和雪花模型)
7:hive的元数据存储:hive的元数据包括表的名字,表的列,表的分区,表的属性(是否是外部表,表的目录位置),存储在关系型数据库中。
hive的内嵌模式使用的是derby数据库联接,不支持多会话,可以使用hive的本地模式,使mysql数据库联接,支持多会话。
8:hive的数据存储:存储是在hadoop文件系统
内部表和外部表:内部表的操作包含两个步骤:表创建过程和数据加载,删除表时元数据和hdfs文件都会删除
外部表创建只有一个步骤,创建表和加载数据同时完成,删除表时只删元数据。
主要原因是:内部表数据会移动到数据仓库目录中。
9:mapReduce实现基本SQL操作 (主要是明确如何确定key,value)
(1)join实现原理:在map阶段将两个关联的表按照关联键拆成key和value,在shuffe阶段把key值相同组合在一组,最后reduce将value值合并。
红色的标示tag,表示那个表
A 表
uid name key value key value name orderid
1 apple 1 <1,apple> 1 <1,apple> apple 1002
2 orange 2 <1,oranger> 1 <2,1002> apple 1003
---> map --->shuffle 1 <2,1003> --->reduece
B表
uid orderid key value key value name orderid
1 1001 1 <2,1001> 2 <1,oranger> oranger 1003
1 1002 1 <2,1002> 2 <2,1003>
2 1003 2 <2,1003>
(2)group by的实现原理:在map阶段按照分组的字段拆成key和value,在这时value值会按照key汇总,然后在shuffe阶段把key值相同的组合在一组,最后reduce再将value再次汇总。
city表
value 是count值
rank isonline key value key value rank isonline value
A 1 --->map <A,1> 2 ---> shuffle <A,1> 2 A 1 3
A 1 <A,1> 1
rank isoneline key value key value rank isonline value
A 1 --->map <A,1> 1 --->shuffle <B,0> 1 B 0 1
B 0 <B,0> 1
10:sql转为mapreduce的过程:客户端执行sql,driver会找到对应的元数据,driver将sql语句交给编译器,编译器执行编译好的sql后,driver会将sql转为mapreduce任务交由hadoop集群来执行。
11: 什么情况下可以避免mapReduce
本地模式: 如select * from employee limit 10 在这种情况下,hive可以简单地读取employees对应的存储目录下的文件。
过滤条件只是分区字段
12: Hive的UDF函数
方式一:编写一个UDF,需要继承UDF类并实现evaluate()函数,在查询执行过程中,查询中对应的每个应用到这个函数的地方都会对这个类进行实例化。
对于每行输入都会调用到evaluate()函数,然后evaluate()处理后的值会返回给Hive
如果想在Hive中使用UDF,那么需要将对应的jar文件加入到类路径下,然后再创建一个Function
CREATE TEMPORARY FUNCTION ‘函数名' As ‘类名’ (是临时的,查询执行完,就不可以再使用了)
方式二:不变的UDF函数
通过注册的方式:将函数增加到hive内置函数中
registerUDF("方法名","Calss"); // 注册函数方法
13: Hive结合zookeeper(实现了高度可靠的分布式协调功能),支持锁功能
14: Hive和Oozie整合 (Oozie是一个工作流引擎服务器,将工作流的状态和发起任务的客户端分离开)
Oozie通过workflow.xml文件配置Action任务,可以将多个Action串起来
15: hive -f mail.sql >> mail.csv
LOAD DATA local INFILE 'D://dev_code//mail.csv' into table fact_repertory_alarm_mail FIELDS TERMINATED by '\t'
相关推荐
大数据与云计算培训学习资料 Hadoop集群 细细品味Hadoop_第14期_Hive应用开发_V1.0 共29页.pdf
利用Hive进行复杂用户行为大数据分析及优化案例(全套视频+课件+代码+讲义+工具软件),具体内容包括: 01_自动批量加载数据到hive 02_Hive表批量加载数据的脚本实现(一) 03_Hive表批量加载数据的脚本实现(二) ...
2021年-Hive大数据仓库-期末考试知识点重点-笔记整理.pdf
Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群Hadoop_Hadoop集群
讲解hadoop生态,mapreduce原理,hive应用架构,数据过滤实战
Hive最初是Facebook为了满足对海量社交网络数据的管理和机器学习的需求而产生和发展的。互联网现在进入了大数据时代,大数据是现在互联网的趋势,而hadoop就是大数据时代里的核心技术,但是hadoop的mapreduce操作...
大数据技术基础实验报告-Hive安装配置与应用
Hive学习总结及应用.pdf
由于 Hive 采用了类似SQL 的查询语言 HQL(Hive Query Language),因此很容易将 Hive ...数据库可以用在 Online 的应用中,但是Hive 是为数据仓库而设计的,清楚这一点,有助于从应用角度理解 Hive 的特性。
│ │ 20--Apache Hive--安装部署--本地模式--Hive安装配置.avi │ │ 21--Apache Hive--安装部署--远程模式安装与metastore服务启动.avi │ │ 25--Apache Hive--初体验1--Hive使用起来和MySQL差不多吗?.avi...
38 Hive 应用介绍 42 Hive 执行计划解析 50 MapReduce 中的Shuffle 和Sort 分析 53 海量数据存储和计算平台的调试器研究 56 探讨MapReduce 模型的改进 58 运行eclipse 编译出的Hadoop 框架 59 表关联在MapReduce 上...
Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析。 目录: Hive入门与实战.pdf hive函数...
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。(1)解析器(SQL Parser):将SQL字符串转换成抽象语法树AST,这一步一般都用第三方工具库完成,比如antlr;对AST...
11_离线计算系统_第11天(HIVE详解)v.2 学习必备;1、熟练掌握hive的使用 2、熟练掌握hql的编写 3、理解hive的工作原理 4、具备hive应用实战能力
15.Hive中数据导入的6种方式及其应用场景 16.Hive中数据导出的4种方式及表的导入导出 17.Hive中HQL的基本语法(一) 18.Hive中HQL的基本语法(二) 19.Hive中order by、sort by、distribute by与cluster by的使用 20...
开源数据仓库Hive在facebook的应用
hive的初级函数调用 例如count,sum等用法
Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive是十分适合数据仓库的统计分析和Windows注册表文件。 本文是Hive的开发...