我可以通过使用sqoop成功地将mysql增量导入hdfs
sqoop job -create JOBNAME ... --incremental append --check-column id --last-value LAST
sqoop job -exec JOBNAME
以如下日志消息结束
INFO tool.ImportTool: Saving incremental import state to the metastore
INFO tool.ImportTool: Updated data for job: JOBNAME
并且检查作业会发现incremental.last.value已正确更新。
如果我尝试相同的过程,但将“--hive import”添加到作业的定义中,它将成功执行,但不会更新incremental.last.value。
这是虫子吗?预期行为?有人有从mysql增量导入数据并通过hive使其可用的过程吗?
我基本上希望我的hadoop集群成为mysql数据库的读从,以便快速分析。如果有别的解决办法,除了Hive(Pig会很好),我也很乐意听到。
3条答案
按热度按时间c9qzyr3d1#
您还可以手动创建外部配置单元表,因为这只是一次活动,您可以继续导入增量数据。
3pvhb19x2#
选项--hive import用于使用mapreduce作业在hdfs上创建表的已定义结构。此外,正在读取到hive的数据是read schema。这意味着除非执行查询,否则数据实际上不会导入到它上面。因此,每次运行文件时,查询都会在配置单元中表的新(新)架构上执行。因此,它不会存储最后的增量值。
配置单元架构上的每个查询都被视为独立的,因为它在执行时运行,并且不存储旧的结果。
68de4m5k3#
我们可以使用下面的脚本获取最后一个值。