Hive 基础及安装
Hive 操作(一)
hive 操作(二)——使用 mysql 作为 hive 的metastore
hive 操作(三)——hive 的数据模型
hive 操作(四)
hive 默认使用 derby 作为映射表(SQL 操作映射为MapReduce Job,将SQL中创建的表映射为 hdfs 的文件/文件夹,字段映射为其中的行),但 derby 的一大缺陷在于它不允许多个客户端同时执行sql操作(可能新版本的hive会有所升级)。
我们又知hive的metastore,除了derby,还可存放于 mysql 中;
CentOS mysql 的安装 一文,我们介绍了 CentOS 中 mysql 的安装。
使用 mysql 作为 hive 的metastore
使用 hive 连接 mysql 其实意味着使用 JDBC 来连接,不妨再来看一下,hive的体系结构(hive 在hadoop的基础上,既提供了命令行的接口,输入hive进入,也提供了JDBC/ODBC的连接接口,当然还有一套Web GUI):
(1)把 mysql 的 jdbc 驱动(
mysql-connector-java-5.1.10.jar
)放置到 hive 的 lib 目录下;(2)修改
$HIVE_HOME/conf
下的 hive-site.xml(由mv hive-default.xml.template hive-site.xml
而来)<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://hadoop0:3306/hive?createDatabaseIfNotExist=true</value> </property> # 如果数据库不存在的话 # 创建数据库名为hive的数据库 <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> # 设置驱动 <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> # 用户名 <property> <name>javax.jdo.option.ConnectionPassword</name> <value>admin</value> </property> # 登录密码
- (3)远程登录(使用Navicat for Mysql)登录此节点上的mysql(主机名hadoop0,用户名root,密码admin,如前所设),会在Navicat 中发现创建的数据库
hive
,其内的表DBS
的 DB_LOCATION_URI(也即指向的路径),为hdfs://hadoop0:9000/hive
(此路径由hive-site.xml
中的hive.metastore.warehouse.dir
所决定)。