데이터실무

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

하둡 클라이언트

데이터 저장
분산파일시스템
하둡 클라이언트
작성자
admin
작성일
2021-02-15 13:42
조회
1427

명령어 종류

하둡 클라이언트는 하둡 분산 파일 시스템으로 파일을 처리하는 도구다. 하둡 클라이언트 명령어를 살펴보면 다음과 같다.

[표 Ⅱ-1-2] 하둡 클라이언트 명령어


명령어 설명
namenode -format 하둡 분산 파일 시스템을 포맷한다.
secondarynamenode 보조 네임 노드를 실행한다.
namenode 네임 노드를 실행한다.
datanode 데이터 노드를 실행한다.
dfsadmin 하둡 분산 파일 시스템 관리자 클라이언트를 실행한다.
mradmin 하둡 맵리듀스 관리자 클라이언트를 실행한다.
fsck 파일 시스템 체크 도구를 실행한다.
fs 하둡 분산 파일 시스템 사용자 도구를 실행한다.
balancer 클러스터 밸런싱 도구를 실행한다.
Fetchdt 네임 노드에서 위임 토큰을 가져온다.
jobtracker 맵리듀스 잡트fp커(JobTracker)를 실행한다.
pipes 파이프 잡(Pipe job)들을 실행한다.
tasktracker 맵리듀스 태스크트레커(TaskTracker)를 실행한다.
historyserver 독립형 잡(Job) 히스토리 서버를 실행한다.
job 맵리듀스 잡을 제어한다.
queue 잡 큐에 대한 정보를 얻어온다.
version 하둡 버전을 출력한다.
jar <jar> 하둡 분산 파일 시스템 기반으로 jar 파일을 실행한다.
dstcp <srcurl> <desturl> 하둡 분산 파일 시스템에 있는 파일이나 폴더를 다른 하둡 분산 파일 시스템으로 전송한다. 폴더를 지정하면 자식 파일과 폴더 모두를 포함해 전송한다.
archive 하둡 분산 파일 시스템 안에서 압축 파일을 생성한다.
classpath 지정된 하둡 클래스 경로를 모두 표신한다.
daemonlog 하둡 데몬 로그를 가져오거나 보내도록 설정한다. 로그 레벨을 설정할 수 있다.
CLASSNAME 지정한 클래스 이름을 실행한다.

하둡 클라이언트는 하둡이 설치된 시스템이나 설치되지 않은 원격 시스템에서 하둡 분산 파일 시스템에 접근할 수 있게 해주는 도구다. 그래서 [표 Ⅱ-1-2] 명령을 통해 하둡 분산 파일 시스템안에 있는 파일을 처리하거나 하둡 데몬을 설정할 수 있다.


명령어 실행

하둡 클라이언트는 하둡 분산 파일 시스템으로 파일을 처리하는 도구다. 하둡 클라이언트 명령어를 살펴보면 다음과 같다.


파일 또는 폴더 조회

하둡 분산 파일 시스템 사용자 도구인 fs를 이용해 파일을 처리해 보자.

하둡 분산 파일 시스템 사용자 도구인 fs를 이용해 파일을 처리


파일 쓰기

로컬 시스템에 file.txt 파일이 존재하고 file.txt 파일을 하둡 분산 파일 시스템의 /user/hadoop/file.txt에 복사하고 싶을 때 절대 경로로 지정하지 않으면, /user/<사용자 계정>이 루트 경로가 된다. 만약 최상위 경로에 파일을 복사하고 싶다면 /file.txt로 지정하면 된다.

# 하둡 분산 파일 시스템으로 file.txt 파일을 복사한다. sh>hadoop fs -put file.txt file.txt


파일 가져오기

하둡 분산 파일 시스템에 있는 /user/hadoop/file.txt 파일을 로컬 시스템에 file2.txt 파일로 복사한다.

# 하둡 분산 파일 시스템에 있는 file.txt 파일을 로컬 시스템의 file2.txt 이름으로 복사한다. sh>hadoop fs -get file.txt file2.txt


