安装mysql用于存储hive的元数据
Hive默认数据库类型Derby
hive 默认使用Derby作为Hive metastore的存储数据库,这个数据库更多用于单元测试,只支持一个用户访问,在生产环境,建议改成功能更强大的关系型数据库,根据官网的介绍,支持用于存储hive元数据的数据库如下:
hive元数据支持的数据库 | 最低版本要求 |
---|---|
MySQL | 5.6.17 |
Postgres | 9.1.13 |
Oracle | 11g |
MS SQL Server | 2008 R2 |
Derby
Apache Derby是一个完全用java编写的数据库,Derby是一个Open source的产品,基于Apache License 2.0分发。
Apache Derby非常小巧,核心部分derby.jar只有2M,所以既可以做为单独的数据库服务器使用,也可以内嵌在应用程序中使用。
主要特点
程序小巧,基础引擎和内嵌的JDBC驱动总共大约2MB。
基于Java、JDBC和SQL标准。
提供内嵌的JDBC驱动,你可把Derby嵌入到基于Java的应用程序中。
支持客户端/服务器模式。
安装、布置和使用简单。
配置使用 beeline
HiveServer2(在hive0.11中引入)有自己的CLI,称为Beeline。现在不赞成使用HiveCLI,因为它缺乏HiveServer2的多用户、安全性和其他功能。
beeline 是 hive 提供的一个新的命令行工具,基于SQLLine CLI的JDBC客户端,beeline 要与HiveServer2配合使用,支持嵌入模式和远程模式两种,也即既可以像hive client一样访问本机的hive服务,也可以通过指定ip和端口远程访问某个hive服务。hive 官网是推荐使用beeline,它还提供了更为友好的显示方式(类似mysql client)
a、要使用 beeline ,先把 hiveserver2 启动起来,默认端口为10000
见hive官方文档https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin
<property>
<name>javax.jdo.option.ConnectionURL</name>
<!--连接的主机名是hadoop106,端口号是3306,数据库名称是metastore,createDatabaseIfNotExist=true,如果没有这个数据库则创建一个 -->
<value>jdbc:mysql://hadoop106:3306/metastore?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>