• Sqoop使用的一些问题


    1. Sqoop参数

    /opt/module/sqoop/bin/sqoop import \
    --connect \ 
    --username \ 
    --password \ 
    --target-dir \ 
    --delete-target-dir \ 
    --num-mappers \ 
    --fields-terminated-by \ 
    --query "$2" ' and $CONDITIONS;'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2. Sqoop底层运行的任务是什么

    Sqoop通过将导入或导出命令翻译成MapReduce程序来实现数据传输。底层运行的是只有Map阶段,没有Reduce阶段的任务,默认是4个MapTask。

    3. Sqoop数据导出的时候一次执行多长时间

    Sqoop任务5分钟-2个小时的都有。取决于数据量。

    4. Sqoop导入Null存储一致性问题

    Hive中的Null在底层是以“\N”来存储,而MySQL中的Null在底层就是Null,为了保证数据两端的一致性,转化的过程中遇到null-string,null-non-string数据都转化成指定的类型,通常指定成"\N"。在导出数据时采用–input-null-string “\N” --input-null-non-string “\N” 两个参数。导入数据时采用–null-string “\N” --null-non-string “\N”。

    5. Sqoop数据导出一致性问题

    由于 Sqoop 将导出过程分解为多个事务,因此失败的导出作业可能会导致部分数据提交到数据库。在某些情况下,这进一步导致后续作业由于插入冲突而失败,或者导致其他情况下的数据重复。您可以通过充当用于暂存导出数据的辅助表的选项指定临时表来解决此问题。暂存数据最终在单个事务中移动到目标表。–staging-table

    为了使用暂存工具,必须在运行导出作业之前创建暂存表。此表在结构上必须与目标表相同。此表在导出作业运行之前应为空,或者必须指定该选项。如果临时表包含数据并指定了该选项,则 Sqoop 将在启动导出作业之前删除所有数据。–clear-staging-table

    来源:Sqoop官网用户指南

    6. Sqoop导入数据发生数据倾斜

    split-by:按照自增主键来切分表的工作单元
    num-mappers:启动N个map来并行导入数据默认4个。

  • 相关阅读:
    c语言练习70:反转两次的数字
    Pytorch学习 day12(模型的保存和加载)
    【ASP.NET Core】MVC模型绑定:自定义InputFormatter读取CSV内容
    Docker/Linux 安装Mysql
    Android 沉浸式状态栏
    【MindSpore易点通】数据处理经验总结
    PostgreSQL 基础知识
    基于SpringBoot的城镇保障性住房管理系统
    C/C++自助攒机系统
    30分钟带你熟练性能优化的那点儿事儿(案例说明)
  • 原文地址:https://blog.csdn.net/Laoddaaa/article/details/126362518