hive元数据库配置、metadata

  • Post author:
  • Post category:其他




QQ


交流群:335671559,欢迎交流





一、什么是hive元数据?

hive元数据就是hive的一些基本的元素,

主要包括


hive表的基本属性,


如下

(1)hive表的数据库名、表名、字段名称与类型、分区字段与类型

(2)表的分区,分区的属性location等

(3)serdeproperties, tblproperties等等

可以通过

desc formatted tablename

查看表有哪些属性
二、hive默认元数据库Derby(嵌入模式)

hive-default.xml

通过如下配置设置




  1. <




    name




    >


    javax.jdo.option.ConnectionURL


    </




    name




    >





  2. <




    value




    >


    jdbc:derby:;

    databaseName

    =

    metastore_db

    ;

    create

    =

    true



    </




    value




    >





  3. <




    description




    >


    JDBC connect string for a JDBC metastore


    </




    description




    >





  4. </




    property




    >






  5. <




    property




    >





  6. <




    name




    >


    javax.jdo.option.ConnectionDriverName


    </




    name




    >





  7. <




    value




    >


    org.apache.derby.jdbc.EmbeddedDriver


    </




    value




    >





  8. <




    description




    >


    Driver class name for a JDBC metastore


    </




    description




    >





  9. </




    property




    >




Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。所以hive采用了Derby作为一个内嵌的元数据库,可以完成hive安装的简单测试。

hive安装完成之后,就可以在hive shell中执行一些基本的操作,创建表、查询等等。如果你细心的话,就会发现一个问题:

当在某个目录下启动终端,进入hive shell时,hive默认会在当前目录下生成


一个


derby


文件





一个


metastore_db


目录


,这两个文件主要保存刚刚在shell中操作的一些sql的结果,比如新建的表、添加的分区等等

这种存储方


式的带来


弊端

1.在同一个目录下同时只能有一个hive客户端能使用数据库

2.



切换目录



启动新的shell,无法查看之前创建的表,不能实现表数据的共享

三、使用mysql作为元数据库

由于使用默认的元数据库有些弊端,所以采用mysql保存hive元数据解决上面的问题。hive所有的元数据都保存在同一个库里,这样不同开发者创建的表可以实现共享。


mysql配置又分为几种情况:

(1)mysql部署在hive服务器,使用本地服务(测试、学习使用)





版权声明:本文为jyl1798原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。