首页 > 解决方案 > 使用来自 Mysql 的 sqoop 导入 Hive 耗时太长

问题描述

我在 Ubuntu 18.04 的 hadoop 之上使用 hive 和 sqoop。

Hadoop、sqoop 和 Hive 正在按预期工作,但是每当我尝试将数据导入到我创建的 Hive 数据库中时,工作都会暂停太久。

使用的 Sqoop 命令:

sqoop import \
--connect jdbc:mysql://localhost/project? \
--zeroDateTimeBehavior=CONVERT_TO_NULL \
--username hiveuser \
-P \
--table rooms \
-- hive-import \
--hive-database sqoop \
--hive-table room_info

标签: mysqlhadoophivesqoop

解决方案


您可以使用多个映射器加快该过程。为此,您需要找出具有均匀分布数据的列并将该列用作并使用选项--split-by <column_name>增加映射器。-m <count>

sqoop import \
--connect jdbc:mysql://localhost/project? \
--zeroDateTimeBehavior=CONVERT_TO_NULL \
--username hiveuser \
-P \
--table rooms \
-- hive-import \
--hive-database sqoop \
--hive-table room_info
--split-by <column_name>
-m 5

请阅读以下页面以了解更多详细信息。

https://sqoop.apache.org/docs/1.4.2/SqoopUserGuide.html

特别是这个话题:7.2.4。控制并行度


推荐阅读