• 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个。

  • 相关阅读:
    React之refs
    Ubuntu24.04下安装docker,并pull ubuntu22.04,然后编译安装vpp
    MySQL限制登陆失败次数配置
    python+vue+elementui实验室课程在线答疑系统php_java
    lararvel学习文档
    因严重 OpenSSL 漏洞,Fedora 37 推迟至 11 月中旬发布
    typora操作手册
    K8S常用kubectl命令汇总(持续更新中)
    Python 潮流周刊第 13 期(2023-07-29)
    Vue2.x - 标准化项目创建 + ESLint&Prettier设置 + VSCode插件推荐
  • 原文地址:https://blog.csdn.net/Laoddaaa/article/details/126362518