分享

Hive与传统数据库MySQL整合指导

yuwenge 2014-1-12 23:56:01 发表于 安装配置 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 7294

一、引言

 Hive元数据存储可以放到RDBMS数据库中,本文以Hive与MySQL数据库的整合为目标,详细说明Hive与MySQL的整合方法。

二、安装驱动

MySQL最新的Java驱动版本为:mysql-connector-java-5.1.28-bin.jar,下载后拷贝到:Hive/Lib目录。

三、安装MySQL

  3.1 版本

  RHEL5+mysql-5.5.35-1.i386.rpm

  3.2 顺序  

  MySQL-shared-compat-5.5.35-1.rhel15.i386.rpm

      MySQL-server-5.5.35-1.rhel5.i386.rpm

      MySQL-client-5.5.35-1.rhel5.i386.rpm

四、配置文件

  修改Hive配置文件Hive-site.xml,修改后的结果如下所示:

  1. <property>
  2.   <name>javax.jdo.option.ConnectionURL</name>
  3.   <value>jdbc:mysql://localhost:3306/hivedb?characterEncoding=UTF-8</value>
  4.   <description>JDBC connect string for a JDBC metastore</description>
  5. </property>
  6. <property>
  7.   <name>javax.jdo.option.ConnectionDriverName</name>
  8.   <value>com.mysql.jdbc.Driver</value>
  9.   <description>Driver class name for a JDBC metastore</description>
  10. </property>
  11. <property>
  12.   <name>javax.jdo.PersistenceManagerFactoryClass</name>
  13.   <value>org.datanucleus.jdo.JDOPersistenceManagerFactory</value>
  14.   <description>class implementing the jdo persistence</description>
  15. </property>
  16. <property>
  17.   <name>javax.jdo.option.DetachAllOnCommit</name>
  18.   <value>true</value>
  19.   <description>detaches all objects from session so that they can be used after transaction is committed</description>
  20. </property>
  21. <property>
  22.   <name>javax.jdo.option.NonTransactionalRead</name>
  23.   <value>true</value>
  24.   <description>reads outside of transactions</description>
  25. </property>
  26. <property>
  27.   <name>javax.jdo.option.ConnectionUserName</name>
  28.   <value>root</value>
  29.   <description>username to use against metastore database</description>
  30. </property>
  31. <property>
  32.   <name>javax.jdo.option.ConnectionPassword</name>
  33.   <value>root</value>
  34.   <description>password to use against metastore database</description>
  35. </property>
复制代码
五、结果展示安装完成以后,通过访问mysql客户端,可以用来验证是否安装成功。注意与普通关系型数据创建表格后的区别。  mysql>show tables;
  1. +----------------+
  2. | Tables_in_hive |
  3. +----------------+
  4. | BUCKETING_COLS |
  5. | COLUMNS |
  6. | DBS |
  7. | PARTITION_KEYS |
  8. | SDS |
  9. | SD_PARAMS |
  10. | SEQUENCE_TABLE |
  11. | SERDES |
  12. | SERDE_PARAMS |
  13. | SORT_COLS |
  14. | TABLE_PARAMS |
  15. | TBLS |
  16. +----------------+
复制代码
六、注意事项曾经有人单独找我咨询过这个问题:为何无法在Hive中指定使用哪个MySQL数据库?这里面有一个需要说明的地方是Hive的数据库的概念不同于RDBMS数据库,MySQL数据库的指定是基于配置文件的,但是Hive的数据库只是一个命名空间号,类似分组的概念。hive中的数据库可以在使用MySQL数据库中,通过Select * from DBS查看到。


没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条