zoukankan      html  css  js  c++  java
  • 关于查看HDFS上的文件,文件目录,文件是否为空的命令总结

    今天做sqoop的增量导入操作,但是在第一次执行的时候,数据是全量的,后面数据就是按照增量的方式对数据进行导入操作。不想手动的去操作shell命令,就对

    是否是全量导入还是变量导入做了一个判断操作但是使用下面的shell命令好像不管用

    test -e study && echo "exist!" || echo "not exist!"

    最终的解决办法是将采用HDFS自己的命令去判断文件是够存在命令如下:
    首先来看一下HDFS的命令行
     hadoop fs -help

    -test -[defsz] <path> :
    Answer various questions about <path>, with result via exit status.
    -d return 0 if <path> is a directory.
    -e return 0 if <path> exists.
    -f return 0 if <path> is a file.
    -s return 0 if file <path> is greater than zero bytes in size.
    -z return 0 if file <path> is zero bytes in size, else return 1.

    这里明明白白的写着我们执行命令文件的返回值:

    从上面的输出可以看出,我们可以使用test命令来判断某个文件是否存在。如果文件存在,这个命令将返回0;反之则返回1。

    [root@VM200-12 log]# hadoop fs -test -f /user/hive/warehouse/test.db/increat_table/*
    [root@VM200-12 log]# echo $?
    0   -----文件存在则显示为0
    下面是我的代码,当全量导入之后文件夹存在,这个时候文件夹存在则进行增量导入。反之

    hadoop fs -test -d /user/hive/warehouse/test.db/increat_table if [ $? -eq 0 ] ;then echo '文件目录已经存在,执行增量导入' ./increment.sh else echo '文件目录不存在,执行全量导入操作' ./import_loan_base.sh fi

    参考内容链接如下;

    https://blog.csdn.net/b6ecl1k7bs8o/article/details/80479800

  • 相关阅读:
    poj2728 Desert King
    bzoj4289 Tax
    洛谷P4141消失之物
    Code Forces 698A Vacations
    Code Forces 543A Writing Code
    洛谷P1133 教主的花园
    poj3177 Redundant Paths
    bzoj1151 动物园
    bzoj1503 郁闷的出纳员
    bzoj1208 宠物收养所
  • 原文地址:https://www.cnblogs.com/gxgd/p/10245488.html
Copyright © 2011-2022 走看看