파일 복사

cp 옵션으로 하둡 분산 파일 시스템에 있는 파일을 복사할 수 있다. 파일을 복사하면 동일한 파일이 서로 다른 이름으로 두 개가 존재하게 된다.

file.txt 파일을 file3.txt 파일 이름으로 복사한다. sh> hadoop fs -cp file.txt file3.txt


파일 삭제

하둡 분산 파일 시스템에 있는 /user/hadoop/file3.txt 파일을 삭제한다. 만약 폴더를 삭제하려면 -rmr 옵션을 사용한다.

하둡 분산 파일 시스템에 있는 file3.txt 파일을 삭제한다. sh> hadoop fs -rm file3.txt Deleted hdfs://namenode.localdomin:9000/user/hadoop/file3.txt


권한 변경

하둡 분산 파일 시스템은 유닉스 파일 시스템과 동일한 파일 권한 체계를 갖고 있다. 그래서 다음과 같이 chmod 옵션으로 접근 권한을 변경 또는 설정할 수 있다.

# 하둡 분산 파일 시스템에 있는 파일의 접근 권한을 설정한다. sh> hadoop fs -chmod 700 file.txt Found 3 items -rw------- 2 hadoop supergroup 5 2012-03-13 07:50 /user/hadoop.file.txt


소유권 변경

chown 옵션으로 file.txt 파일에 대한 소유권을 hadoop에서 user1로 변경할 수 있다.

# file.txt 파일의 소유권을 user1로 변경한다. sh> hadoop fs -chown user1 file.txt


폴더 생성

mkdir 옵션으로 하둡 분산 파일 시스템에 폴더를 생성할 수 있다. 폴더를 생성하면 파일 시스템의 총 가용 용량은 줄어들지 않는다.

# folder1 이름으로 폴더를 생성한다. sh> hadoop fs -mkdir folder1


기타

하둡 클라이언트는 매우 많은 옵션을 제공한다. 일반 유닉스 시스템의 파일 시스템과 유사한 작업을 할 수 있을 정도다. hadoop fs 명령을 이용하면, 다양한 경우에 사용하는 옵션을 확인할 수 있다.
다음은 hadoop fs 명령어로 사용하는 옵션이다.

sh> hadoop fs Usage: java FsShell [-ls <path>] [-lsr <path>] [-du <path>] [-dus <path>] [-count[-q] <path>] [-mv <src> <dst>] [-cp <src> <dst>] [-rm [-skipTrash] <path>] [-rmr [-skipTrash] <path>] [-expunge] [-put <localsrc>...<dst>] [-copyFromLocal <localsrc>...<dst>] [-moveFromLocal <localsrc>...<dst>] [-get [-ignoreCrc] [-crc] <src> <localdst>] [-getmerge <src> <localdst> [addnl]] [-cat <src>] [-text <src>] [-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>] [-moveToLocal [-crc] <src> <localdst>] [-mkdir <path>] [-setrep [-R] [-w] <rep> <path/file>] [-touchz <path>] [-test -[ezd] <path>] [-test -[ezd] <path>] [-stat [format] <path>] [-stat [format] <path>] [-stat [format] <path>] [-tail [-f] <file>] [-chmod [-R] <MODE[,MODE]...│ OCTALMODE> PATH...] [-chown [-R] [OWNER][:[GROUP]]PATH...] [-chgrp [-R] GROUP PATH...] [-help [cmd]] Gerneric 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 files to include in the classpath. -archives <comma separated list of archives> specify comma separated archives to be unarchived on the compute machines. The general command line syntax is bin/hadoop command [genericOptions] [commandOptions]

하둡은 하둡 클라이언트를 제공해 하둡 분산 파일 시스템에서 파일을 처리할 뿐만 아니라, 다양한 언어로 된 SDK를 배포하고 있다. 이를 이용하면 API로도 동일한 파일 처리 작업을 할 수 있다. 즉, 클라우드 스토리지를 손쉽게 구축할 수 있는 길을 열어 둔 것이다.