hive架构探索

hive简介

hive是一款数据仓库软件,帮助用户使用SQL来管理/读写在分布式存储上的大型数据集。用户可以通过cli/JBDC driver等方式来连接hive。

直接编写MapReduce程序来操作hadoop上的数据集需要编写复杂的代码,而使用hive,只需要简单的sql语句,如select * from test;则可以获取到在hadoop上的指定数据。

hive架构

hive并不存储数据,hive只是操作在分布式存储上的数据,如HDFS/HBase。
以HDFS为例,HDFS上只是简单的文件,并不带表信息/列信息,而hive可以把HDFS上的数据读取出来以表数据的方式呈现。那HDFS上的文件有些什么表,表里有什么列,这就是元数据,存放在普通数据库中,如derby/MySQL。

这里写图片描述
hive从metastore中获取元数据,将SQL语句翻译成MapReduce程序,交给Hadoop操纵在HDFS上的数据。


那hive里面又是怎样的呢。
这里写图片描述

1. hive提供多个服务,可以通过以下命令启动

hive <parameters> --service serviceName <service parameters>

Service List:

beeline 
cleardanglingscratchdir 
cli 
hbaseimport 
hbaseschematool 
help 
hiveburninclient 
hiveserver2 
hplsql 
jar 
lineage 
llapdump 
llap 
llapstatus 
metastore 
metatool 
orcfiledump 
rcfilecat 
schemaTool 
version 

常用的就是cli/hiveserver2/metastore。

1.1 cli

提供命令行方式访问hive

1.2 hiveserver2

hive thrift server,使程序可以通过JDBC driver等接入hive

1.3 metastore

hive元数据服务。

2. hive从2.2.0开始包含了HCatalog

HCatalog是基于Apache Hadoop之上的数据表和存储管理服务,支持跨数据处理工具,如Pig,Mapreduce,Streaming,Hive。
使用HCatalog,则hive的元数据也可以为其他基于Hadoop的工具所使用。无论用户用哪个数据处理工具,通过HCatalog,都可以操作同一个数据。

扫描二维码关注公众号,回复: 1918800 查看本文章

以上大部分为个人理解,如有不对,望指出。

猜你喜欢

转载自blog.csdn.net/lblblblblzdx/article/details/79802432
今日推荐