mysql - 使用 Sqoop 从 MySQL 导入到 Hive

标签 mysql hadoop hive sqoop hiveql

我必须通过 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 种方法:

  1. MySQL -> 未分区 Hive 表 -> 从未分区 Hive 表插入已分区 Hive 表
  2. MySQL -> 分区 Hive 表
  3. MySQL -> 非分区 Hive 表 -> ALTER 非分区 Hive 表以添加 PARTITION

    1. 我正在关注的当前痛苦的

    2. 我读到在 Hive 和 Sqoop 的更高(?)版本中添加了对此的支持,但找不到示例

    3. 语法规定将分区指定为键值对——在数百万条记录无法想到所有分区键值对的情况下不可行 3.

任何人都可以为方法 2 和 3 提供输入吗?

最佳答案

我猜你可以创建一个 Hive 分区表。

然后为其编写sqoop导入代码。

例如:

sqoop import --hive-overwrite --hive-drop-import-delims --warehouse-dir "/warehouse"--hive-table\ --connect jdbc/DATABASE=xxxx\ --table --username xxxx --password xxxx --num-mappers 1 --hive-partition-key --hive-partition-value --hive-import\ --fields-terminated-by ',' --lines-terminated-by '\n'

关于mysql - 使用 Sqoop 从 MySQL 导入到 Hive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17334509/

相关文章:

php - 如何使用 MYSQL 和 jquery ajax 调用浏览每 5 条记录

java - 选择求和条件连接表mysql

java - 启动 Sqoop2 server (1.99.7) 时无法找到 hadoop 配置类

hadoop - 我在尝试使用Hadoop和YARN时遇到错误。需要协助

mysql - Ubuntu 上的 Hive 配置

apache-spark - 用以前的记录填充 NULLS - Netezza SQL

mysql - 搜索以字符串格式提供的数字范围内的数字(MySQL)

mysql - 使用 '*' 在 select 中添加一个额外的列

mysql - Hive 连接多个表和 where 语句

hadoop - 当我们在HIVE中添加一个 jar 时会发生什么?