php数据库配置-hive元数据库配置、元数据

1.什么是Hive元数据? Hive元数据是Hive的一些基本元素,主要包括Hive表的基本属性,如下(1)Hive表的数据库名称、表名称、字段名称和类型、分区数组和类型(2)表分区、分区属性位置等(3)serdeproperties、tblproperties等可以通过desc传递

1.什么是Hive元数据? Hive元数据是Hive的一些基本元素,主要包括Hive表的基本属性,如下(1)Hive表的数据库名称、表名称、字段名称和类型、分区数组和类型(2)表分区、分区属性位置(3)serdeproperties、tblproperties等可以通过desc格式的tablename来查看该表有哪些属性。 2.hive默认元数据数据库Derby(嵌入模式)hive-default.xml通过以下配置设置

javax.jdo.option.ConnectionURL
jdbc:derby:;databaseName=metastore_db;create=true
JDBC connect string for a JDBC metastore


javax.jdo.option.ConnectionDriverName
org.apache.derby.jdbc.EmbeddedDriver
Driver class name for a JDBC metastore

登录后复制

Apache Derby 非常复杂。 核心部分derby.jar只有2M,因此可以作为独立的数据库服务器使用,也可以嵌入到应用程序中。 因此,hive使用Derby作为嵌入式元数据数据库来完成hive安装的简单测试。 hive安装完成后php数据库配置,可以在hive shell中进行一些基本操作,建表、查询等,如果细心的话,你会发现一个问题:当你在某个目录下启动终端,进入hive shell时,hive默认会在当前目录生成derby文件和metastore_db目录。 这两个文件主要保存在刚才的shell中。 一些SQL操作的结果,比如新建表、添加分区等php数据库配置,这种存储形式带来隐忧 1、同一目录下只有一个hive客户端可以同时使用数据库 2、切换目录启动新的Shell,无法查看之前创建的表,也无法共享表数据。 3.使用mysql作为元数据库。 由于使用默认元数据库存在一些缺点,因此使用mysql保存hive元数据来解决前面的问题。 hive的所有元数据都存储在同一个库中,这样不同开发人员创建的表可以共享。

MySQL配置分为几种情况:(1)MySQL部署在hive服务器上,使用本地服务(用于测试和学习)

(2)其他机器上部署MySQL,hive服务器启动元数据服务,在hive服务器上运行hive。

(3)MySQL部署在其他机器上,hive服务器启动元数据服务,hive客户端访问hive元数据服务。

配置mysql:配置mysql时,首先将mysql-jdbc-driver.jar复制到$HIVE_HOME/lib目录下,并将hive-default.xml的名称修改为hive-site.xml。 第一种情况, hive-site.xml 配置如下


hive.metastore.local
true


javax.jdo.option.ConnectionURL
jdbc:mysql://localhost/hive?createDatabaseIfNotExist=true


javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver


javax.jdo.option.ConnectionUserName
hive


javax.jdo.option.ConnectionPassword
password

第二种情况,hive-site.xml配置

javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.0.1:3306/hive?createDatabaseIfNotExist=true


javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver


javax.jdo.option.ConnectionUserName
hive


javax.jdo.option.ConnectionPassword
password


hive.metastore.local
false


hive.metastore.uris
thrift://192.168.0.101:9083

第三种情况,hive-site.xml配置 1、 服务端配置

javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.1.214:3306/hive?createDatabaseIfNotExist=true


javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver


javax.jdo.option.ConnectionUserName
hive


javax.jdo.option.ConnectionPassword
password
 2、客户端配置

hive.metastore.local
false


hive.metastore.uris
thrift://192.168.0.101:9083

在使用hive开始前,如果mysql是部署在远端且 hive.metastore.local=false 则需要启动hive的metadata服务
$ hive --service metastore
客户端使用hive命令即可
root@local:~$ hive
hive> show tables;
OK
Time taken: 0.7 seconds
hive>

登录后复制