最近项目中遇到了存储在HDFS上的数据格式不对,是由于数据中带有\r\n的字符,程序处理的时候没有考虑到这些情况。历史数据大概有一年的时间,需要把错误的数据或者重复的数据给删除了,保留正确的数据,项目中使用Pig来进行数据处理,所以我写了一个UDF的JAVA类去过滤
那些错误的数据,把错误的数据和正确的数据分别存了一份,然后写了以下脚本统计数据的Schema和条数,记录下来,以后项目可以参考。 #!/bin/sh curDir=`cd "$(dirname $0)";pwd` summary(){
files="" printf "job\ttotalQueries\tgoodQueries\tbadQueries\n" > $
while read job
do
if [ -z files ]; then
files="$job/par*"
else
files="$files $job/par*"
fi totalQueries=`hadoop fs -text $job/par* | wc -l`
goodQueries=`hadoop fs -text /user/chran/txt$job/par* |wc -l`
badQueries=`hadoop fs -text /user/chran/txt/error$job/par* | wc -l`
#distinctQueries=`hadoop fs -text $job/par* | awk -F '\a' '{ print NF }' | sort | uniq`
printf "$job\t$totalQueries\t$goodQueries\t$badQueries\n" >> $
done < $
} check(){
tempDir=$curDir/temp if [ ! -d $tempDir ]; then
mkdir -p $tempDir
fi #clean up result files
output=$tempDir/$
rm $output if ! hadoop fs -test -d $ ; then
echo "$1 in HDFS doesn't exist"
exit -
fi #list all sub folders
folderList=$tempDir/$.folderlist.temp
#hadoop fs -ls $ | awk '{ print $NF }' | uniq | sort > $folderList
hadoop fs -lsr $ | grep "/[0-9][0-9]\$" | grep "00\$" | awk '{ print $NF }' | uniq | sort > $folderList summary $folderList $output rm $folderList
}
check "/apps/risk/ars/social/raw/SOCIAL_FACEBOOK_RAW" "check_facebook.output.txt"

data audit on hadoop fs的更多相关文章

  1. 013_HDFS文件合并上传putmarge功能(类似于hadoop fs -getmerge)

    场景 合并小文件,存放到HDFS上.例如,当需要分析来自许多服务器的Apache日志时,各个日志文件可能比较小,然而Hadoop更合适处理大文件,效率会更高,此时就需要合并分散的文件.如果先将所有文件 ...

  2. hadoop fs -put上传文件失败,WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: master:8020

    hadoop fs -put上传文件失败 报错信息:(test文件夹是已经成功建好的) [root@master ~]# hadoop fs -put test1.txt /test // :: WA ...

  3. Hadoop fs 使用方法

    hdfs的基本命令 hdfs dfs -help    查看帮助 在HDFS的文件系统中,HDFS只支持绝对路径 1.-ls: 显示目录信息 hadoop fs -ls / 列出指定目录下的内容 2. ...

  4. 【转】Hadoop FS Shell命令

    FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args> 的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme ...

  5. hadoop fs 命令

    1,hadoop fs –fs [local | <file system URI>]:声明hadoop使用的文件系统,如果不声明的话,使用当前配置文件配置的,按如下顺序查找:hadoop ...

  6. hadoop fs -mkdir testdata错误 提示No such file or directory

    解决方法: hadoop fs -mkdir -p testdata

  7. Hadoop FS shell commands

    命令格式:hadoop fs -command -option args appendToFileUsage: hadoop fs -appendToFile <localsrc> ... ...

  8. 何时使用hadoop fs、hadoop dfs与hdfs dfs命令(转)

    hadoop fs:使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后 ...

  9. hadoop fs管理文件权限

    sudo addgroup Hadoop#添加一个hadoop组sudo usermod -a -G hadoop larry#将当前用户加入到hadoop组 修改hadoop目录的权限sudo ch ...

随机推荐

  1. PL/SQL-Thread creation error:存储空间不足,无法处理此命令

    PL/SQL中执行SQL语句,提示“Thread creation error:存储空间不足,无法处理此命令”.查找了解决方案,如下: 1. 单击开始,然后单击运行. 2. 键入 regedit,然后 ...

  2. HTTP长连接实现“服务器推”的技术

    HTTP长连接实现“服务器推”的技术快速入门及演示示例 在我的印象里HTTP是一种“无状态的协议”,也就是不知道以前请求的历史,无法保留上一次请求的结果.Cookie的诞生,弥补了这个不足,浏览器可以 ...

  3. 76. Minimum Window Substring

    题目: Given a string S and a string T, find the minimum window in S which will contain all the charact ...

  4. 8、SpringMVC源码分析(3):分析ModelAndView的形成过程

    首先,我们还是从DispatcherServlet.doDispatch(HttpServletRequest request, HttpServletResponse response) throw ...

  5. python小问题记录:

    numpy.chararray.flatten chararray.flatten(order='C') Return a copy of the array collapsed into one d ...

  6. Ubuntu中Eclipse安装与配置

    安装Eclipse: 第一种是通过Ubuntu自带的程序安装功能安装Eclipse,应用程序 ->Ubtuntu软件中心,搜Eclipse安装即可.第二种方法是用命令:应用程序->附件-& ...

  7. apache启动报错(98)Address already in use: make_sock: could not bind to...

    # /etc/init.d/httpd startStarting httpd: (98)Address already in use: make_sock: could not bind to ad ...

  8. bzoj4042

    比较好的树形dp,涉及到树上路径的题目,我们往往考虑对路径分类 当我们考虑以x为根的子树,有这样几类路径 1. 起点终点都在子树内 2. 一个点延伸到子树外 对于要选择另一个点在子树外的路径,要建立在 ...

  9. Linux C enum

    /**************************************************************************** * Linux C enum * * 说明: ...

  10. 【C#学习笔记】获得本机IP

    using System; using System.Net; namespace ConsoleApplication { class Program { static void Main(stri ...