【问题标题】:Moving Sqoop data from HDFS to Hive将 Sqoop 数据从 HDFS 移动到 Hive
【发布时间】:2012-05-18 04:58:32
【问题描述】:

使用 Sqoop 将大量 MySQL 表导入 HDFS 时,我忘记包含 --hive-import 标志。所以现在我将这些表放在 HDFS 中,我想知道是否有一种简单的方法可以将数据加载到 Hive 中(无需自己编写 LOAD DATA 语句)。

我尝试使用 sqoop create-hive-table:

./bin/sqoop create-hive-table --connect jdbc:mysql://xxx:3306/dw --username xxx --password xxx --hive-import --table tweets

虽然这确实创建了正确的配置单元表,但它没有将任何数据导入其中。我有一种感觉,我在这里遗漏了一些简单的东西......

作为记录,我正在使用 Elastic MapReduce,以及 Sqoop 1.4.1。

【问题讨论】:

  • 通过挖掘 Sqoop 源代码,我很确定这在 Sqoop 中是不可能的。但是,如果可能的话,看起来 Sqoop 所做的只是在 Hive 中执行类似“LOAD DATA INPATH '/user/hadoop/tweets' INTO TABLE tweets”的内容。我想这已经足够无痛了。

标签: hadoop hive hdfs sqoop


【解决方案1】:

你不能在 hive 中创建一个外部表并将其指向这些文件吗?

create external table something(a string, b string) location 'hdfs:///some/path'

【讨论】:

    【解决方案2】:

    您没有在命令中指定“import”。语法是 sqoop tool-name [tool-arguments]

    应该是这样的:

    $ sqoop import --create-hive-table --connect jdbc:mysql://xxx:3306/dw --username xxx --password xxx --hive-import --table推文

    【讨论】:

      猜你喜欢
      • 2012-07-17
      • 2019-07-12
      • 1970-01-01
      • 2016-07-26
      • 2018-02-13
      • 2015-05-06
      • 2014-12-25
      • 2013-05-29
      • 1970-01-01
      相关资源
      最近更新 更多