data audit on hadoop fs

最近项目中遇到了存储在HDFS上的数据格式不对,是由于数据中带有\r\n的字符,程序处理的时候没有考虑到这些情况。历史数据大概有一年的时间,需要把错误的数据或者重复的数据给删除了,保留正确的数据,项目中使用Pig来进行数据处理,所以我写了一个UDF的JAVA类去过滤那些错误的数据,把错误的数据和正确的数据分别存了一份,然后写了以下脚本统计数据的Schema和条数,记录下来,以后项目可以参考。

#!/bin/sh

curDir=`cd "$(dirname $0)";pwd`

summary(){
        files=""

        printf "job\ttotalQueries\tgoodQueries\tbadQueries\n" > $2
        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" >> $2
        done < $1
}

check(){
        tempDir=$curDir/temp

        if [ ! -d $tempDir ]; then
                mkdir -p $tempDir
        fi

        #clean up result files
        output=$tempDir/$2
        rm $output

        if ! hadoop fs -test -d $1 ; then
                echo "$1 in HDFS doesn‘t exist"
                exit -1
        fi

        #list all sub folders
        folderList=$tempDir/$2.folderlist.temp
        #hadoop fs -ls $1 | awk ‘{ print $NF }‘ | uniq | sort > $folderList
        hadoop fs -lsr $1 | 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,布布扣,bubuko.com

时间: 2024-12-20 13:14:14

data audit on hadoop fs的相关文章

用java运行Hadoop程序报错:org.apache.hadoop.fs.LocalFileSystem cannot be cast to org.apache.

用java运行Hadoop例程报错:org.apache.hadoop.fs.LocalFileSystem cannot be cast to org.apache.所写代码如下: package com.pcitc.hadoop; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.h

解决hadoop中 bin/hadoop fs -ls ls: `.&#39;: No such file or directory问题

出现这样的问题确实很苦恼...使用的是2.7版本..一般论坛上的都是1.x的教程,搞死人 在现在的2.x版本上的使用bin/hadoop fs -ls  /就有用 应该使用绝对路径就不会有问题....mkdir也是一样的..具体原因不知,我使用相对路径会出现错误.... 解决hadoop中 bin/hadoop fs -ls ls: `.': No such file or directory问题

何时使用hadoop fs、hadoop dfs与hdfs dfs命令

hadoop fs:使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后者. 以下内容参考自stackoverflow Following are the three commands which appears same but have minute differences hadoop fs {args} hadoop dfs {args} hdfs dfs {a

执行hadoop fs -ls时出现错误RuntimeException: core-site.xml not found

由于暴力关机,Hadoop fs -ls 出现了下图问题: 问题出现的原因是下面红框框里面的东西,我当时以为从另一个节点下载一个conf.cloudera.yarn文件就能解决问题,发现不行啊,于是删掉. 从另一个节点scp过来这个文件. 解决办法: scp -r /etc/hadoop/conf.cloudera.yarn [email protected]:/etc/hadoop/conf.cloudera.yarn 问题解决了.如下图:

hadoop fs 命令

1,hadoop fs –fs [local | <file system URI>]:声明hadoop使用的文件系统,如果不声明的话,使用当前配置文件配置的,按如下顺序查找:hadoop jar里的hadoop-default.xml->$HADOOP_CONF_DIR下的hadoop-default.xml->$HADOOP_CONF_DIR下的hadoop-site.xml.使用local代表将本地文件系统作为hadoop的DFS.如果传递uri做参数,那么就是特定的文件系统

【转】Hadoop FS Shell命令

FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args> 的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme://authority/path .对 HDFS文件系统,scheme是hdfs ,对本地文件系统,scheme是file .其中scheme和 authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme.一个HDFS文件或目录比如/parent/child 可 以表示成hdfs:

Hadoop fs命令(转)

最近使用hive做一些etl工作,除了日常sql的编写,了解hadoop及hive的一些底层原理性质的东西包括调优非常有必要,一次hive调优就把原来的零散文件做了合并.首先记下hadoop常用的命令:(hadoop fs -help列出全部) 1,hadoop fs –fs [local | <file system URI>]:声明hadoop使用的文件系统,如果不声明的话,使用当前配置文件配置的,按如下顺序查找:hadoop jar里的hadoop-default.xml->$HA

运行hadoop fs -ls 命令显示本地目录问题

问题原因:是因为在hadoop配置文件中没有指定HDFS的默认路径 解决办法:有两个办法 1.使用HDFS全路径访问 hadoop fs -ls hdfs://192.168.1.1:9000/ 2.修改配置文件 vim /opt/cloudera/parcels/CDH-5.4.1-1.cdh5.4.1.p0.6/etc/hadoop/conf.empty/core-site.xml <configuration> <property> <name>fs.defaul

Hadoop:hadoop fs、hadoop dfs与hdfs dfs命令的区别

http://blog.csdn.net/pipisorry/article/details/51340838 'Hadoop DFS'和'Hadoop FS'的区别 While exploring HDFS, I came across these two syntaxes for querying HDFS: > hadoop dfs > hadoop fs why we have two different syntaxes for a common purpose 为什么会对同一个功能