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에서 파일 다운로드
Yorumlar