*앞에 hdfs dfs을 붙혀줌으로서 local system 명령어(리눅스)와 구분한다.*
e.g. (HDFS 명령어) hdfs dfs -ls vs ls (Local 명령어)
<HDFS 디렉토리 만들기>
hdfs dfs -mkdir /user
*앞에 hdfs를 붙힌것은 리눅스 명령어가 아니라 hdfs(하둡) 명렁어를 사용한다는 의미
hdfs dfs -mkdir /user/tmp -> 위에서 만든 /user 디렉토리 안에 tmp 디렉토리 생성
hdfs dfs -mkdir -p /user/data/csv -> Local 명령어와는 다르게 HDFS에서는 디렉토리를 만들때 적어준 경로에 모든 부모 디렉토리가 존재해야 한다. 예를들어 csv디렉토리를 data 디렉토리 안에 만들때는 data가 존재하여야한다. Local에서는 자동으로 부모 디렉토리가 생성되지만 HDFS에서는 -p 를 적어줌으로서 없는 부모 디렉토리를 모두 만들 수 있다.


<HDFS 디렉토리 조회>
hdfs dfs -ls / -> hdfs에서 관리중인 디렉토리 목록
hdfs dfs -ls -R / -> (-R) 옵션을 이용하여 현 디렉토리 및 모든 하위 디렉토리의 리스트를 표시
<HDFS 파일 옮기기>
hdfs dfs -copyFromLocal '로컬파일경로' '옮기고자하는 hdfs디렉토리 경로'
-> Local 디렉토리에 있는 파일을 HDFS관리 디렉토리로 옮기는 명령어 (-copyFromLocal)
e.g. hdfs dfs -copyFromLocal sample/test.txt /user/ -> Local의 sample디렉토리의 test.txt 파일을 HDFS 디렉토리의 /user 안에 test.txt라는 이름으로 복사해온다(이름을 따로 지정 가능)
hdfs dfs -put 옮길파일(로컬) 옮길위치(hdfs) = hdfs dfs -copyFromLocal 옮길파일(로컬) 옮길위치(hdfs)
hdfs dfs -copyToLocal 'hdfs경로' '로컬경로'
-> HDFS 디렉토리에서 Local 디렉토리로 파일을 복사함
e.g. hdfs dfs -copyToLocal /user/test.txt /sample/test2.txt -> HDFS user디렉토리의 test.txt파일을 Local의 sample디렉토리 아래에 test2.txt라는 이름으로 파일을 복사한다
hdfs dfs -get 옮길파일(hdfs) 옮길위치(local) = -copyToLocal 옮길파일(hdfs) 옮길위치(local)
<HDFS 파일에 Local파일의 내용 추가(누적)>
hdfs dfs -appendToFile 로컬파일내용 hdfs파일 -> Local파일의 내용을 HDFS파일에 내용을 추가(누적) 한다
e.g. hdfs dfs -appendToFile test.txt /user/test.txt -> Local의 현 디렉토리에 있는 test.txt파일의 내용을 HDFS user디렉토리의 test.txt파일에 누적(추가)한다
hdfs dfs -getmerge 복사할파일(hdfs) 누적할파일(local) < 반대 > hdfs dfs -appendToFile
hdfs dfs -cat /user/test.txt -> /user/test.txt 파일의 내용을 표준출력
<HDFS 파일 권한 변경>
hdfs dfs -chmod (권한) (변경할 파일) -> HDFS 영역 내 디렉토리의 권한 변경
<HDFS 영역 내에서 파일 복사>
hdfs dfs -mv /user/test.txt /user/data/ -> HDFS 내에서 user/test.txt 파일을 user/data/ 안에 test.txt로 옮긴다
or
hdfs dfs -cp
hdfs dfs -moveFromLocal 옮길파일(local) 옮길위치(hdfs) - 로컬 디렉토리의 파일을 HDFS 영역의 디렉토리로 옮긴다(복사x)
<HDFS 영역 내에서 디렉토리 삭제>
hdfs dfs -rm -r
hdfs dfs -rm
hdfs dfs -rmdir
<로컬에서 파일 압축하기>
gzip 파일
<HDFS 영역에서 파일 압축하기>
hdfs dfs -gzip 파일
<HDFS 영역에서 휴지통 관련 설정 변경>
nano $HADOOP_HOME/etc/hadoop/core-site.xml -> core-site.xml 파일에 휴지통 관련 속성을 추가한다
↓
<property>
<name>fs.trash.interval</name>
<value>1440</value> <<< 쓰레기통 비우는 주기 1440(24시간)
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>120</value> <<< 쓰레기통 검사주기 120 (2시간)
</property>
hdfs dfs -expunge -> 쓰래기통 비우기
hdfs dfs -rm -skipTrash 디렉토리명 -> 디렉토리가 삭제되어 휴지통으로 가지 않고 바로 완전 삭제됨

HDFS 쓰래기통 경로 : /user/hdoop(HDFS 계정이름)/.Trash

hdfs dfs -mv (복원할 디렉토리 경로) (복원시킬 위치)
-> HDFS 쓰래기통의 디렉토리를 다시 복원하기
*결국 -mv를 통해 쓰래기통에서 다른 디렉토리로 옮겨주는 것
'Hadoop' 카테고리의 다른 글
Python에서 표준입력 받는 법(feat. Ubuntu) (0) | 2021.09.07 |
---|---|
Python HDFS 사전 세팅 (0) | 2021.09.07 |
Hadoop(하둡) 설치 및 사전 셋팅 (feat. Ubuntu) (0) | 2021.09.06 |
Ubuntu 터미널 명령어(4) (feat. 정규표현식) (0) | 2021.09.06 |
Ubuntu 터미널로 파이썬 실행 (0) | 2021.09.06 |
댓글