Hadoop - 특정 디렉토리에서 파일 가져오기

hadoop ls는 명령어가 d h R 밖에 없다.

Usage: hadoop fs [generic options] -ls [-d] [-h] [-R] [<path> ...]

hadoop ls 옵션 설명
-d
-h 데이터 크기 ?
-R 디렉토리 내용까지 다 보여줌

그래서 먼가 후처리를 하고 싶다면, 파이프라인을 활용해야 한다.

예를 들어, 특정 디렉토리에 최근에 만들어진 파일을 얻고 싶다면

다음과 같이 (1) 모든 파일을 출력하게 한 후, (2) 시간으로 리버스한 후, (3) 마지막 하나를 읽어오면 된다.

$ hadoop fs -ls -R /google/app-store-log/ | sort -k 6 | tail -n 1

아래 명령어를 쓰면 최근에 생성된 파일을 찾을 수 있다.

hadoop fs -ls -R /google/app-store-log/ | sort -k 6 | tail -n 1 | awk '{print $8'}

특정 디렉토리의 최신 파일을 복사하려면, 다음과 같이 하면 된다.

hdfs dfs -get `hadoop fs -ls -R /google/app-store-log/ | sort -k 6 | tail -n 1 | awk '{print $8'}` /tmp/google-spark-job.jar

hadoop fs 명령어를 더 알아보자!

./hadoop fs

Usage: hadoop fs [generic options]

[-appendToFile <localsrc> ... <dst>]

[-cat [-ignoreCrc] <src> ...]

[-checksum <src> ...]

[-chgrp [-R] GROUP PATH...]

[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]

[-chown [-R] [OWNER][:[GROUP]] PATH...]

[-copyFromLocal [-f] [-p] <localsrc> ... <dst>]

[-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]

[-count [-q] <path> ...]

[-cp [-f] [-p | -p[topax]] <src> ... <dst>]

[-createSnapshot <snapshotDir> [<snapshotName>]]

[-deleteSnapshot <snapshotDir> <snapshotName>]

[-df [-h] [<path> ...]]

[-du [-s] [-h] <path> ...]

[-expunge]

[-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>]

[-getfacl [-R] <path>]

[-getfattr [-R] {-n name | -d} [-e en] <path>]

[-getmerge [-nl] <src> <localdst>]

[-help [cmd ...]]

[-ls [-d] [-h] [-R] [<path> ...]]

[-mkdir [-p] <path> ...]

[-moveFromLocal <localsrc> ... <dst>]

[-moveToLocal <src> <localdst>]

[-mv <src> ... <dst>]

[-put [-f] [-p] <localsrc> ... <dst>]

[-renameSnapshot <snapshotDir> <oldName> <newName>]

[-rm [-f] [-r|-R] [-skipTrash] <src> ...]

[-rmdir [--ignore-fail-on-non-empty] <dir> ...]

[-setfacl [-R] [{-b|-k} {-m|-x <acl_spec>} <path>]|[--set <acl_spec> <path>]]

[-setfattr {-n name [-v value] | -x name} <path>]

[-setrep [-R] [-w] <rep> <path> ...]

[-stat [format] <path> ...]

[-tail [-f] <file>]

[-test -[defsz] <path>]

[-text [-ignoreCrc] <src> ...]

[-touchz <path> ...]

[-usage [cmd ...]]



Generic options supported are

-conf <configuration file> specify an application configuration file

-D <property=value> use value for given property

-fs <local|namenode:port> specify a namenode

-jt <local|jobtracker:port> specify a job tracker

-files <comma separated list of files> specify comma separated files to be copied to the map reduce cluster

-libjars <comma separated list of jars> specify comma separated jar files to include in the classpath.

-archives <comma separated list of archives> specify comma separated archives to be unarchived on the compute machines.

출처:

http://knight76.tistory.com/entry/hadoop-hadoop-ls-한-후-가장-늦게-만들어진-파일명-알아오기

[김용환 블로그(2004-2017)]

results matching ""

    No results matching ""