• 김영찬

HDFS Commands

HDFS(Hadoop File System) 명령어 기초를 설명합니다.





// hdfs dfs 명령어 기초

  • hdfs dfs == hadoop fs

  • hdfs dfs -setrep -R 8 /pathway : /pathway 디렉토리의 replication factor를 8로 설정

// HDFS에 Linux 사용자에 대한 홈 디렉토리 생성 및 권한부여(초기 생성 - hdfs 권한으로)

  • HDFS user 생성 및권한 설정 : 초기에 Linux 로그인 계정에 대한 HDFS user 폴더와 권한이 없음

  • 초기에 Linux 사용자에 대한 hdfs 홈 디렉토리(/user/home_directory)를 만들고 권한을 주지 않으면 hdfs 명령 permission 오류

  • sudo -u hdfs hdfs dfs -mkdir /user/future // Linux future 계정에 대한 hdfs 홈 디렉토리 생성

  • sudo -u hdfs hdfs dfs -chown future /user/future // Linux future 계정에 hdfs /user/future 디렉토리 권한 부여

// HDFS superuser group(default는 super group) 확인 및 설정

  • hdfs dfs -mkdir /test // hdfs root에 test 디렉토리 생성. 권한이 없어서 Permission denied 오류 발생(superuser group 등록 필요)

  • hdfs --> configuration --> dfs.permissions.supergroup --> "supergroup" (default HDFS superuser group)

  • NameNode 호스트로 ssh 로그인(namenode에서 HDFS에 설정된 supergroup 명의 그룹을 생성하고, 계정을 추가)

  • sudo groupadd supergroup // supergroup 생성

ssh future@cdp sudo /usr/sbin/groupadd supergroup // cdp 서버에 future 계정으로 원격 접속해서 그룹 추가

  • sudo /usr/sbin/usermod -aG supergroup future // future 계정을 supergroup로 추가

ssh cdp sudo /usr/sbin/usermod -aG supergroup future // cdp server에 원격 접속해서 설졍

  • groups future // future 계정이 속한 group 표시(future wheel supergroup)

ssh cdp groups future(cdp 서버에 ssh로 접근해서 group 설정 확인)

  • hdfs dfsadmin -refreshUserToGroupsMappings // HDFS user와 group 매핑 cache 정보를 refresh

  • hdfs dfs -mkdir /test // HDFS root 디렉토리에 test 디렉토리 생성됨

// HDFS 기본 명령어(linux와 거의 유사)

  • hdf dfs

  • hdfs://nnhost:port/file

  • hdfs dfs -put <local folder/filename> <hdfs folder/filename> // hdfs 폴더가 없으면 에러

  • hdfs dfs -get <hdfs folder/filename> <local folder/filename>

  • hdfs dfs -ls <hdfs folder/filename>

  • hdfs dfs -rm -r <folder> // folder 아래까지 모두 제거

  • hdfs dfs -rm <folder/file>

  • hdfs dfs -rm input_old/* // input_old 폴더 아래의 파일 모두 삭제

  • hdfs dfs -ls / // hadoop root 아래 파일 목록 보기

  • hdfs dfs -cat /user/fred/bar.txt // hdfs의 /user/fred 폴더에 있는 bar.txt 파일 내용 보기

  • hdfs dfs -mkdir input // hdfs root에 input folder 생성

  • hdfs dfs -ls /user : /user 아래 디렉토리 목록 표시(future 홈 디렉토리 생성 확인)

  • hdfs dfs -ls 사용자 홈 디렉토리 아래의 디렉토리 목록 표시

  • hdfs dfs -mkdir weblogs // future 홈 디렉토리 아래에 weblogs 디렉토리 생성

  • hdfs dfs -put weblogs /testdir // testdir 디렉토리 아래에 local의 weblogs 폴더 복사

  • hdfs dfs -cat weblogs/2013-10-26.log // weblogs 디렉토리에 있는 파일 내용 보기

  • touch testfile1 testfile2 testfile3 // 임시 파일 생성(테스트용)

  • hdfs dfs -put testfile* /test // 파일을 hdfs test 디렉토리로 복사

  • hdfs dfs -rm /test/testfile1 // testfile1이 삭제되고, 이 파일은 휴지통 디렉토리로 들어감

  • hdfs dfs -rm -skipTrash /test/testfile2 // testfile2가 삭제됨. 휴지동으로 들어가지 않음

  • hdfs dfs -rmdir /test // test 디렉토리에 파일이 있어서 삭제안됨

  • hdfs dfs -rm -r /test // test 디렉토리의 모든 내용을 삭제함

  • hdfs dfs -expunge // future의 hdfs 휴지통 비우기

  • sudo -u hdfs hdfs dfs -mkdir /temp // hdfs 계정으로 hdfs root에 temp 디렉토리 생성

  • hdfs dfs -ls / // temp 디렉토리가 hdfs 계정과 supergroup으로 생성됨

  • sudo -u hdfs hdfs dfs -chown future /temp // temp 계정의 소유자를 hdfs에서 future로 변경

  • hdfs dfs -put weblogs/* /temp // ㅣlocal의 weblogs 디렉토리 하위 모든 내용을 hdfs /temp로 복사

  • hdfs fsck /temp // hdfs /temp 디렉토리의 HDFS 저장 통계정보 표시(블록 수 등)

  • hdfs fsck /temp -blocks -files -racks // 저장 통계와 datanode 블록 상세 정보까지 표시

  • aws s3 ls s3://datasets.elasticmapreduce/ngrams/books/ --no-sign-request // aws 명령으로 s3에서 파일 다운로드

조회수 1회댓글 0개

최근 게시물

전체 보기