HIVE Metastore中Local/Embedded Metastore Server的配置分析

来源:互联网 发布:涂鸦照片的软件 编辑:程序博客网 时间:2024/05/02 01:55
*初学者个人体会,主要作为笔记使用,如有错误欢迎指正。

根据现在的官方指引(modified by Shannon Ladymon on Jul 22, 2016)所述,HIVE的Metastore有四种配置,其中又分为两种形式——数据库(Metastore database)和服务器(Metastore Server)
  • Local/Embedded Metastore Database (Derby)
  • Remote Metastore Database
  • Local/Embedded Metastore Server 
  • Remote Metastore Server
而Local/Embedded Metastore Database (Derby)(可理解为调试模式,Metastore存储在hive执行的当前目录下),Remote Metastore Database(Metastore存储在本机或远程关系型数据库中),Remote Metastore Server(hive server通过数据库维护Metastore,客户端通过thrift协议从hive server获取Metastore)这三种百度很容易能搜索出解释。唯独Local/Embedded Metastore Server 资料较少,在此将配置中的一些心得体会分享一下:

1.在此模式下,远程主机可通过HIVE CLIENT形式访问HADOOP集群中的HIVE,但又不需要配置mysql数据库,比较适合小集群或调试阶段使用。
2.根据官方文档所述,HIVE客户端在Local/Embedded Metastore Server下使用时Metastore就像在HIVE客户端本机的Metastore一样由JDBC直接执行sql查询,所以在HIVE客户端一定要有JDBC类。
3.此方式一般使用于HIVESERVER2,在执行hiveserver2时加入"--hiveconf hive.metastore.uris=' '" 选项或配置hiveserver2-site.xml(HIVE 0.14.0之后可用)启动,并配合beeline使用。
4.Metastore的实际存放位置是在HIVESERVER2命令执行时所在的目录,生成derby.log和Metastore_db文件。如果下一次换个目录执行就会生成新的Metastore,上一次的数据表在HIVE中就无法看到(同Local/Embedded Metastore Database,所以可以视为derby的服务器版)。
5.配置参数(官方)

hive.metastore.warehouse.dir

<base hdfs path>

Points to default location of non-external Hive tables in HDFS.

hive.metastore.uris

not needed because this is local store

 

hive.metastore.local

true

this is local store (removed in Hive 0.10, see configuration description section)



0 0