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】这份资料主要涵盖了Hadoop集群中的Hive应用开发,包括Hive的基本服务、Hive Shell的使用、JDBC/ODBC支持等内容。...
4. **JDBC/ODBC支持**:Hive提供了JDBC(Java Database Connectivity)和ODBC(Open Database Connectivity)驱动,使得支持这些协议的应用程序能够直接连接到Hive,将Hive作为一个数据库进行操作。 【Hive的使用...
Hive的应用场景: * 数据分析和清洗 * 离线数据处理 * 大数据仓库建设 HBase的应用场景: * 实时数据处理 * 大数据存储 * 云计算平台 Hive是一种基于Hadoop的大数据仓库工具,可以将结构化的数据文件映射为一个...
【秘密】Hive SQL 开发规范 Hive作为Hadoop生态系统中的重要组件,为企业提供了对大规模数据集的高效处理和分析能力。它允许用户通过类似于SQL的查询语言(HiveQL)来操作分布式存储的数据,简化了MapReduce编程...
利用Hive进行复杂用户行为大数据分析及优化案例(全套视频+课件+代码+讲义+工具软件),具体内容包括: 01_自动批量加载数据到hive 02_Hive表批量加载数据的脚本实现(一) 03_Hive表批量加载数据的脚本实现(二) ...
这个压缩包文件“HIVE相关的jar包”包含了不同版本的Hive库文件,这些文件对于在Java环境下开发和运行Hive应用程序至关重要。下面我们将详细讨论Hive jar包及其在IT领域的应用。 首先,Hive jar包是Hive服务的核心...
### 三、Hive应用架构 Hive是基于Hadoop的数据仓库工具,它提供了SQL-like查询语言(HQL)来操作分布式存储的数据。Hive的主要特点是将结构化的数据映射到Hadoop的HDFS上,并通过MapReduce进行计算。Hive不适用于...
《深入学习Hive应用场景及架构原理》 Hive,源于Facebook的创新,是为了解决海量社交网络数据管理和机器学习需求而诞生的。随着互联网进入大数据时代,Hadoop成为核心,但其MapReduce操作对技术要求较高。为适应这...
通过阅读这份文档,我们可以深入了解如何将Hive应用于实际业务问题,学习如何根据业务需求设计和优化Hive查询,以及如何解读和利用查询结果来驱动决策。 总结起来,"Hive综合应用案例——用户学历查询"是一个全面...
此外,课程还涉及在Amazon Web Services (AWS)上的Hive应用,讲解如何在EMR集群上管理Hive,配置元数据,以及使用Thrift服务进行远程访问。 讲师王家林是Hadoop源码级专家,具有丰富的实战经验和教学经验,他的著作...
在大数据分析领域,Hive...通过这个“hive影评案例”,学习者可以实践如何使用Java编写Hive应用程序,同时了解Hive在大数据分析中的实际应用。掌握这些技能将有助于理解大数据处理的流程,提高解决复杂数据问题的能力。
华为大数据认证:Hive分布式数据仓库课程目标是让学员掌握Hive应用场景与基本原理、掌握FusionInsight中Hive增强特性、熟悉常用Hive SQL语句。课程目录包括Hive概述、Hive功能与架构、Hive基本操作等。 Hive是大...
然后,在工程项目下建立一个java开发的模块,这个模块将用来开发hive应用程序。 其次,需要将hive开发的jar包添加到IDEA上面去。hive的开发用到的jar包可以从安装CDH集群的相关目录下下载下来,例如从/opt/cloudera...
总结来说,这个"星环hive-8.0.2 java 依赖包全集"是针对星环Inceptor 8.0.2版本的Java开发资源,包含了运行和开发Hive应用所需的全部依赖。对于Java开发者来说,这个集合是构建基于Hive的分析应用,尤其是在星环...
- Hive应用场景及优缺点分析; - 环境搭建过程; - 元数据与数据存储机制。 2. **Hive Shell常用命令** - `hive-e`、`hive-f`、`hive-v`、`hive-i`、`hive-S`等命令的使用方法及其应用场景。 3. **Hive表操作*...
在"programming_hive-master"中,可能包含了各种Hive应用示例、数据处理脚本、测试用例等,读者可以通过这些代码学习如何在实际项目中运用Hive。例如,可能包含创建表的HQL脚本、数据导入脚本、复杂查询示例、性能...
- **调试技巧**:利用日志记录、性能监控等手段优化 Hive 应用程序。 8. **使用 Hue** - **准备工作**:安装必要的依赖库。 - **操作步骤**: - 下载并安装 Hue。 - 配置 Hue 支持 Hive。 - 启动 Hue 服务。...