我必须通过 Sqoop 将 MySQL 表(具有复合主键)中的 > 4 亿行导入到分区的 Hive 表 Hive 中。该表有两年的数据,一列出发日期从20120605到20140605,一天有几千条记录。我需要根据出发日期对数据进行分区。
版本:
Apache Hadoop - 1.0.4
Apache hive - 0.9.0
Apache Sqoop - sqoop-1.4.2.bin__hadoop-1.0.0
据我所知,有 3 种方法:
- MySQL -> 未分区 Hive 表 -> 从未分区 Hive 表插入已分区 Hive 表
- MySQL -> 分区 Hive 表
MySQL -> 非分区 Hive 表 -> ALTER 非分区 Hive 表以添加 PARTITION
是我正在关注的当前痛苦的
我读到在 Hive 和 Sqoop 的更高(?)版本中添加了对此的支持,但找不到示例
语法规定将分区指定为键值对——在数百万条记录无法想到所有分区键值对的情况下不可行 3.
任何人都可以为方法 2 和 3 提供输入吗?
最佳答案
我猜你可以创建一个 Hive 分区表。
然后为其编写sqoop导入代码。
例如:
sqoop import --hive-overwrite --hive-drop-import-delims --warehouse-dir "/warehouse"--hive-table\
--connect jdbc
关于mysql - 使用 Sqoop 从 MySQL 导入到 Hive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17334509/