【问题标题】:Hive table disappeared蜂巢表消失了
【发布时间】:2014-04-28 11:41:04
【问题描述】:

我已使用 Sqoop 命令将数据从 MySQL 导入 Hive。 sqoop import --connect jdbc:mysql://mysql_server/db1 --username userid --password passwd --query 'select col1, col2, sum(col3), sum(col4), sum(col5), sum(col6) from table1 WHERE $CONDITIONS group by col1, col2' --split-by col1 --hive-import --hive-home /root/dev/hive-0.11.0 --create-hive-table --hive-table hive_table1 --target-dir imported_data。数据成功导入,我也可以查询导入的表。但是第二天当我连接到蜂巢并显示表格时,它没有返回任何东西。 Hive 中只有一个数据库,因此不会出现任何混淆。 我担心的是,一旦我与 Hive 断开连接,内部表就会被删除?无论如何,导入的数据是否应该只驻留在 Hive 中,而不应该驻留在 HDFS 上?

【问题讨论】:

    标签: hive sqoop


    【解决方案1】:

    我终于解决了这个问题。这将涉及两个步骤。

    1. 创建一个外部配置单元表。
    2. 使用 Sqoop 导入数据。

    外部表的创建:hive 中的外部表是一种永久表,即使 hive 停止或服务器关闭,它也会保留在那里。 “EXTERNAL”关键字用于指定表类型。

    CREATE EXTERNAL TABLE IF NOT EXISTS HIVEDB.HIVE_TABLE1 (DATE_COL DATE, 
    BIG_INT_COL BIGINT, INT_COL INT, VARCHAR_COL VARCHAR(221), FLOAT_COL FLOAT);
    

    使用 Sqoop 导入数据:在导入数据时指定创建的表名,而不是使用“--hive-create”选项。

    sqoop import --connect jdbc:mysql://mysqlhost/mysqldb --username user --password 
    passwd --query "SELECT table1.date_col, table1.big_int_col, table1.int_col, 
    table1.varchar_col, table1.float_col FROM MYSQL_TABLE1 AS table1 WHERE 
    \$CONDITIONS" --split-by table1.date_col --hive-import 
    --hive-table hivedb.hive_table1 --target-dir hive_table1_data`
    

    数据永久存储在 Hive 中。

    【讨论】:

      【解决方案2】:

      这里只是一些澄清:

      1. 在 hive 上创建的表总是在内部存储在 HDFS 上。否则,使用 Hive 而不是传统的 RDBMS 有什么意义。
      2. EXTERNAL 关键字具有非常不同的含义。这意味着表的数据不存储在 Hive 的权限范围内。如果您要创建的表已经存在于 HDFS 中,那么 IT 很有用。因此,您可以指定一个 HDFS 路径,而不是创建表的副本,该路径充当表的数据源。

      另外假设你有 hive 的默认设置,看到表消失是很常见的。这通常是因为默认配置中的 derby 数据库将表元数据存储在调用 hive 的目录中。这是一个简单的解决方案:Hive is not showing tables

      更好的解决方案是https://cwiki.apache.org/confluence/display/Hive/HiveDerbyServerMode

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-12
        相关资源
        最近更新 更多