41 하둡 분산 파일 시스템 명령어
ㅇ하둡이 정상적으로 운영중인지 확인하는 명령어
(base) [oracle@centos ~]$ jps
2362 Jps
ㅇ하둡을 시작시키는 명령어
(base) [oracle@centos ~]$ start-all.sh
(base) [oracle@centos ~]$ jps
2751 SecondaryNameNode
2597 DataNode
3053 Jps
2985 TaskTracker
2834 JobTracker
2446 NameNode
하둡을 시작시키고 다시 확인해보면 6개가 모두 올라온 것을 확인할 수 있음.
ㅇ하둡을 내리는 명령어
(base) [oracle@centos ~]$ stop-all.sh
stopping jobtracker
localhost: stopping tasktracker
stopping namenode
localhost: stopping datanode
localhost: stopping secondarynamenode
문제230. root로 접속해서 자동화 스크립트 8번에 하둡의 상태를 확인하는 명령어를, 9번에는 하둡을 시작시키는 명령어를 추가시키시오.
[root@centos ~]# vi a.sh
[root@centos ~]# sh a.sh
1. mariaDB 시작시키기
2. mariaDB root유저로 접속하기
3. mariaDB scott유저로 접속하기
4. jupyter notebook 실행하기(oracle)
5. 파일 검색하기
6. 파일크기 100바이트 이상인 파일들 /root/size100으로 이동시키기
7. mysql workbench 실행하기
8. 하둡 상태 확인하기(oracle)
9. 하둡 시작시키기(oracle)
10. 자동화 스크립트 종료하기
번호를 입력하세요 8
8,9번의 경우 스위치유저 오라클 했지만, command만 보여주고 다시 root로 돌아옴.
1. ls 명령어
"지정된 디렉토리의 있는 파일의 정보를 출력하는 명령어"
먼저 리눅스 os에 있는 emp.csv를 하둡 분산 파일 시스템에 올립니다.
(base) [oracle@centos ~]$ ls -l emp.csv
-rw-rw-r--. 1 oracle oracle 679 3월 16 15:14 emp.csv
(base) [oracle@centos ~]$ hadoop fs -put emp.csv /user/oracle/emp2.csv
로컬 리눅스에 있는 emp.csv를 하둡 분산 파일 시스템에 /user/oracle 밑에 emp2.csv로 올렸습니다.
하둡 내 파일정보를 확인하려면 다음의 명령어를 사용해야 함.
(base) [oracle@centos ~]$ hadoop fs -ls /user/oracle/emp2.csv
Found 1 items
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 10:20 /user/oracle/emp2.csv
문제231. 리눅스 시스템에 /home/oracle 밑에 있는 dept.csv가 있는지 확인하시오.
(base) [oracle@centos ~]$ ls -l dept.csv
-rw-rw-r--. 1 oracle oracle 102 3월 16 16:02 dept.csv
문제232. 리눅스 시스템에 있는 dept.csv를 하둡 분산 파일 시스템 /user/oracle 밑에 dept2.csv로 올리시오.
(base) [oracle@centos ~]$ hadoop fs -put dept.csv /user/oracle/dept2.csv
(base) [oracle@centos ~]$ hadoop fs -ls /user/oracle/dept2.csv
Found 1 items
-rw-r--r-- 3 oracle supergroup 102 2022-03-23 10:34 /user/oracle/dept2.csv
2. 하둡 분산 파일 시스템의 구조를 웹브라우저로 편하게 보는 방법
리눅스 시스템에 oracle 유저로 접속해서 firefox를 켜서 아래의 주소를 입력하시오.
http://localhost:50070
하둡 분산 파일 시스템 정보를 확인할 수 있음.
디렉토리를 선택하면 파일 내용까지 들여다 볼 수 있음.
3. lsr 명령어
"현재 디렉토리 뿐만 아니라 하위 디렉토리까지 조회하는 명령어"
(base) [oracle@centos ~]$ hadoop fs -lsr /
drwxr-xr-x - oracle supergroup 0 2022-03-22 16:49 /home
drwxr-xr-x - oracle supergroup 0 2022-03-22 16:49 /home/oracle
drwxr-xr-x - oracle supergroup 0 2022-03-22 16:49 /home/oracle/hadoop
drwxr-xr-x - oracle supergroup 0 2022-03-22 16:49 /home/oracle/hadoop/hadoop-1.2.1
drwxr-xr-x - oracle supergroup 0 2022-03-22 16:49 /home/oracle/hadoop/hadoop-1.2.1/hadoop-oracle
drwxr-xr-x - oracle supergroup 0 2022-03-23 09:54 /home/oracle/hadoop/hadoop-1.2.1/hadoop-oracle/mapred
drwx------ - oracle supergroup 0 2022-03-23 09:54 /home/oracle/hadoop/hadoop-1.2.1/hadoop-oracle/mapred/system
-rw------- 3 oracle supergroup 4 2022-03-23 09:54 /home/oracle/hadoop/hadoop-1.2.1/hadoop-oracle/mapred/system/jobtracker.info
drwxr-xr-x - oracle supergroup 0 2022-03-23 10:20 /user
drwxr-xr-x - oracle supergroup 0 2022-03-23 10:34 /user/oracle
-rw-r--r-- 3 oracle supergroup 102 2022-03-23 10:34 /user/oracle/dept2.csv
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 10:20 /user/oracle/emp2.csv
$ hadoop fs -lsr / : 여기서 "/"는 최상위 디렉토리 밑에 있는 모든 것을 다 보여달라~~
문제233. /user 밑에 있는 파일뿐만 아니라 하위 디렉토리까지 조회하시오.
(base) [oracle@centos ~]$ hadoop fs -lsr /user
drwxr-xr-x - oracle supergroup 0 2022-03-23 10:34 /user/oracle
-rw-r--r-- 3 oracle supergroup 102 2022-03-23 10:34 /user/oracle/dept2.csv
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 10:20 /user/oracle/emp2.csv
4. du명령어
"파일의 용량을 확인하는 명령어"
(base) [oracle@centos ~]$ hadoop fs -du
문제234. 위의 결과 중에서 dept2.csv의 정보만 보이게 하시오.
(base) [oracle@centos ~]$ hadoop fs -du | grep dept2
102 hdfs://localhost:9000/user/oracle/dept2.csv
+) 파일 찾고 싶을 때 이렇게 찾는 건 가능. 파일 경로 다 적어주긴 해야함.
(base) [oracle@centos ~]$ hadoop fs -ls /user/oracle/*.csv
-rw-r--r-- 3 oracle supergroup 102 2022-03-23 10:34 /user/oracle/dept2.csv
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 10:20 /user/oracle/emp2.csv
5. cat 명령어
"지정된 파일의 내용을 화면에 출력하는 명령어"
(base) [oracle@centos ~]$ hadoop fs -cat /user/oracle/emp2.csv
empno,ename,job,mgr,hiredate,sal,comm,deptno
7839,KING,PRESIDENT,,1981-11-17,5000,,10
7698,BLAKE,MANAGER,7839,1981-05-01,2850,,30
7782,CLARK,MANAGER,7839,1981-05-09,2450,,10
7566,JONES,MANAGER,7839,1981-04-01,2975,,20
7654,MARTIN,SALESMAN,7698,1981-09-10,1250,1400,30
7499,ALLEN,SALESMAN,7698,1981-02-11,1600,300,30
7844,TURNER,SALESMAN,7698,1981-08-21,1500,0,30
7900,JAMES,CLERK,7698,1981-12-11,950,,30
7521,WARD,SALESMAN,7698,1981-02-23,1250,500,30
7902,FORD,ANALYST,7566,1981-12-11,3000,,20
7369,SMITH,CLERK,7902,1980-12-09,800,,20
7788,SCOTT,ANALYST,7566,1982-12-22,3000,,20
7876,ADAMS,CLERK,7788,1983-01-15,1100,,20
7934,MILLER,CLERK,7782,1982-01-11,1300,,10
# 파일경로 안써도 가능해보임
(base) [oracle@centos ~]$ hadoop fs -cat emp2.csv
문제235. 하둡 분산 파일 시스템의 /user/oracle 밑에 dept2.csv의 내용을 확인하시오.
(base) [oracle@centos ~]$ hadoop fs -cat /user/oracle/dept2.csv
deptno,dname,loc
10,ACCOUNTING,NEW YORK
20,RESEARCH,DALLAS
30,SALES,CHICAGO
40,OPERATIONS,BOSTON
6. text 명령어
"지정된 파일의 내용을 화면에 출력하는 명령어"
(base) [oracle@centos ~]$ hadoop fs -text /user/oracle/emp2.csv
empno,ename,job,mgr,hiredate,sal,comm,deptno
7839,KING,PRESIDENT,,1981-11-17,5000,,10
7698,BLAKE,MANAGER,7839,1981-05-01,2850,,30
7782,CLARK,MANAGER,7839,1981-05-09,2450,,10
7566,JONES,MANAGER,7839,1981-04-01,2975,,20
7654,MARTIN,SALESMAN,7698,1981-09-10,1250,1400,30
7499,ALLEN,SALESMAN,7698,1981-02-11,1600,300,30
7844,TURNER,SALESMAN,7698,1981-08-21,1500,0,30
7900,JAMES,CLERK,7698,1981-12-11,950,,30
7521,WARD,SALESMAN,7698,1981-02-23,1250,500,30
7902,FORD,ANALYST,7566,1981-12-11,3000,,20
7369,SMITH,CLERK,7902,1980-12-09,800,,20
7788,SCOTT,ANALYST,7566,1982-12-22,3000,,20
7876,ADAMS,CLERK,7788,1983-01-15,1100,,20
7934,MILLER,CLERK,7782,1982-01-11,1300,,10
cat이랑 동일한 명령어
7. dus 명령어
"파일의 전체 합계 용량을 확인하는 명령어"
(base) [oracle@centos ~]$ hadoop fs -dus /user/oracle
hdfs://localhost:9000/user/oracle 781
하둡 파일 시스템 /user/oracle 밑에 있는 파일들의 총 크기 합이 781 바이트 입니다.
문제236. 이번에는 최상위 디렉토리 / 밑에 있는 파일들의 총 크기 합을 출력하시오.
(base) [oracle@centos ~]$ hadoop fs -dus /
hdfs://localhost:9000/ 785
+) 4바이트짜리가 무엇인지 확인하려고 lsr명령어를 쳐보니 /home 밑에 있는 파일임을 알 수 있었음.
(base) [oracle@centos ~]$ hadoop fs -lsr /
:
-rw------- 3 oracle supergroup 4 2022-03-23 09:54 /home/oracle/hadoop/hadoop-1.2.1/hadoop-oracle/mapred/system/jobtracker.info
:
8. put 명령어
"파일을 하둡 파일 시스템에 올리는 명령어"
(base) [oracle@centos ~]$ hadoop fs -put emp.csv /user/oracle/test/emp3.csv
기존에 /user/oracle 밑에 test라는 디렉토리는 없었는데, put으로 파일 올릴때 디렉토리 지정해서 넣으면 자동으로 알아서 디렉토리가 생성됨.
(base) [oracle@centos ~]$ hadoop fs -lsr /user/oracle
-rw-r--r-- 3 oracle supergroup 102 2022-03-23 10:34 /user/oracle/dept2.csv
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 10:20 /user/oracle/emp2.csv
drwxr-xr-x - oracle supergroup 0 2022-03-23 11:28 /user/oracle/test
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 11:28 /user/oracle/test/emp3.csv
test 디렉토리가 생성된 것을 확인할 수 있음.
문제237. dept.csv를 하둡 분산 파일 시스템에 /user/oracle/test/dept3.csv로 올리시오.
(base) [oracle@centos ~]$ hadoop fs -put dept.csv /user/oracle/test/dept3.csv
(base) [oracle@centos ~]$ hadoop fs -lsr /user/oracle
-rw-r--r-- 3 oracle supergroup 102 2022-03-23 10:34 /user/oracle/dept2.csv
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 10:20 /user/oracle/emp2.csv
drwxr-xr-x - oracle supergroup 0 2022-03-23 11:30 /user/oracle/test
-rw-r--r-- 3 oracle supergroup 102 2022-03-23 11:30 /user/oracle/test/dept3.csv
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 11:28 /user/oracle/test/emp3.csv
9. get 명령어
"하둡 파일 시스템에 올린 파일을 리눅스의 로컬시스템으로 내리는 명령어"
일단, 리눅스 오라클 홈디렉토리에 emp.csv 파일을 지우겠습니다.
(base) [oracle@centos ~]$ rm emp.csv
(base) [oracle@centos ~]$ ls -l emp.csv
ls: cannot access emp.csv: 그런 파일이나 디렉터리가 없습니다
하둡 시스템에서 파일을 내려받겠습니다.
(base) [oracle@centos ~]$ hadoop fs -get /user/oracle/test/emp3.csv /home/oracle/emp.csv
(base) [oracle@centos ~]$ ls -l emp.csv
-rw-rw-r--. 1 oracle oracle 679 3월 23 11:48 emp.csv
문제238. 리눅스 로컬 시스템의 /home/oracle 밑에 있는 dept.csv를 rm으로 지우시오.
(base) [oracle@centos ~]$ rm dept.csv
(base) [oracle@centos ~]$ ls -l dept.csv
ls: cannot access dept.csv: 그런 파일이나 디렉터리가 없습니다
문제239. 하둡 분산 파일 시스템의 /user/oracle/test/dept3.csv를 리눅스 로컬 시스템의 /home/oracle 밑으로 내리시오.
(base) [oracle@centos ~]$ hadoop fs -get /user/oracle/test/dept3.csv /home/oracle/dept.csv
(base) [oracle@centos ~]$ ls -l dept.csv
-rw-rw-r--. 1 oracle oracle 102 3월 23 11:52 dept.csv
10. mv 명령어
"파일을 이동하는 명령어"
(base) [oracle@centos ~]$ hadoop fs -mv /user/oracle/test/dept3.csv /user/oracle/dept.csv
(base) [oracle@centos ~]$ hadoop fs -lsr /user
drwxr-xr-x - oracle supergroup 0 2022-03-23 11:55 /user/oracle
-rw-r--r-- 3 oracle supergroup 102 2022-03-23 11:30 /user/oracle/dept.csv
-rw-r--r-- 3 oracle supergroup 102 2022-03-23 10:34 /user/oracle/dept2.csv
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 10:20 /user/oracle/emp2.csv
drwxr-xr-x - oracle supergroup 0 2022-03-23 11:55 /user/oracle/test
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 11:28 /user/oracle/test/emp3.csv
문제240. 그럼 다시 /user/oracle/dept.csv를 /user/oracle/test 밑에 dept4.csv로 옮기시오.
(base) [oracle@centos ~]$ hadoop fs -mv /user/oracle/dept.csv /user/oracle/test/dept4.csv
(base) [oracle@centos ~]$ hadoop fs -lsr /user/oracle
-rw-r--r-- 3 oracle supergroup 102 2022-03-23 10:34 /user/oracle/dept2.csv
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 10:20 /user/oracle/emp2.csv
drwxr-xr-x - oracle supergroup 0 2022-03-23 11:57 /user/oracle/test
-rw-r--r-- 3 oracle supergroup 102 2022-03-23 11:30 /user/oracle/test/dept4.csv
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 11:28 /user/oracle/test/emp3.csv
11. rm 명령어
"파일을 삭제하는 명령어"
예제. 하둡 분산파일 시스템 /user/oracle/dept2.csv를 지우시오.
(base) [oracle@centos ~]$ hadoop fs -rm /user/oracle/dept2.csv
Deleted hdfs://localhost:9000/user/oracle/dept2.csv
문제241. 하둡 분산 파일 시스템의 /user/oracle/emp2.csv를 지우시오.
(base) [oracle@centos ~]$ hadoop fs -rm /user/oracle/emp2.csv
Deleted hdfs://localhost:9000/user/oracle/emp2.csv
12. rmr 명령어
"디렉토리를 삭제하는 명령어"
예제. 하둡 분산 파일 시스템의 /user/oracle/test 디렉토리를 삭제하시오.
(base) [oracle@centos ~]$ hadoop fs -rmr /user/oracle/test
Deleted hdfs://localhost:9000/user/oracle/test
(base) [oracle@centos ~]$ hadoop fs -ls /user/oracle/test
ls: Cannot access /user/oracle/test: No such file or directory.
mkdir 명령어로 test2 디렉토리를 생성합니다.
(base) [oracle@centos ~]$ hadoop fs -mkdir /user/oracle/test2
문제242. /user/oracle/test2 디렉토리를 삭제하시오.
(base) [oracle@centos ~]$ hadoop fs -rmr /user/oracle/test2
Deleted hdfs://localhost:9000/user/oracle/test2
13. grep 명령어
"파일에서 특정 문자의 행의 데이터를 검색하는 명령어"
(base) [oracle@centos ~]$ hadoop fs -cat emp.csv | grep -i 'scott'
7788,SCOTT,ANALYST,7566,1982-12-22,3000,,20
문제243. (점심시간 문제) 하둡 분산 파일 시스템의 /user/oracle/emp.csv에서 salesman을 포함하는 행들이 모두 몇 개인지 출력하시오.
(base) [oracle@centos ~]$ hadoop fs -cat emp.csv | grep -i 'salesman' | wc -l
4
14. awk 명령어
"특정 컬럼의 데이터를 검색하는 명령어"
(base) [oracle@centos ~]$ hadoop fs -cat emp.csv | awk -F ',' '{print $2,$6}'
ename sal
KING 5000
BLAKE 2850
CLARK 2450
JONES 2975
MARTIN 1250
ALLEN 1600
TURNER 1500
JAMES 950
WARD 1250
FORD 3000
SMITH 800
SCOTT 3000
ADAMS 1100
MILLER 1300
문제244. 리눅스 로컬 시스템에 있는 emp.csv를 emp_backup.csv로 복사하시오.
(base) [oracle@centos ~]$ cp emp.csv emp_backup.csv
(base) [oracle@centos ~]$ ls -l emp_backup.csv
-rw-rw-r--. 1 oracle oracle 679 3월 23 13:45 emp_backup.csv
문제245. 리눅스 로컬 시스템의 emp.csv를 vi편집기로 열어서 맨 위에 컬럼명을 지우고 저장하시오.
(base) [oracle@centos ~]$ vi emp.csv
dd # 컬럼명 한 줄 지우기
:wq!
문제246. 컬럼명을 지운 emp.csv를 하둡 분산 파일 시스템 /user/oracle에 emp100.csv로 올리시오.
(base) [oracle@centos ~]$ hadoop fs -put emp.csv /user/oracle/emp100.csv
(base) [oracle@centos ~]$ hadoop fs -cat emp100.csv
7839,KING,PRESIDENT,,1981-11-17,5000,,10
7698,BLAKE,MANAGER,7839,1981-05-01,2850,,30
7782,CLARK,MANAGER,7839,1981-05-09,2450,,10
7566,JONES,MANAGER,7839,1981-04-01,2975,,20
7654,MARTIN,SALESMAN,7698,1981-09-10,1250,1400,30
7499,ALLEN,SALESMAN,7698,1981-02-11,1600,300,30
7844,TURNER,SALESMAN,7698,1981-08-21,1500,0,30
7900,JAMES,CLERK,7698,1981-12-11,950,,30
7521,WARD,SALESMAN,7698,1981-02-23,1250,500,30
7902,FORD,ANALYST,7566,1981-12-11,3000,,20
7369,SMITH,CLERK,7902,1980-12-09,800,,20
7788,SCOTT,ANALYST,7566,1982-12-22,3000,,20
7876,ADAMS,CLERK,7788,1983-01-15,1100,,20
7934,MILLER,CLERK,7782,1982-01-11,1300,,10
문제247. 하둡 분산 파일 시스템에 있는 emp100.csv에서 이름과 직업을 출력하시오.
(base) [oracle@centos ~]$ hadoop fs -cat emp100.csv | awk -F ',' '{print $2,$3}'
KING PRESIDENT
BLAKE MANAGER
CLARK MANAGER
JONES MANAGER
MARTIN SALESMAN
ALLEN SALESMAN
TURNER SALESMAN
JAMES CLERK
WARD SALESMAN
FORD ANALYST
SMITH CLERK
SCOTT ANALYST
ADAMS CLERK
MILLER CLERK
문제248. 하둡 분산 파일 시스템에 있는 emp100.csv에서 이름이 SCOTT인 사원의 이름과 월급을 출력하시오.
(base) [oracle@centos ~]$ hadoop fs -cat emp100.csv | awk -F ',' '$2=="SCOTT" {print $2,$6}'
SCOTT 3000
+) 하둡 분산 파일 시스템 명령어를 보기 위한 명령어
(base) [oracle@centos ~]$ hadoop fs -help
15. count 명령어
"지정된 디렉토리의 파일 갯수를 확인하는 명령어"
(base) [oracle@centos ~]$ hadoop fs -lsr /user/oracle
-rw-r--r-- 3 oracle supergroup 679 2022-03-23 12:12 /user/oracle/emp.csv
-rw-r--r-- 3 oracle supergroup 633 2022-03-23 13:49 /user/oracle/emp100.csv
(base) [oracle@centos ~]$ hadoop fs -count /user/oracle
1 2 1312 hdfs://localhost:9000/user/oracle
'Study > class note' 카테고리의 다른 글
하둡 / NoSQL 하이브 SQL 사용하기 (0) | 2022.03.24 |
---|---|
하둡 / 하이브 설치 (0) | 2022.03.23 |
하둡 / 하둡 설명, 하둡 설치 (0) | 2022.03.22 |
리눅스 / 원격으로 워크벤치 실행 (0) | 2022.03.22 |
리눅스 / 쉘스크립트2 (0) | 2022.03.22 |