mysql - 使用来自 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
解决方案
您可以使用多个映射器加快该过程。为此,您需要找出具有均匀分布数据的列并将该列用作并使用选项--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。控制并行度
推荐阅读
- linux - MediaWiki - 限制对命名空间的访问
- excel - 具有 2 个逻辑条件的 Excel 公式
- html - 直接将woff字体嵌入到blogger
- linux - 无法再连接到我的树莓派
- amazon-web-services - AWS CloudFormation 在通过 CLI 部署时无法创建模板
- ios - 使用 URLSession.shared.dataTask 发出 api 请求
- javascript - 添加的每个任务都有自己的属性
- javascript - 如何在 JavaScript 中将数组“结构”保留在字符串中
- python - 使用 CNN 从飞镖降落的飞镖板中获取价值
- mongodb - 后台创建MongoDB索引