• 正确定位到sqoop导数失败原因


    1、sqoop导数时,添加额外的配置参数
    sqoop export -Dorg.apache.sqoop.export.text.dump_data_on_error=true \
    --username ${USERNAME} \
    ......#其他的配置
    -Dorg.apache.sqoop.export.text.dump_data_on_error=true

    该配置可以让你在导数出错的时候将导致错误的具体数据展示出来

    2、进入正确的log目录
    进入失败的map或者reduce任务log

    3、分析日志和HDFS文件数据


    补充:如何查看hdfs文件指定偏移量的数据以及不可见字符
    因为web界面上我们只能看到数据,但是数据的分隔符或者制表符等,是不可见的,所以我们可能需要直接打开错误的数据文件

    1、可以先将hdfs get下来,比如我们这次的错误数据在

    On input file: /user/hive/warehouse/xxxxxxxx/op_month=202108/000002_0
    hdfs dfs -get /user/hive/warehouse/xxxxxxxx/op_month=202108/000002_0

    #换成你们自己的hdfs路径
    2、使用dd命令,读取指定偏移量的数据

    dd if=000002_0 of=out.txt skip=105991165 ibs=1 obs=1 count=1024

    #解释:将000002_0中偏移量从105991165开始的数据截取1024个字节存放到out.txt


    #ibs=bytes:用于定义输入块的大小,一次读入bytes个字节,即指定一个块大小为bytes个字节。

    #obs=bytes:用于定义输出块的大小,一次输出bytes个字节,即指定一个块大小为bytes个字节。

    #bs=bytes:同时设置读入/输出的块大小,为bytes个字节。

    #skip=blocks,跳过一段以后才输入,是在备份时对if 后面的部分也就是原文件跳过多少块再开始备份;

    #seek=blocks,跳过一段以后才输出,则是在备份时对of 后面的部分也就是目标文件跳过多少块再开始写。

    #count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
    3、查看数据

    cat -A out.txt
    通过cat -A ,我们可以将一些特殊符号也显示出来

    原文链接:https://blog.csdn.net/Lvbey/article/details/119869303

  • 相关阅读:
    start internal web server in .net 2.0
    windows scripts tips
    move vs2k3 to vs2k5
    w2k telnet port change
    Webservice自动表生成TableForGen
    用C#改写Head First Design PatternsSingleTon(原创)
    使用反射创建动态模块
    使用反射将委托挂钩
    用C#改写Head First Design PatternsState(原创)
    用Xmlhttp无刷新更新DIV
  • 原文地址:https://www.cnblogs.com/ajinjinjin/p/16005948.html
Copyright © 2020-2023  润新知