Hive中MetaServer与HiveServer2的应用

在hive中有metaServer与hiveServer2两种服务,看了好多文章说这两个的区别,文章内容有对有错,不够全面,故在这里好好总结一下。

首先,下面这个hive构架图,我们一定不陌生,它反应出hive有哪些组件结构


QQ图片20180525230656.png

当然下面的图是hadoop1的部分,现在JobTracker是Yarn了
上面的部分是访问Hive的三个入口,

1:直接Cli
2:通过JDBC
3:webUI

当我们要连接Hive进行操作时,首先必须是安装了,安装hive很简单,直接在conf/hive-site配置存放Hive元数据的连接信息,通常是用mysql,如下:

<property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
</property>
<property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>root</value>
</property>
<property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>root</value>
</property>

这样配置好后,在hive的lib里加入Mysql JDBC 驱动后,我们就可以通过 bin/hive的方式进行hive客户端,请求数据。如下图:


image.png

这样在大多数公司,特别是小公司小集群里基本是这样操作的,当然我们公司也是这样的,这样本身没有错误.
但我们看一下上面的配置,这样是不是把连接数据库的信息全泄露了,你可能会说,大家都是同公司的大数据部分,还有各种权限,泄露也无所谓,但我们想一下,在一个大的公司里,大数据平台是几个部门共用的,这样会有多台hive cli连接mysql,这样泄露mysql的信息的风险还是挺大的.
另一方面,比如我们元数据Mysql库无法启动,我们要替换从库时,或者我们要移植元数据到另一台机器上时,那么我们这么多的hive cli是不是全要修改一遍....

那么这时我们Hive的另一个组件出场了,它就是MetaStoreServer

启动:nohup $HIVE_HOME/bin/hive –metastore &
image.png

如图,我们在Hive cli与mysql中间是不是启动一个MetaStoreServer,
这样我们的Hive cli就不需要连接Mysql,直接连接这个MetaStoreServer不就行了吗,
在hive-site.xml只要简单的配置一下:

<property>
    <name>hive.metastore.uris</name>
    <value>thrift://xxxxxx:9083</value>
    <description

这样我就通过metaserver取得了元数据的信息对吧
当然上面的图只是一个MetaStoreServer,存在单点问题,但我们完全可以配置两个或者多个MetaStoreServer,就实现了负载均衡与容错的功能了,如下面的配置

<property>
 <name>hive.metastore.uris</name>
 <value>thrift://dw1:9083,thrift://dw2:9083</value>
 <description>A comma separated list of metastore uris on which metastore service       is running
</description>
</property>

接下来我们就要谈谈另一个有用的组件HiveServer2了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,104评论 25 709
  • Hive是什么? Hive是一种基于Hadoop的数据库技术并提供完整的sql查询功能, . HIVE能做什么? ...
    日出卡尔阅读 7,643评论 0 0
  • 想要开始你自己的发现之旅,第一步是要经过【心智中心】训练,这是个特别冥想训练,是通过多年科学开发的研究结果。你可以...
    無铭高地陈泓印阅读 4,563评论 0 1
  • 简书是一个将写作与阅读整合在一起的网络产品。旨在为写作者打造最优秀的写作软件 ,为阅读者打造最优雅的阅读社区。中文...
    一片森林阅读 1,228评论 0 0