正确定位到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 ,我们可以将一些特殊符号也显示出来

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值