最近写一个MR处理数据时,遇到某一条文件乱码,需要查找改条记录的原始数据.由于文件全部保存在hdfs上面,因此需要查看该字符串在文件中的位置.
hadoop fs -text $file |fgrep "$param" --color
参数说明:
$file 文件在hdfs上路径
$param 需要查找的字段
使用shell脚本循环遍历目录时:
for file in `hadoop fs -ls /home/test/2017-08-23 |awk '{print $NF}'`
do
echo $file hadoop fs -text $file |fgrep "0001a794d86f0844" --color
done
查看文件加上分隔符
hadoop fs -text /weblogs/all_api/20180919/* | fgrep '101485402' | cat -v