hiveserver2 和 metastore 区别 ?cli和beeline区别?

hiveserver2 和 metastore 的关系是什么
hiveserver2 也是用来访问元数据的,和metastoreServer并列关系?他们是访问元数据的二种不同服务?
有相关源码或者使用方式对比看下吗?
 
cli和beeline区别
cli是通过metaServer访问元数据的
beeline是通过hiverserver2访问元数据的
 
这二种方式有什么特点,具体写业务脚本用哪种?

李虎翼 - Hive/Hadoop

赞同来自: fish alexanda2000

HiveServer2和MetaStore本质上都是Thrift Service,虽然可以启动在同一个进程内,但不建议这么做。 建议是拆成不同的服务进程来启动 具体可以看代码,看看 HiveServer2到底启动了些什么: https://www.codatlas.com/github.com/apache/hive/master/service/src/java/org/apache/hive/service/server/HiveServer2.java?line=112   一般来讲,我们认为HiveServer2是用来提交查询的,也就是用来访问数据的。 而MetaStore才是用来访问元数据的。 如果你把两者混了,起在同一个进程内,就会产生你的问题类的疑问。   CliDriver是SQL本地直接编译,然后访问MetaStore,提交作业,是重客户端。 BeeLine是把SQL提交给HiveServer2,由HiveServer2编译,然后访问MetaStore,提交作业,是轻客户端。   具体写业务脚本两种都行,数据量大的话,建议用CliDriver

要回复问题请先登录注册