【问题标题】:Hive External table in MySQLMySQL 中的 Hive 外部表
【发布时间】:2013-07-20 04:46:50
【问题描述】:

目前,我正在执行以下步骤(Hadoop 1.1.2、Hive 0.11 和 Sqoop-1.4.3.bin__hadoop-1.0.0):

  1. 使用 Sqoop 将数据从 MySQL 导入 Hive
  2. 在 Hive 中执行查询并将其输出存储在 Hive 表中
  3. 使用 Sqoop 将输出导出到 MySQL

我想知道是否可以将第 2 步和第 3 步结合起来——将 Hive 查询的输出直接写入 MySQL 数据库。

  1. 我阅读了有关外部表的信息,但找不到 LOCATION 子句指向类似 jdbc:myql://localhost:3306// 的示例。真的可以吗?
  2. This 线程谈论 JDBC 存储处理程序,但找不到相同的 Hive 示例(我猜它未实现!)

【问题讨论】:

    标签: mysql hadoop hive hiveql


    【解决方案1】:

    您提供的链接,似乎该错误未解决。 但从你的问题我的理解是,你想在 hive 中做一个选择查询,这个查询的输出需要用 MySql 编写。如果我错了,请纠正我?

    如果是这种情况,您可以为此使用 Sqoop 导出。

    请检查我的这个答案:https://stackoverflow.com/a/17753176/1970125

    希望这会有所帮助。

    【讨论】:

    • 我猜你仍然暗示在 Hive 表中写入 HDFS/ 上的输出(步骤 2)然后导出它(步骤 3)。如果我误解了您的答案,请纠正我。
    • 不是真的,我想知道是否可以结合步骤 2 和 3 - 将 Hive 查询(在本例中为表)的输出直接写入 MySQL(而不是 HDFS 和 Sqoop 之后导出)
    • 好的,据我所知,您必须使用 Sqoop 或 DBInputFormat/DBOutputFormat 来导入和导出数据。 Sqoop 是批量数据的更好选择。可以删除HDFS中的写入步骤,但仍需要使用Sqoop和DBInputFormat/DBOutputFormat。
    • 您可以更改代码并使其正常工作,但仍将是单次插入且操作成本高。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多