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 查看本文章
以上大部分为个人理解,如有不对,望指出。