hive元数据库配置metadata
2017-12-05 18:44
162 查看
一、什么是hive元数据?
hive元数据就是hive的一些基本的元素,主要包括hive表的基本属性,如下
(1)hive表的数据库名、表名、字段名称与类型、分区字段与类型
(2)表的分区,分区的属性location等
(3)serdeproperties, tblproperties等等
可以通过
desc formatted tablename
查看表有哪些属性
二、hive默认元数据库Derby(嵌入模式)
hive-default.xml通过如下配置设置
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
<description>Driver class name for a JDBC metastore</description>
</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服务器,使用本地服务(测试、学习使用)
(2)mysql部署在其他机器,hive服务器开启metadata服务,在hive服务器上操作hive
(3)mysql部署在其他机器,hive服务器开启metadata服务,在hive客户端访问hive的metadata服务
配置mysql:
配置mysql时,首先要把mysql-jdbc-driver.jar拷贝到$HIVE_HOME/lib目录下,修改hive-default.xml名字为hive-site.xml
第一种情况,hive-site.xml配置如下
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/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>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>
第二种情况,hive-site.xml配置
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.0.1: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>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://192.168.0.101:9083</value>
</property>
第三种情况,hive-site.xml配置
1、 服务端配置
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.1.214: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>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>
2、客户端配置
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://192.168.0.101:9083</value>
</property>
在使用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>
hive元数据就是hive的一些基本的元素,主要包括hive表的基本属性,如下
(1)hive表的数据库名、表名、字段名称与类型、分区字段与类型
(2)表的分区,分区的属性location等
(3)serdeproperties, tblproperties等等
可以通过
desc formatted tablename
查看表有哪些属性
二、hive默认元数据库Derby(嵌入模式)
hive-default.xml通过如下配置设置
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
<description>Driver class name for a JDBC metastore</description>
</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服务器,使用本地服务(测试、学习使用)
(2)mysql部署在其他机器,hive服务器开启metadata服务,在hive服务器上操作hive
(3)mysql部署在其他机器,hive服务器开启metadata服务,在hive客户端访问hive的metadata服务
配置mysql:
配置mysql时,首先要把mysql-jdbc-driver.jar拷贝到$HIVE_HOME/lib目录下,修改hive-default.xml名字为hive-site.xml
第一种情况,hive-site.xml配置如下
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/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>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>
第二种情况,hive-site.xml配置
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.0.1: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>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://192.168.0.101:9083</value>
</property>
第三种情况,hive-site.xml配置
1、 服务端配置
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.1.214: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>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>password</value>
</property>
2、客户端配置
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://192.168.0.101:9083</value>
</property>
在使用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>
相关文章推荐
- hive元数据库配置、metadata
- 配置hive元数据库mysql时候出现 Unable to find the JDBC database jar on host : master
- 使用abator配置iBatis,管理数据库(以MySql为例)
- EF Code First数据库连接配置
- vc++ 中ADO数据库的配置(SQLServer2005)
- glassfish4 配置数据库连接池
- RHEL7.2配置安装MariaDB数据库
- 添加JBoss插件中的hibernate tools后怎么创建hibernate配置文件和对数据库的表进行反转映射
- Spring 配置文件中如何配置数据库连接
- DatabaseFactory 配置文件没有定义一个默认的数据库。
- 求解???使用hibernate配置一个定义好的数据库。学生-课程-成绩
- 数据库开发基本操作-配置SQL Server 2005 Express的身份验证方式,以及如何启用sa登录名
- hibernate.cfg.xml文件的配置模板和不同数据库的配置參数
- Yii中实现主从数据库配置方法
- 配置mysql5.5主从复制数据库集群
- 【转】在MAC下配置MySQL 5.7 数据库的编码问题
- .NET----ASP.NET配置(web.config)无法连接到SQL Server 数据库的解决方法
- Sql Server 配置数据库邮件
- 【接口测试】-总结-关于spring框架的数据库连接配置
- Tomcat服务器的数据库连接池的配置