`
lookqlp
  • 浏览: 346122 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

关于sqoop --split-by 及 -m的理解

阅读更多
场景:

sqoop import --connect jdbc:postgresql://...../..... --username ....  --query "select * from retail_tb_order_qiulp_test where status = 'TRADE_FINISHED' or status = 'TRADE_CLOSED' or status = 'TRADE_CLOSED_BY_TAOBAO' and \$CONDITIONS"  --hive-import -m 6 --hive-table custom_analyse_db.retail_tb_order_main --hive-overwrite --hive-partition-key part --hive-partition-value qiulp --target-dir /user/qiulp/test1 --split-by tid
注意红色字体部分, retail_tb_order_qiulp_test表原有1000条数据,导入hive后成了6000条,是map的倍数关系。
如下图,一条数据在hive中有6条相同的数据:

理解
1.split-by 根据不同的参数类型有不同的切分方法,如int型,Sqoop会取最大和最小split-by字段值,然后根据传入的num-mappers来 确定划分几个区域。比如select max(split_by),min(split-by) from得到的max(split-by)和min(split-by)分别为1000和1,而num-mappers(-m)为2的话,则会分成两个区域 (1,500)和(501-1000),同时也会分成2个sql给2个map去进行导入操作,分别为select XXX from table where split-by>=1 and split-by<500和select XXX from table where split-by>=501 and split-by<=1000.最后每个map各自获取各自SQL中的数据进行导入工作。

2.当split-by不是int型时出现如上场景中的问题。目前想到的解决办法是:将-m 设置称1,split-by不设置,即只有一个map运行,缺点是不能并行map录入数据。(注意,当-m 设置的值大于1时,split-by必须设置字段)

3.split-by即便是int型,若不是连续有规律递增的话,各个map分配的数据是不均衡的,可能会有些map很忙,有些map几乎没有数据处理的情况
  • 大小: 185.4 KB
分享到:
评论
2 楼 lookqlp 2013-09-30  
chenchangqun 写道
请问 -m的值设为多少为最佳?

看数据量大小了,每个map多少数据量,最好再测试一下
1 楼 chenchangqun 2013-07-24  
请问 -m的值设为多少为最佳?

相关推荐

    sqoop-1.4.6-cdh5.13.2.tar

    mv /usr/local/sqoop-1.4.6-cdh5.13.2/conf/sqoop-env.template.sh /usr/local/sqoop-1.4.6-cdh5.13.2/conf/sqoop-env.sh vi /usr/local/sqoop-1.4.6-cdh5.13.2/conf/sqoop-env.sh export HADOOP_COMMON_HOME=/usr/...

    Sqoop-sqlserver-hdfs.rar

    在这个"Sqoop-sqlserver-hdfs.rar"压缩包中,我们有两个关键文件:sqljdbc.jar和sqoop-sqlserver-1.0.tar.gz,它们是实现SQL Server到HDFS数据迁移的关键组件。 首先,`sqljdbc.jar`是Microsoft提供的Java驱动程序...

    sqoop-1.4.7.jar

    sqoop框架开发工具使用的jar sqoop-1.4.7.jar 手动安装到maven &lt;groupId&gt;org.apache.sqoop &lt;artifactId&gt;sqoop &lt;version&gt;1.4.7 &lt;/dependency&gt;

    sqoop-1.4.7.bin__hadoop-2.6.0.tar

    这个压缩包 "sqoop-1.4.7.bin__hadoop-2.6.0.tar" 包含了 Sqoop 的 1.4.7 版本,该版本是针对 Hadoop 2.6.0 的。对于那些不想通过官方网站下载的用户,这是一个方便的选择。 在 Hadoop 生态系统中,Sqoop 提供了一...

    sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.zip

    这个压缩包 "sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.zip" 包含了 Sqoop 1.4.6 版本,该版本是为 Hadoop 2.0.4-alpha 版本定制的。Sqoop 的主要功能是让大数据分析师和开发人员能够方便地导入和导出数据,它弥补了...

    sqoop-1.4.6.jar.zip

    sqoop框架开发工具使用的jar sqoop-1.4.6.jar 手动安装到maven &lt;groupId&gt;org.apache.sqoop &lt;artifactId&gt;sqoop &lt;version&gt;1.4.6 &lt;/dependency&gt;

    sqoop-1.4.6.bin__hadoop-2.0.4-alpha.zip

    这个压缩包 "sqoop-1.4.6.bin__hadoop-2.0.4-alpha.zip" 包含的是Sqoop 1.4.6版本,针对Hadoop 2.0.4-alpha版本优化的二进制发行版。 **Sqoop 的核心功能:** 1. **数据导入**:Sqoop 提供了命令行接口,可以将结构...

    sqoop-1.4.4-cdh5.0.6.tar

    `sqoop-1.4.4-cdh5.0.6.tar` 是 Cloudera Distribution 包含 Hadoop(CDH)的一个特定版本的 Sqoop 发行版。 1. **Sqoop 的核心功能**: - 数据导入:Sqoop 可以自动创建 MapReduce 任务,将数据库表的数据分片并...

    sqoop-common-1.99.7.jar

    sqoop-common-1.99.7.jar sqoop-common-1.99.7.jar sqoop-common-1.99.7.jar

    sqoop-1.4.2.bin__hadoop-2.0.0-alpha.tar

    这个压缩包 "sqoop-1.4.2.bin__hadoop-2.0.0-alpha.tar" 提供的是 Sqoop 1.4.2 版本,适用于与 Hadoop 2.0.0-alpha 版本集成。以下是对这个版本 Sqoop 的详细介绍以及相关的知识点: 1. **Sqoop 的作用**:Sqoop 是...

    sqoop-1.4.6-cdh5.5.0.tar.gz

    安装 Sqoop 时,通常我们会下载类似 "sqoop-1.4.6-cdh5.5.0.tar.gz" 的压缩包。这个文件包含了 Sqoop 源代码、库文件、配置文件等所有必要组件,用于在 CDH 集群上构建和部署 Sqoop。解压这个压缩包后,我们可以通过...

    sqoop-connector-generic-jdbc-1.99.7.jar

    sqoop-connector-generic-jdbc-1.99.7.jar sqoop-connector-generic-jdbc-1.99.7.jar

    sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

    这个压缩包 "sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz" 包含了 Sqoop 的 1.4.6 版本,它已针对 Hadoop 2.0.4-alpha 版本进行了优化。让我们深入了解一下 Sqoop 的核心功能、工作原理以及如何在 Hadoop 环境中...

    sqoop-1.4.5.bin__hadoop-2.0.4-alpha.tar

    《全面解析:Sqoop-1.4.5在Hadoop-2.0.4-alpha环境下的安装与使用》 Sqoop是一款开源的数据迁移工具,它主要用于在关系型数据库(如MySQL、Oracle等)和Hadoop之间进行数据的导入导出。在大数据处理中,Sqoop扮演...

    sqoop-1.4.7(可直接下载学习使用)附有安装配置教程!

    内容概要:Sqoop 1.4.7 安装包主要包括以下内容:Sqoop 命令行工具:用于执行数据迁移任务的客户端工具。连接器:Sqoop 支持多种数据库连接器,包括 MySQL、PostgreSQL、Oracle 等,用于连接目标数据库。元数据驱动...

    sqoop-1.4.6.bin__hadoop-2.0.4-alpha安装包

    Sqoop是一个用于在Hadoop和关系数据库或大型机之间传输数据的工具。您可以使用Sqoop将关系数据库管理系统(RDBMS)中的数据导入Hadoop分布式文件系统(HDFS),转换Hadoop MapReduce中的数据,然后将数据导出回RDBMS...

    sqoop-sqlserver-1.0.tar.gz

    这个名为 "sqoop-sqlserver-1.0.tar.gz" 的压缩包文件,显然包含了针对 SQL Server 的特定连接器,使得 Sqoop 能够更有效地将数据导入到或导出自 Microsoft SQL Server 数据库。 Sqoop 是 Hadoop 生态系统中的重要...

    sqoop-1.4.6.bin-hadoop-2.0.4-alpha版本的压缩包,直接下载到本地,解压后即可使用

    Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,...

    sqoop-1.4.6-cdh5.12.0.tar.gz

    在本例中,我们讨论的是 Sqoop 的一个特定版本——"sqoop-1.4.6-cdh5.12.0.tar.gz",它是为 Cloudera Data Hub (CDH) 5.12.0 版本设计的。确保 Sqoop 版本与 CDH 组件版本兼容至关重要,因为不同版本的 Sqoop 可能...

Global site tag (gtag.js) - Google Analytics