mysql - 使用sqoop更新hive表

标签 mysql hadoop hive sqoop

我正在尝试从MySQL 数据库中sqoop 数据,其中我有一个包含主键和last_updated 字段的表。我试图本质上获取最近更新的所有记录并覆盖配置单元仓库中的当前记录

我尝试过以下命令

sqoop job --create trainingDataUpdate -- import \
--connect jdbc:mysql://localhost:3306/analytics \
--username user \
--password-file /sqooproot.pwd \
--incremental lastmodified \
--check-column last_updated \
--last-value '2015-02-13 11:08:18' \
--table trainingDataFinal \
--merge-key id \
--direct --hive-import \
--hive-table analytics.trainingDataFinal \
--null-string '\\N' \
--null-non-string '\\N' \
--map-column-hive last_updated=TIMESTAMP

我收到以下错误

15/02/13 14:07:41 INFO hive.HiveImport: FAILED: SemanticException Line 2:17 Invalid path ''hdfs://dev.cluster.com:8020/user/hdfs/_sqoop/13140640000000520_32226_hwhjobdev_cluster.com_trainingDataFinal'': No files matching path hdfs://dev.cluster.com:8020/user/hdfs/_sqoop/13140640000000520_32226_dev.cluster.com_trainingDataFinal
15/02/13 14:07:42 ERROR tool.ImportTool: Encountered IOException running import job: java.io.IOException: Hive exited with status 64
    at org.apache.sqoop.hive.HiveImport.executeExternalHiveScript(HiveImport.java:385)
    at org.apache.sqoop.hive.HiveImport.executeScript(HiveImport.java:335)
    at org.apache.sqoop.hive.HiveImport.importTable(HiveImport.java:239)
    at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:514)
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
    at org.apache.sqoop.tool.JobTool.execJob(JobTool.java:228)
    at org.apache.sqoop.tool.JobTool.run(JobTool.java:283)
    at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
    at org.apache.sqoop.Sqoop.main(Sqoop.java:236)

我认为通过包含 --merge-key 它将能够用新记录覆盖旧记录。有谁知道这在 sqoop 中是否可行?

最佳答案

我认为 sqoop 做不到。 --merge-key 仅由 sqoop-merge 使用,不可导入

另请参阅http://sqoop.apache.org/docs/1.4.0-incubating/SqoopUserGuide.html#id1764421

关于mysql - 使用sqoop更新hive表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28509140/

相关文章:

mysql - 从 MySQL 中的 View 中选择的游标总是忽略过程中的小数点

Mysql 三触发器改为单触发器

java - 错误 : Found interface org. apache.hadoop.mapreduce.Counter,但需要类

hadoop - 如何从存储为 Parquet 的Hive分区表中删除字段?

mysql - 将数据从 mysql 导入 hive 时,用户注销和 hadoop 服务器自动关闭

MySQL 错误 1242,即使使用 ANY

mysql - 确保 BCNF 中的数据库

java - 在 Java 中尝试从 HDFS 复制 FromLocalFile 时出现 “Wrong FS… expected: file:///”

sql - 如何在 “sqoop export”中使用组合键来更新记录?

hadoop - sqoop到teradata-如何从hadoop对teradata运行300行查询