zoukankan      html  css  js  c++  java
  • 大数据工具篇之Hive与MySQL整合完整教程

    一、引言

      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 
     7 <property>
     8   <name>javax.jdo.option.ConnectionDriverName</name>
     9   <value>com.mysql.jdbc.Driver</value>
    10   <description>Driver class name for a JDBC metastore</description>
    11 </property>
    12 
    13 <property>
    14   <name>javax.jdo.PersistenceManagerFactoryClass</name>
    15   <value>org.datanucleus.jdo.JDOPersistenceManagerFactory</value>
    16   <description>class implementing the jdo persistence</description>
    17 </property>
    18 
    19 <property>
    20   <name>javax.jdo.option.DetachAllOnCommit</name>
    21   <value>true</value>
    22   <description>detaches all objects from session so that they can be used after transaction is committed</description>
    23 </property>
    24 
    25 <property>
    26   <name>javax.jdo.option.NonTransactionalRead</name>
    27   <value>true</value>
    28   <description>reads outside of transactions</description>
    29 </property>
    30 
    31 <property>
    32   <name>javax.jdo.option.ConnectionUserName</name>
    33   <value>root</value>
    34   <description>username to use against metastore database</description>
    35 </property>
    36 
    37 <property>
    38   <name>javax.jdo.option.ConnectionPassword</name>
    39   <value>root</value>
    40   <description>password to use against metastore database</description>
    41 </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查看到。

  • 相关阅读:
    【NOI2015】荷马史诗
    Codeforces Round #415 (Div. 2)
    Codeforces Round #408 (Div. 2)
    bzoj3230
    poj1743
    poj1226
    bzoj1295
    bzoj1294
    bzoj1296
    bzoj1239
  • 原文地址:https://www.cnblogs.com/hadoopdev/p/3513541.html
Copyright © 2011-2022 走看看