Scroll indicator done
728x90

docker push  업로드

docker pull  다운로드

docker pull skunivcoe/master:master

docker pull skunivcoe/slave1:slave1

docker pull skunivcoe/slave2:slave2

master 쪽에서 slave1,2 관리, split 개념 (뒤에서 데이터 모드 라고 설명)

분산 컴퓨팅

 

#  Hadoop Ecosystem

  • Hadoop Common
  • HDFS  (hadoop distributed file system)
  • Hadoop YARN
  • Hadoop MapReduce

 

Hadoop 분산 저장 시스템

MapReduce 이를 처리하는 부분

  • 클러스터에 데이터가 저장됨
  • 각각의 클러스터에 분산시켜 저장
  • 각각의 블록이 여러번 복제됨

 

# MapReduce

  • 두개의 계층을 가짐 (Map , Reduce)
  • 자동 정렬, 분산
  • 결함 허용

 

Map >> Key 와 Value 의 페어로 이루어짐, Shuffle and Sort

# Map Reduce (ex. Word Count)


 

master, slave1, 2 동작하기
docker run -it -h master --name master -p 22:50070 skunivcoe/master:master

 

docker run -it -h slave1 --name slave1 --link master:master skunivcoe/slave1:slave1 . 2

cls : clear

-p : 포트포워딩 22번 포트로 50070번 설정 ? 

docker attach ---- : 다시 실행하고 싶을 떄

 

# master 에서 IP 추가 / 수정

$ vi /etc/hosts

:q + enter : vi 편집기 종료

:w : save

$ jps -> 하나밖에 없음

$ cd /coe/haddop

$ cd 

$ cd coe/hadoop/hadoop/hadoop-2.8.3

$ sbin/start-all.sh

$ jps

master에는 name 노드
slave 1,2 에는 data 노드가 있어야함

 

root@master:~/coe/hadoop/hadoop-2.8.3# bin/hdfs dfsadmin -report

Configured Capacity: 538980786176 (501.96 GB)
Present Capacity: 503803813888 (469.20 GB)
DFS Remaining: 503803682816 (469.20 GB)
DFS Used: 131072 (128 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0
Pending deletion blocks: 0

-------------------------------------------------
Live datanodes (2):

Name: 172.17.0.3:50010 (slave1)
Hostname: slave1
Decommission Status : Normal
Configured Capacity: 269490393088 (250.98 GB)
DFS Used: 65536 (64 KB)
Non DFS Used: 3827814400 (3.56 GB)
DFS Remaining: 251901841408 (234.60 GB)
DFS Used%: 0.00%
DFS Remaining%: 93.47%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Tue Sep 20 08:22:49 UTC 2022


Name: 172.17.0.4:50010 (slave2)
Hostname: slave2
Decommission Status : Normal
Configured Capacity: 269490393088 (250.98 GB)
DFS Used: 65536 (64 KB)
Non DFS Used: 3827814400 (3.56 GB)
DFS Remaining: 251901841408 (234.60 GB)
DFS Used%: 0.00%
DFS Remaining%: 93.47%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Tue Sep 20 08:22:49 UTC 2022

 

root@master:~/coe/hadoop/hadoop-2.8.3# bin/hdfs dfs -ls /

Found 1 items
drwxr-xr-x   - root supergroup          0 2018-02-26 10:22 /user

root@master:~/coe/hadoop/hadoop-2.8.3# bin/hdfs dfs -ls /user

Found 2 items
drwxr-xr-x   - root supergroup          0 2018-02-26 10:16 /user/input
drwxr-xr-x   - root supergroup          0 2018-02-26 10:22 /user/output2

root@master:~/coe/hadoop/hadoop-2.8.3# bin/hdfs dfs -ls /user/input/

Found 1 items
-rw-r--r--   2 root supergroup         71 2018-02-26 10:16 /user/input/word_test.txt

root@master:~/coe/hadoop/hadoop-2.8.3# bin/hdfs dfs -mkdir /user/kim
root@master:~/coe/hadoop/hadoop-2.8.3# bin/hdfs dfs -ls /user

Found 3 items
drwxr-xr-x   - root supergroup          0 2018-02-26 10:16 /user/input
drwxr-xr-x   - root supergroup          0 2022-09-20 08:34 /user/kim
drwxr-xr-x   - root supergroup          0 2018-02-26 10:22 /user/output2

 

1. 호스트 -> 하둡 컨테이너

docker cp [host 파일경로] [container name]:[container 내부 경로] (**콜론 중요)

2. 하둡 컨테이너 -> 호스트

docker cp [container name]:[container 내부 경로] [host 파일경로]

host 파일 경로 : window 파일 경로

container name : master, slave1, slave2 

# docker commit 명령어

docker commit [options] <container name> [image name[:tag name]]

 

(hdfs dfs 명령어 정리 검색하면 다 나옴)

put : 로컬 파일을 hdfs에 저장한다

hdfs dfs -put {localsrc} ... {dst}

moveToLocal : Hdfs 파일을 로컬에 저장 (get과 비슷하지만 저장 이후 hdfs 파일 삭제)

hdfs dfs -moveToLocal {-crc} {src} {dst}

 

win - lix : cp로 주고받음

lix - h : put 으로 저장, get / moveToLocal 으로 꺼내옴 (hdfs에서 보낼 수는 없음)

 

# 하둡을 정상적으로 종료하기

root@master:~/coe/hadoop/hadoop-2.8.3# sbin/stop-all.sh

This script is Deprecated. Instead use stop-dfs.sh and stop-yarn.sh
Stopping namenodes on [master]
master: stopping namenode
slave2: stopping datanode
slave1: stopping datanode
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: stopping secondarynamenode
stopping yarn daemons
stopping resourcemanager
slave2: stopping nodemanager
slave1: stopping nodemanager
slave2: nodemanager did not stop gracefully after 5 seconds: killing with kill -9
slave1: nodemanager did not stop gracefully after 5 seconds: killing with kill -9
no proxyserver to stop

# 종료 확인하기

root@master:~/coe/hadoop/hadoop-2.8.3# jps

2344 Jps

 

 

728x90