文档章节

Hive Outline - Part II (Architecture, SerDe)

woodo
 woodo
发布于 2014/08/20 15:14
字数 393
阅读 65
收藏 1

Hive Architecture

1. Metastore service, 提供元数据服务,存储可以选择Derby,Mysql, 等其他数据库。

2. HiveServer,Thrift服务,

    HiveServer1 deprecated.HiveServer2 提供了如下更新:

  • HiveServer2 Thrift API spec

  • JDBC/ODBC HiveServer2 drivers

  • Concurrent Thrift clients with memory leak fixes and session/config info

  • Kerberos authentication

  • Authorization to improve GRANT/ROLE and code injection vectors

3. Driver,也叫Query Engine,这是一个核心服务,包括了HQL的Compiler,Optimizer,Executor等核心功能。


其它都是应用端如,cli,beepline, hivejar,hwi等。


Figure 1

Hive配置

优先级从高到低.

1. Hive SET

2. Hive -hiveconf

3. hive-site.xml

4. hive-default.xml

5. hadoop-size.xml

6. hadoop-default.xml


Hive Datatype:

TINYINT,SMALINT,INT,BIGINT,FLOAT,DOUBLE,BOOLEAN,STRING

1,2,4,8,4,8,true/false


ARRAY,MAP,STRUCT,see reference.


Hive Function

see online help, a lot of built-in functions, like CAST().


Hive Commands

常用的

1. SHOW TABLES;

2. SHOW FUNCTIONS;

3. DESCRIBE EXTENDED <tablename>

4. DESCRIBE FORMATTED <tablename>

5. SHOW DATABASES;

6. SET; Set var; //to show default values;


Table and Partition:

Managed Table and External Table

Partition


Storage format:

Row Fomat Delimitted 
   Fields Terminated By '\001'
   Collection Items Terminated by '\002'
   MAP KEYS TERMINATED BY '\003'
   Lines Terminated By '\n' Stored As TextFile;


SequenceFile, from Hadoop,for order and key-value, splittable shrink. Stored As Sequencefile.

RCFile, from Hive, Columnar File, Make Row Split, and store by column. this is best to access a small part of data


可以自己开发这些SerDe,InputFormat, OutputFormat, 比如:

ROW FORMAT SERDE 'com.esri.hadoop.hive.serde.JsonSerde'
STORED AS INPUTFORMAT 'com.esri.json.hadoop.EnclosedJsonInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'

SerDe:

SerDe jar description
LazySimpleSerDe org.apace.hadoop.hive.serde2.lazy default SerDe, TextFile, Lazy access.
LazyBinarySerDe org.apache.hadoop.hive.serde2.lazybinary better performance, lazy access, used internal already
BinarySortableSerDe org.apache.hadoop.hive.serde2.binarysortable optimized for sort. capacity bettween above two.
ColumnarSerDe org.apache.hadoop.hive.serde2.columnar LazySimpleSerDe based on RCFile.
RegexSerDe org.apache.hadoop.hive.contrib.serde2 apply regular expression on text line, good on log files, normal performance.
ThriftByteStreamTypedSerDe org.apache.hadoop.hive.serde2.thrift Read/write Thrift encoded binrary.
HBaseSerDe org.apache.hadoop.hive.hbase Read/write Hbase data.


总结

可以自己创建SerDe, InputFormat, OutputFormat,然后和自己的已有系统,进行数据集成。

© 著作权归作者所有

woodo
粉丝 5
博文 57
码字总数 32118
作品 0
朝阳
高级程序员
私信 提问
Hive中的ObjectInspector设计

ObjectInspector是Hive中一个咋一看比较令人困惑的概念,当初读Hive源代码时,花了很长时间才理解。 当读懂之后,发现ObjectInspector作用相当大,它解耦了数据使用和数据格式,从而提高了代...

choulanlan
2016/11/25
0
0
震秦/hive-protobuf-serde

Apache Hive Protobuf SerDe ##项目说明: 该项目用于 Hive 解析读取 Protobuf 序列化文件的一个组件. ##开发背景: 因为项目的不确定性, 加字段是常见的. 因此需要对于加了字段不需要改 Scha...

震秦
2015/11/27
0
0
[Hive]JsonSerde使用指南

注意: 重要的是每行必须是一个完整的JSON,一个JSON不能跨越多行,也就是说,serde不会对多行的Json有效。 因为这是由Hadoop处理文件的工作方式决定,文件必须是可拆分的,例如,Hadoop将在...

Mr_yul
2018/10/17
339
0
hive元数据解析、并且提取表结构

hive所有的表结构信息都存储在metastore中,而所有的数据都存储在hdfs之上,所以我们想要获得表结构信息,就需要知道hive的元数据中每个表的含义和结构。 在hive中,有简单的命令可以大概的查...

cjun1990
2016/04/26
5.3K
0
Hive 随谈(六)– Hive 的扩展特性

Hive 是一个很开放的系统,很多内容都支持用户定制,包括: 文件格式:Text File,Sequence File 内存中的数据格式: Java Integer/String, Hadoop IntWritable/Text 用户提供的 map/reduce...

红薯
2010/04/21
3.1K
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 水果你们都没吃全

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @ 莱布妮子:分享五月天的单曲《温柔》@小小编辑 @cIouddyy @clouddyy 《温柔》- 五月天 手机党少年们想听歌,请使劲儿戳(这里) @FalconChe...

小小编辑
30分钟前
91
1
聚合支付网站被黑客攻击 导致数据库被篡改的防御办法

2020春节即将来临,收到新聚合支付平台网站客户的求助电话给我们Sinesafe,反映支付订单状态被修改由原先未支付修改为已支付,导致商户那边直接发货给此订单会员了,商户和平台的损失较大,很多码...

网站安全
昨天
63
0
MySQL-基于SELECT查询的UPDATE查询

我需要检查(从同一张表)基于日期时间的两个事件之间是否存在关联。 一组数据将包含某些事件的结束日期时间,另一组数据将包含其他事件的开始日期时间。 如果第一个事件在第二个事件之前完成...

javail
昨天
70
0
将PostgreSQL数据库复制到另一台服务器

我正在将生产PostgreSQL数据库复制到开发服务器。 什么是最快,最简单的方法? #1楼 pg_dump the_db_name > the_backup.sql 然后将备份复制到您的开发服务器,并使用以下命令进行还原: ps...

技术盛宴
昨天
130
0
[译]软件架构师之路

今天给大家带来一篇自己翻译的干货《软件架构师之路》。本周Github上升很快的项目。其内容对致力于成为软件架构师(不论前后端)的同学应该都会有极大的帮助。 项目地址: 中文地址 https://...

gamedilong
昨天
79
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部