- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hive基础与编程
2014年中国电信大数据技术与应用培训
2014年06月
江西电信大数据支撑团队
目录
1、Hive简介
2、Hive开发工具
3、Hive的表
4、Hive的元数据
5、Hive分区
6、Hive编程
7、HiveQL优化
8、HiveSQL与SQL的比较
9、Hive的用户自定义函数
主题一:Hive简介
Hive是什么?
Hive是基于Hadoop的一个数据仓库工具;
使用hadoop-hdfs作为数据存储层;
通过hadoop-mapreduce完成数据计算,提供类似SQL的语言(HQL);
通过HQL语言提供使用者部分传统RDBMS一样的表格查询特性和分布式存储计算特性;
其优点是学习成本低,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
主题一:Hive简介
Hive不是什么
Hive运算基于Hadoop的MapReduce模型,MapReduce不能保证低延迟。因此,hive的查询也不能保证低延迟。
Hive的工作模式是:提交一个任务,等到任务结束时被通知,而不是实时查询。相对应的是,类似于Oracle这样的系统当运行小数据集的时候,响应非常快,可当处理的数据集非常大的时候,可能需要数小时。需要说明的是,hive即使在很小的数据集上运行,也可能需要数分钟才能完成。
总之,低延迟不是hive追求的首要目标。Hive的设计目标是:可伸缩、可扩展、容错及输入格式松耦合。
主题一:Hive简介
Hive与传统数据库的异同
查询语言
HQL
SQL
数据存储位置
HDFS
Raw Device(裸设备)或者Local FS
数据格式
用户定义
系统决定
数据更新
不支持
支持
索引
有
有
执行
MapReduce
Executor
分区
支持
支持
执行延迟
高
低
可扩展性
高
低
数据规模
大
小
数据检查
读时模式
写时模式
主题一:Hive简介
Hive架构
主要分为以下几个部分:
用户接口
主要有三个:CLI,Client 和 WUI
元数据存储
Hive 将元数据存储在数据库中,如 oracle、mysql、derby等
解释器、编译器、优化器、执行器
完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成
Hadoop
Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成
主题一:Hive简介
Hive开发语言
Hive提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,通常称之为:HQL
不支持:
INSERT……VALUES、UPDATE和DELETE等操作
BEGIN、COMMIT和ROLLBACK等操作
主题二:Hive开发工具
命令行接口方式
Web接口方式
Thrift Server方式
主题二:Hive开发工具
命令行接口方式
示例
HQL语句:select a.acc_nbr from tb_mid_serv_day a
$HIVE_HOME/bin/hive -e select a.acc_nbr from tb_mid_serv_day a‘
使用静音模式执行HQL
$HIVE_HOME/bin/hive -S -e select a.col from tab1 a
主题二:Hive开发工具
Web接口方式
Hive的web界面:HWI
HWI是Hive Web Interface的简称,是hive cli的一个web替换方案。
HWI与CLI对比的优缺点:
优点:HWI支持浏览器的方式浏览,方便直观。
缺点:无执行过程提示。
主题二:Hive开发工具
Thrift Server方式
Toad For Cloud
Cloudera Hue
Eclipse IDE
Squirrle SQL
主题三:Hive的表
Hive表
hive的表逻辑上由存储的数据和描述表格中的数据形式的相关元数据组成。
Hive里的表有两种类型一种叫普通表,一种叫外部表。
普通表与外部表的区别:
(1)创建外部表的时候table之前要加关键字external
(2)在做drop操作时(drop是hive删除表的命令),普通表执行drop命令的时候,会删除元数据和存储的数据,而外部表执行drop命令时候只删除元数据库里的数据,而不会删除存储的数据。
主题三:Hive的表
创建Hive表实例
创建普通表实例
create table normal_table (
col1 string,
col2 string
col3 string);
创建外部表实例
create external table external_table (
col1 string,
col2 string
col3 string);
主
文档评论(0)