git clone https://github.com/big-data-europe/docker-hadoop.git
μΌλ‘ νλ‘μ νΈ νμΌμ κ°μ Έμ¨λ€.cd docker-hadoop
μΌλ‘ μ΄λν νdocker-compose up
μΌλ‘ λ컀μμ 볡μμ 컨ν μ΄λλ₯Ό μ€νμν¨λ€.- λ컀 μ»΄ν¬μ¦λ λ컀μμ 볡μμ 컨ν
μ΄λλ₯Ό μ€νμν€λ ν΄μ΄λ€.
docker-compose.yml
μ΄λΌλ YAML νμΌμ μ¬μ©νμ¬ μ΄ν리μΌμ΄μ μ μλΉμ€λ₯Ό ꡬμ±νλ€.docker-compose up
λͺ λ Ήμ΄λ₯Ό μ€ννμ¬ μ»΄ν¬μ¦λ₯Ό μ€νμν€κ³ μ 체 μ±μ μ€νμν¨λ€.
- λ컀 μ»΄ν¬μ¦λ λ컀μμ 볡μμ 컨ν
μ΄λλ₯Ό μ€νμν€λ ν΄μ΄λ€.
docker container ls
λ‘ μ»¨ν μ΄λλ€μ νμΈνλ€.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
b9fa2d4c7eb4 bde2020/hadoop-historyserver:2.0.0-hadoop3.2.1-java8 "/entrypoint.sh /runβ¦" 13 minutes ago Up 12 minutes (healthy) 8188/tcp
historyserver
a9fbc41e1f45 bde2020/hadoop-resourcemanager:2.0.0-hadoop3.2.1-java8 "/entrypoint.sh /runβ¦" 13 minutes ago Up 12 minutes (healthy) 8088/tcp
resourcemanager
9aee63cbdeb4 bde2020/hadoop-namenode:2.0.0-hadoop3.2.1-java8 "/entrypoint.sh /runβ¦" 13 minutes ago Up 12 minutes (healthy) 0.0.0.0:9000->9000/tcp, 0.0.0.0:9870->9870/tcp namenode
ea79103308f0 bde2020/hadoop-nodemanager:2.0.0-hadoop3.2.1-java8 "/entrypoint.sh /runβ¦" 13 minutes ago Up 12 minutes (healthy) 8042/tcp
nodemanager
0eee7d8613ca bde2020/hadoop-datanode:2.0.0-hadoop3.2.1-java8 "/entrypoint.sh /runβ¦" 13 minutes ago Up 12 minutes (healthy) 9864/tcp
datanode
- namenode(0.0.0.0:9000->9000, 0.0.0.0:9870->9870), datanode(9864), nodemanager(8042), resourcemanager(8088), historyserver(8188)λ₯Ό νμΈν μ μλ€.
docker exec -it namenode /bin/bash
λ‘ λ€μλ Έλμ λ€μ΄κ°λ€.docker exec
λ containerμ νΉμ λͺ λ Ήμ μ€νμν€λΌλ λͺ λ Ήμ΄κ³ , μ΄λ μ€νμν¬ λͺ λ Ήμ΄ /bin/bashμ΄λ€.-it
λ STDIN νμ€ μ μΆλ ₯μ μ΄κ³ κ°μ tty (pseudo-TTY) λ₯Ό ν΅ν΄ μ μνκ² λ€λ μλ―Έμ΄λ€.- λ€μλ
Έλ 컨ν
μ΄λμ μ μ μ±κ³΅:
root@9aee63cbdeb4:/#
hdfs dfs -ls /
λͺ λ Ήμ΄λ₯Ό μ¬μ©νμ¬ λλ ν 리λ₯Ό νμΈνλ€.- νλ‘ νμΌ μμ€ν
μμλ
hdfs dfs [μΌλ°μ μΈ μ΅μ ] [컀맨λ μ΅μ ]
μΌλ‘ λͺ λ Ήμ΄λ₯Ό λ΄λ¦°λ€.- μμ) λ‘컬 νμΌμ hdfsμ μ μ₯νλ€:
-appendToFile
, ν΄λΉ νμΌμ κ·Έλ£Ή κΆνμ λ³κ²½νλ€:-chmod
, hdfsμ νμΌμ λ‘컬 λλ ν 리μ λ€μ΄λ‘λνλ€:-copyToLocal
, hdfs λ΄λΆμμ νμΌμ 볡μ¬νκ³ λΆμ¬λ£κΈ° νλ€:-cp
λ±
- μμ) λ‘컬 νμΌμ hdfsμ μ μ₯νλ€:
- νλ‘ νμΌ μμ€ν
μμλ
hdfs dfs -mkdir -p /user/root
λ‘ λλ ν 리λ₯Ό μμ±νλ€.exit
λ‘ μ μμ μ’ λ£νλ€.
ipconfig
λ‘ μ΄λλ· μ΄λν°(WSL)μ ipv4λ₯Ό νμΈνλ€.- μΉ λΈλΌμ°μ λ‘ ν΄λΉ ipμ :9870 ν¬νΈλ‘ μ μνλ€.
- λ€μκ³Ό κ°μ νλ©΄μ΄ λμ€λ©΄ μ±κ³΅μ μΌλ‘ μ μν κ²μ΄λ€.
wget https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-mapreduce-examples/2.7.1/hadoop-mapreduce-examples-2.7.1-sources.jar
λ‘ νμΌ λ€μ΄λ‘λ(리λ μ€)docker cp hadoop-mapreduce-examples-2.7.1-sources.jar namenode:/tmp/
λ‘ λ‘컬μμ 컨ν μ΄λλ‘ νμΌμ 볡μ νλ€.- ν
μ€νΈμ μ¬μ©ν
input1.txt
λ₯Ό λ§λ λ€docker cp input1.txt namenode:/tmp/
λ‘ λ³΅μ νλ€.
docker exec -it namenode /bin/bash
λ‘ λ€μ λ€μλ Έλ 컨ν μ΄λμ λͺ λ Ήμ΄λ₯Ό μννλ€.cd /tmp/
λ‘ μ΄λ ν,cat input1.txt
λ‘ νμΈνλ©΄ ν΄λΉ νμΌμ΄ 볡μ λ κ²μ νμΈν μ μλ€.- input1.txt νμΌμ hdfsλ‘ μ
λ‘λ νκΈ° μν΄
hdfs dfs -mkdir /user/root/input
λͺ λ Ήμ΄λ‘ hdfsμ λλ ν 리λ₯Ό λ§λ λ€. hdfs dfs -put input1.txt /user/root/input/
λ‘ input1.txt νμΌμ hdfsμ μ λ‘λ νλ€.- μμ
hdfs dfs -cat /user/root/input/input1.txt
λ‘ νμΈν μ μλ€.
- hadoop jar 컀맨λλ‘ λ§΅λ¦¬λμ€ jar νμΌμ μ€ννκ³ ν΄λμ€ νμΌμ λΆλ¬μ¨λ€. λ§λ€μ΄ λμ input λλ ν 리λ₯Ό μ¬μ©νκ³ output λλ ν 리λ₯Ό μμ±νλ€. :
hadoop jar hadoop-mapreduce-examples-2.7.1-sources.jar org.apache.hadoop.examples.WordCount input output
- λ€μκ³Ό κ°μ λͺ λ Ήμ΄κ° μΆλ ₯λλ©΄ μ±κ³΅μ μΌλ‘ 맡리λμ€ μμ μ μ€νν κ²μ΄λ€.
2021-10-11 12:01:05,955 INFO client.RMProxy: Connecting to ResourceManager at resourcemanager/172.18.0.3:8032
2021-10-11 12:01:06,091 INFO client.AHSProxy: Connecting to Application History server at historyserver/172.18.0.6:10200
2021-10-11 12:01:06,242 INFO mapreduce.JobResourceUploader: Disabling Erasure Coding for path: /tmp/hadoop-yarn/staging/root/.staging/job_1633947212148_0001
2021-10-11 12:01:06,321 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-10-11 12:01:06,412 INFO input.FileInputFormat: Total input files to process : 1
2021-10-11 12:01:06,434 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-10-11 12:01:06,451 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-10-11 12:01:06,458 INFO mapreduce.JobSubmitter: number of splits:1
2021-10-11 12:01:06,543 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
2021-10-11 12:01:06,556 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1633947212148_0001
2021-10-11 12:01:06,556 INFO mapreduce.JobSubmitter: Executing with tokens: []
2021-10-11 12:01:06,698 INFO conf.Configuration: resource-types.xml not found
2021-10-11 12:01:06,698 INFO resource.ResourceUtils: Unable to find 'resource-types.xml'.
2021-10-11 12:01:07,094 INFO impl.YarnClientImpl: Submitted application application_1633947212148_0001
2021-10-11 12:01:07,127 INFO mapreduce.Job: The url to track the job: http://resourcemanager:8088/proxy/application_1633947212148_0001/
2021-10-11 12:01:07,127 INFO mapreduce.Job: Running job: job_1633947212148_0001
2021-10-11 12:01:13,200 INFO mapreduce.Job: Job job_1633947212148_0001 running in uber mode : false
2021-10-11 12:01:13,201 INFO mapreduce.Job: map 0% reduce 0%
2021-10-11 12:01:18,246 INFO mapreduce.Job: map 100% reduce 0%
2021-10-11 12:01:22,279 INFO mapreduce.Job: map 100% reduce 100%
2021-10-11 12:01:22,292 INFO mapreduce.Job: Job job_1633947212148_0001 completed successfully
2021-10-11 12:01:22,361 INFO mapreduce.Job: Counters: 54
File System Counters
FILE: Number of bytes read=100
FILE: Number of bytes written=458745
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
HDFS: Number of bytes read=190
HDFS: Number of bytes written=76
HDFS: Number of read operations=8
HDFS: Number of large read operations=0
HDFS: Number of write operations=2
HDFS: Number of bytes read erasure-coded=0
Job Counters
Launched map tasks=1
Launched reduce tasks=1
Rack-local map tasks=1
Total time spent by all maps in occupied slots (ms)=6436
Total time spent by all reduces in occupied slots (ms)=13056
Total time spent by all map tasks (ms)=1609
Total time spent by all reduce tasks (ms)=1632
Total vcore-milliseconds taken by all map tasks=1609
Total vcore-milliseconds taken by all reduce tasks=1632
Total megabyte-milliseconds taken by all map tasks=6590464
Total megabyte-milliseconds taken by all reduce tasks=13369344
Map-Reduce Framework
Map input records=3
Map output records=13
Map output bytes=128
Map output materialized bytes=92
Input split bytes=112
Combine input records=13
Combine output records=10
Reduce input groups=10
Reduce shuffle bytes=92
Reduce input records=10
Reduce output records=10
Spilled Records=20
Shuffled Maps =1
Failed Shuffles=0
Merged Map outputs=1
GC time elapsed (ms)=71
CPU time spent (ms)=720
Physical memory (bytes) snapshot=548495360
Virtual memory (bytes) snapshot=13576130560
Total committed heap usage (bytes)=489684992
Peak Map Physical memory (bytes)=318685184
Peak Map Virtual memory (bytes)=5113307136
Peak Reduce Physical memory (bytes)=229810176
Peak Reduce Virtual memory (bytes)=8462823424
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=78
File Output Format Counters
Bytes Written=76
- exitλ‘ λ€μλ Έλ 컨ν μ΄λμμ μ μμ μ’ λ£νλ€.
docker-compose down
μΌλ‘ λͺ¨λ 컨ν μ΄λλ₯Ό μ’ λ£ν μ μλ€.
[+] Running 6/6
- Container historyserver Removed 11.6s
- Container namenode Removed 12.2s
- Container datanode Removed 12.1s
- Container resourcemanager Removed 11.9s
- Container nodemanager Removed 11.6s
- Network docker-hadoop_default Removed 0.6s
docker container ls
λ‘ νμΈν΄λ³΄λ©΄ λͺ¨λ 컨ν μ΄λκ° μ’ λ£λμλ€.
- λ컀 컨ν μ΄λμ μ°μ¬μ§ λ°μ΄ν°λ κΈ°λ³Έμ μΌλ‘ 컨ν μ΄λκ° μμ λ λ μ¬λΌμ§κ² λλ€. λ°λΌμ 컨ν μ΄λμ μλͺ μ£ΌκΈ°μ κ΄λ ¨μμ΄ λ°μ΄ν°λ₯Ό μμμ μΌλ‘ μ μ₯νκ³ , μ¬λ¬ κ°μ 컨ν μ΄λκ° κ³΅μ ν μ μ₯ 곡κ°μ΄ νμνκ² λλ€.
- λ컀λ μ΄λ₯Ό μν΄ 1. λ³Όλ₯¨κ³Ό 2. λ°μΈλ λ§μ΄νΈλ₯Ό μ 곡νλ€. λ³Όλ₯¨κ³Ό λ°μΈλ λ§μ΄νΈμ κ°μ₯ ν° μ°¨μ΄μ μ λμ»€κ° ν΄λΉ λ§μ΄νΈ ν¬μΈνΈλ₯Ό κ΄λ¦¬ν΄μ£Όλμ§ μν΄μ£Όλμ§μ μ°¨μ΄μ΄λ€. λ³Όλ₯¨μ μ¬μ©ν λλ κ°λ°μκ° μ§μ λ³Όλ₯¨μ μμ±νκ±°λ μμ ν΄μΌνμ§λ§, ν΄λΉ λ³Όλ₯¨μ λ컀 μμμ κ΄λ¦¬κ° λλ μ΄μ μ΄ μλ€.
docker pull nginx
λ‘ nginx μ΄λ―Έμ§λ₯Ό λ€μ΄ λ°λλ€.cd bind-mount
λ‘ μ΄λνλ€.- 컨ν
μ΄λλ‘ λ§μ΄νΈ νκΈ° μνμ¬ νΈμ€νΈμ
mkdir -p /tmp/nginx/html
λͺ λ Ήμ΄λ‘ λλ ν 리λ₯Ό λ§λ λ€. docker run -t -d -P -v /tmp/nginx/html:/usr/share/nginx/html --name nginxcontainer nginx:latest
-d
λ detachable λͺ¨λμμ μ€νμ μλ―Ένλ€. 컨ν μ΄λμκ° λ°±κ·ΈλΌμ΄λμμ μ€νλλ©° μ€ν κ²°κ³Όλ‘ μ»¨ν μ΄λ IDλ§μ μΆλ ₯νλ€. ν°λ―Έλμμ λΉ μ Έλμλ ν΄λΉ 컨ν μ΄λκ° μ’ λ£λμ§ μλλ€.-it
λ 컨ν μ΄λλ₯Ό μ’ λ£νμ§ μμ μ±λ‘ ν°λ―Έλμ μ λ ₯μ κ³μν΄μ 컨ν μ΄λλ‘ μ λ¬νκΈ° μν΄μ μ¬μ©νλ€.--name
μ΅μ μΌλ‘ 컨ν μ΄λμ μ΄λ¦μ λΆμ¬νλ€.-p
μ΅μ μΌλ‘ νΈμ€νΈμ 컨ν μ΄λ κ°μ ν¬νΈ λ°°ν¬/λ°μΈλλ₯Ό νλ€.-v
μ΅μ μ νΈμ€νΈμ 컨ν μ΄λ κ°μ λ³Όλ₯¨μ μ€μ νλ€. νΈμ€νΈ μ»΄ν¨ν° νμΌ μμ€ν μ νΉμ κ²°λ‘λ₯Ό 컨ν μ΄λ νμΌ μμ€ν μ νΉμ κ²½λ‘λ‘ λ§μ΄νΈ νλ€.
docker container ls
λ‘ νμΈνλ€.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4fe26cbad64c nginx:latest "/docker-entrypoint.β¦" 16 seconds ago Up 15 seconds 0.0.0.0:49153->80/tcp nginxcontainer
ipconfig
λ‘ ipμ£Όμλ₯Ό νμΈνκ³ μμ νμΈν ν¬νΈ λλ²λ₯Ό λν΄ μΉμΌλ‘ μ μν΄λ³΄λ©΄ μμ§μ 403 Forbidden νλ©΄μ΄ λμ¨λ€. μμ§ μ»¨ν μ΄λμ html νμΌμ΄ μμΌλ―λ‘ λΉμ°ν κ²°κ³Όμ΄λ€.- index.html νμΌμ
/tmp/nginx/html
μ λ§λ€κ³ μμ νλ©΄ ν΄λΉ νμΌμ΄ μ°λλ κ²μ νμΈν μ μλ€. docker inspect 4fe26cbad64c
λ‘ "Mounts"μ μ΄λ―Έμ§λ₯Ό νμΈν μ μλ€.
mkdir docker-hive
λ‘ μμ±cd docker-hive
λ‘ μ΄λ νgit clone https://github.com/big-data-europe/docker-hive.git
λ‘ ν΄λΉ νμΌ λ€μ΄λ‘λνλ€.ls
λ‘docker-compose.yml
νμΌ λ±μ νμΈνλ©΄ μ¬λ¬ μλΉμ€(namenode, datanode, hive-server λ±)μ λμλλ 컨ν μ΄λλ€μ νμΈν μ μλ€.docker-compose up -d
λ‘ μ΄λ―Έμ§λ€μ λ€μ΄λ‘λνκ³ μ»¨ν μ΄λλ€μ λ€μ΄λ‘λ νλ€.docker container ls
λ‘ λͺ¨λ μ λκ³ λ¬λλλ κ²μ νμΈνλ€.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
2a90c7220b94 bde2020/hadoop-nodemanager:2.0.0-hadoop3.2.1-java8 "/entrypoint.sh /runβ¦" About a minute ago Up About a minute (healthy) 8042/tcp
nodemanager
470340b10ef9 bde2020/hadoop-historyserver:2.0.0-hadoop3.2.1-java8 "/entrypoint.sh /runβ¦" About a minute ago Up About a minute (healthy) 8188/tcp
historyserver
43c519dca253 bde2020/hadoop-resourcemanager:2.0.0-hadoop3.2.1-java8 "/entrypoint.sh /runβ¦" About a minute ago Up 41 seconds (healthy) 8088/tcp
resourcemanager
4d4c2b768c85 bde2020/hadoop-namenode:2.0.0-hadoop3.2.1-java8 "/entrypoint.sh /runβ¦" About a minute ago Up About a minute (healthy) 0.0.0.0:9000->9000/tcp, 0.0.0.0:9870->9870/tcp namenode
addd9382864c bde2020/hadoop-datanode:2.0.0-hadoop3.2.1-java8 "/entrypoint.sh /runβ¦" About a minute ago Up About a minute (healthy) 9864/tcp
datanode
docker-compose exec hive-server bash
λ‘ νμ΄λΈ μλ²μ 컨ν μ΄λμ μ μνλ€./opt/hive/beeline -u jdbc:hive2://localhost:10000
λͺ λ Ήμ΄λ‘ dbλ₯Ό μ‘°μνκΈ° μμνλ€.show databases ;
λ‘ λ³΄λ©΄ dbκ° μμΌλ―λ‘create database training ;
λ‘ λ§λ€κ³use training ;
λ‘ dbλ₯Ό λ§λ λ€μcreate table fruits (name string, price int) ;
λ‘ ν μ΄λΈμ λ§λ λ€.show tables;
μdescribe fruits ;
λ‘ νμΈνλ€.describe formatted fruits ;
λͺ λ Ήμ΄λ‘ λ°μ΄ν°μ μμΉλ₯Ό νμ ν μ μλ€:
Location: hdfs://namenode:8020/user/hive/warehouse/training.db/fruits
!quit
λͺ λ Ήμ΄λ‘ hiveλ₯Ό μ’ λ£νκ³exit
λ‘ μ»¨ν μ΄λλ‘ λΆν° λμ¨λ€.docker compose down
μΌλ‘ 컨ν μ΄λλ₯Ό μ’ λ£νλ€.
- κ°κΈ° λ€λ₯Έ ν¬νΈλ‘ 3κ°μ μ£Όν€νΌμ μΉ΄νμΉ΄ μλΉμ€λ₯Ό λμμν€λ docker-compose.yml νμΌμ μμ±νλ€.
- λ컀νλΈμ confluentinc/cp-kafka μ΄λ―Έμ§λ₯Ό μ¬μ©νλ€.
docker-compose up -d
λͺ λ Ήμ΄λ‘ detachable λͺ¨λλ‘ μ€ννλ€.docker container ls
λ‘ νμΈν μ μλ€.telnet localhost 12181
,telnet localhost 22181
,telnet localhost 32181
,telnet localhost 19092
docker-compose down
μΌλ‘ μ’ λ£νλ€.
- μ»΄ν¨ν° μ¬λ¬ λλ₯Ό ν΄λ¬μ€ν°ννκ³ , ν° ν¬κΈ°μ λ°μ΄ν°λ₯Ό ν΄λ¬μ€ν°μμ λ³λ ¬λ‘ λμμ μ²λ¦¬νμ¬ μ²λ¦¬ μλλ₯Ό λμ΄λ κ²μ λͺ©μ μΌλ‘ νλ λΆμ°μ²λ¦¬λ₯Ό μν μ€νμμ€ νλ μμν¬
- Common: λ€λ₯Έ λͺ¨λμ μ§μνκΈ° μν κ³΅ν΅ μ»΄ν¬λνΈ λͺ¨λ
- HDFS: μ¬λ¬κ°μ μλ²λ₯Ό νλμ μλ²μ²λΌ λ¬Άμ΄μ λ°μ΄ν°λ₯Ό λΆμ° μ μ₯νλ λͺ¨λ
- YARN: ν΄λ¬μ€ν° μμ κ΄λ¦¬ λ° μ€μΌμ€λ§ λ΄λΉ
- Mapreduce: λΆμ° μ μ₯λ λ°μ΄ν°λ₯Ό λΆμ° μ²λ¦¬νλ λͺ¨λ
- Ozone: μ€λΈμ νΈ μ μ₯μ
- μ₯μ :
- μμ€ν μ μ€λ¨νμ§ μκ³ μ₯λΉμ μΆκ°κ° μ©μ΄νλ€
- μΌλΆ μ₯λΉμ μ₯μ κ° λ°μνλλΌλ μ 체 μμ€ν μ¬μ©μ±μ μν₯μ΄ μ λ€
- μ λ ΄ν κ΅¬μΆ λΉμ©
- λ¨μ :
- HDFSμ μ μ₯λ λ°μ΄ν°λ₯Ό λ³κ²½ λΆκ°
- μ€μκ° λ°μ΄ν° λΆμκ³Ό κ°μ΄ μ μν μ²λ¦¬ μμ μ λΆμ ν©
- v1:
- HDFSλ‘ λΆμ° μ μ₯: λ€μλ Έλ, λ°μ΄ν° λ Έλ
- MapReduceλ‘ λ³λ ¬ μ²λ¦¬: μ‘ νΈλ컀, ν μ€νΈ νΈλ컀
- v2:
- YARN λμ νμ¬ μ‘ νΈλ컀μ λ³λͺ© νμ μ κ±°. μ‘ νΈλ컀μ κΈ°λ₯μ μμ κ΄λ¦¬, λΌμ΄ν μ¬μ΄ν΄ κ΄λ¦¬, μμ μ μ²λ¦¬λ‘ λΆλ¦¬.
- μμ κ΄λ¦¬μ: 리μμ€ λ§€λμ μ λ Έλ 맀λμ
- λΌμ΄ν μ¬μ΄ν΄ κ΄λ¦¬: μ ν리μΌμ΄μ λ§μ€ν°
- μμ μ μ²λ¦¬: 컨ν μ΄λ
- v3:
- ν¨λ¦¬ν° λΈλ‘μ μ΄μ©ν μ΄λ μ΄μ Έ μ½λ© λμ νμ¬ HDFS λ°μ΄ν° μ μ₯μ ν¨μ¨μ± μ¦κ°
- 2κ° μ΄μμ λ€μ λ Έλ μ§μ
- μλ° 8 μ§μ.
- λΈλ‘ λ¨μ μ μ₯
- λΈλ‘ 볡μ λ₯Ό μ΄μ©ν μ₯μ 볡ꡬ
- μ½κΈ° μ€μ¬, νμΌμ μμ μ μ§μνμ§ μλλ€.
- λ°μ΄ν° μ§μμ± μ΄μ©.
- λ€μλ Έλμ λ°μ΄ν°λ Έλλ‘ κ΅¬μ±
-
λ©νλ°μ΄ν° κ΄λ¦¬
- νμΌμ΄λ¦, νμΌν¬κΈ°, νμΌμμ±μκ°, μ κ·Ό κΆν, μμΉ λ±
- dfs.name.dirμ 보κ΄
- μμ μ¬νμ λ€μλ Έλμ λ©λͺ¨λ¦¬μ λ°λ‘ μ μ©, Edist νμΌμ μ£ΌκΈ°μ μ μ₯
- Fsimage νμΌ: λ€μμ€νμ΄μ€μ λΈλ‘ μ 보
- Edits νμΌ: νμΌμ μμ±, μμ μ λν νΈλμμ λ‘κ·Έ
-
λ°μ΄ν° λ Έλ κ΄λ¦¬
- 3μ΄ μ£ΌκΈ°μ ννΈλΉνΈ, 6μκ° μ£ΌκΈ°μ λΈλ‘ 리ν¬νΈλ₯Ό μ΄μ©νμ¬ κ΄λ¦¬
- ννΈλΉνΈκ° λμ°©νμ§ μμΌλ©΄ λ€μλ Έλλ λ°μ΄ν°λ Έλκ° λμ νμ§ μλ κ²μΌλ‘ κ°μ£Όνκ³ λμ΄μ IOκ° λ°μνμ§ μλλ‘ μ‘°μΉνλ€.
- λΈλ‘ 리ν¬νΈλ‘ μ μ₯λ νμΌμ΄ μ΄λ€ λΈλ‘μ΄κ³ μ΄λ μ μ₯λμ΄ μλμ§μ λν μ΅μ μ 보 μ μ§.
-
ꡬλ κ³Όμ
- Fsimageλ₯Ό μ½μ΄ λ©λͺ¨λ¦¬μ μ μ¬
- Edits νμΌλ‘ λ³κ²½ λ΄μ λ°μ
- νμ¬ λ©λͺ¨λ¦¬ μνλ₯Ό μ€λ μ·μΌλ‘ Fsimage μμ±
- λ°μ΄ν° λ Έλλ‘λΆν° λΈλ‘ 리ν¬νΈ μμ νμ¬ λ§€ν
- μλΉμ€ μμ
- λ€μλ Έλμ νμΌμ΄ 보κ΄λ λΈλ‘ μμΉ μμ²νκ³ λ°ν
- κ° λ°μ΄ν° λ Έλμ νμΌ λΈλ‘ μμ²
- λΈλ‘ κΉ¨μ Έ μμΌλ©΄ ν΅μ§νκ³ λ€λ₯Έ λΈλ‘ νμΈ
- νμ±/λΉνμ± μν
- ννΈλΉνΈλ₯Ό μ£ΌκΈ°μ μΌλ‘ λ°λ μνλ©΄ νμ±
- μ΄μ μν
- normal, decommissioned, in_maintenance
- 맡리λμ€λ₯Ό μ²λ¦¬ν λ νμ¬ λ Έλμ μ μ₯λμ΄ μλ λΈλ‘μ μ΄μ©νλ κ².
- λ°μ΄ν° λ Έλμ μ μ₯λ λ°μ΄ν° μ€ μμ£Ό μ½λ λΈλ‘μ λΈλ‘ μΊμλΌλ λ°μ΄ν°λ Έλμ λ©λͺ¨λ¦¬μ λͺ μμ μΌλ‘ μΊμ±νλ κ².
- Fsimageμ Edits νμΌμ μ£ΌκΈ°μ μΌλ‘ λ¨Έμ§νμ¬ μ΅μ λΈλ‘μ μνλ‘ νμΌμ μμ±νλ€.
- λλ ν 리(λ€μμ€νμ΄μ€) λ¨μλ‘ λ€μλ Έλλ₯Ό λ±λ‘νμ¬ μ¬μ©νλ κ².
- HDFS κ³ κ°μ©μ±μ μ΄μ€νλ λλμ μλ²μΈ μ‘ν°λΈ λ€μλ Έλμ μ€ν λ°μ΄ λ€μλ Έλλ‘ μ§μνλ€.
- ννΈλΉνΈλ₯Ό λͺ¨λ λ°μμ λμΌν λ©νλ°μ΄ν°λ₯Ό μ μ§νκ³ , 곡μ μ€ν 리μ§λ₯Ό μ΄μ©νμ¬ μλνΈ νμΌμ 곡μ νλ€.
- μ€ν λ°μ΄ λ€μλ Έλλ μ‘ν°λΈ λ€μλ Έλμ λμΌν λ©νλ°μ΄ν° μ 보λ₯Ό μ μ§νλ€κ°, μ‘ν°λΈ λ€μλ Έλμ λ¬Έμ κ° λ°μνλ©΄ μ€ν λ°μ΄ λ€μλ Έλκ° μ‘ν°λΈ λ€μλ Έλλ‘ λμ
- μ£Όν€νΌλ₯Ό μ΄μ©νμ¬ μ₯μ λ°μμ μλμΌλ‘ λ³κ²½λ μ μλλ‘ νλ€.
- μ€ν λ°μ΄ λ€μλ Έλλ μΈμ»¨λ리 λ€μλ Έλμ μν μ λμΌνκ² μννλ―λ‘, HDFS κ³ κ°μ©μ± λͺ¨λλ‘ μ€μ νμμ λλ μΈμ»¨λ리 λ€μλ Έλλ₯Ό μ€ννμ§ μμλ λκ³ μ€ννλ©΄ μ€λ₯κ° λ°μνλ€.
- 컀λ½νΈ
- λͺ¨λ 볡μ λΈλ‘μ λ¬Έμ κ° μ겨μ 볡ꡬνμ§ λͺ»νλ μν
- 컀λ½νΈ μνμ νμΌλ€μ μμ νκ³ μλ³Έ νμΌμ λ€μ HDFSμ μ¬λ €μ£Όμ΄μΌ νλ€
fsck
λ₯Ό μ΄μ©νμ¬ μνλ₯Ό 체ν¬νλ€
- 볡μ κ°μ λΆμ‘±
- κ°λ¨ν λ¨μ μμ μ λ°λ³΅νμ¬ μ²λ¦¬ν λ μ¬μ©νλ νλ‘κ·Έλλ° λͺ¨λΈ. λ¨μ μμ μ μ²λ¦¬νλ 맡과, λͺ¨μμ μ§κ³νλ 리λμ€ λ¨κ³λ‘ ꡬμ±.
- μ€ν μ€ μ€λ₯κ° λ°μνλ©΄ μ€μ λ νμλ§νΌ μλμΌλ‘ λ°λ³΅λλ€. λ°λ³΅ νμλ μ€λ₯κ° λ°μνλ©΄ μμ μ μ’ λ£νλ€.
- 맡 μμ
- ν° λ°μ΄ν°λ₯Ό νλμ λ Έλμμ μ²λ¦¬νμ§ μκ³ λΆν νμ¬ λμμ λ³λ ¬ μ²λ¦¬νμ¬ μμ μκ°μ λ¨μΆνλ€.
- 맡 μμ μ HDFSμ μ λ ₯ λ°μ΄ν°κ° μλ λ Έλμμ μ€νν λ, ν΄λ¬μ€ν°μ λ€νΈμν¬ λμμ μ¬μ©νμ§ μκ³ μ²λ¦¬νκΈ° λλ¬Έμ κ°μ₯ λΉ λ₯΄κ² λμνλ€.
- λ Έλμμ μμ μ μ²λ¦¬ν μ μλ€λ©΄, λμΌν λμ λ Έλ, λ€λ₯Έ λμ λ Έλ μμλ‘ λ§΅ μμ μ΄ μ€νκ°λ₯ν λ Έλλ₯Ό μ°Ύλλ€.
- 리λμ μμ
- μλ κ²½μ°: νμΌμ μ½μ΄μ λ°λ‘ μ°λ μμ μ κ²½μ° λ§€νΌλ§ μλ μμ
- νλμΈ κ²½μ°: λͺ¨λ λ°μ΄ν°μ μ λ ¬ μμ
- μ¬λ¬κ°μΈ κ²½μ°: 리λμ μλ§νΌ νμΌ μμ±
- μ
λ ₯: text, csv, gzip νν
InputFormat
,InputSplit
,RecordReader
μΆμν΄λμ€λ₯Ό μμνμ¬ κ΅¬ν
- 맡: μ
λ ₯μ λΆν νμ¬ ν€λ³ λ°μ΄ν° μ²λ¦¬
Mapper
ν΄λμ€λ₯Ό μμνκ³map()
λ©μλλ₯Ό ꡬν
- μ»΄λ°μ΄λ: λ€νΈμν¬λ₯Ό νκ³ λμ΄κ°λ λ°μ΄ν°λ₯Ό μ€μ΄λ λ‘컬 리λμ
- νν°μ
λ: 맡μ μΆλ ₯ κ²°κ³Ό ν€ κ°μ ν΄μ¬ μ²λ¦¬νμ¬ μ΄λ€ 리λμλ‘ λκΈΈμ§ κ²°μ .
Partitioner
ν΄λμ€λ₯Ό μμλ°μμ
- μ ν: κ° λ¦¬λμλ‘ λ°μ΄ν° μ΄λ
- μ λ ¬: 리λμλ‘ μ λ¬λ λ°μ΄ν°λ₯Ό ν€ κ° κΈ°μ€μΌλ‘ μ λ ¬
- λ°μ΄ν°λ₯Ό μ λ ¬ν λ νν°μ μ κΈ°μ€μ΄ λλ μ£Όν€μ λ€λ₯Έ κ°μ κΈ°μ€μΌλ‘ μ λ ¬ν μ μλ€. μ΄λ₯Ό μΈμ»¨λ리 μνΈλΌκ³ νλ€.
- 리λμ: λ°μ΄ν°λ₯Ό μ²λ¦¬νκ³ κ²°κ³Όλ₯Ό μ μ₯
- μΆλ ₯: 리λμμ κ²°κ³Όλ₯Ό μ μλ ννλ‘ μ μ₯
- λ€μλ Έλλ νμΌμ λ©νλ°μ΄ν°μ λΈλ‘μ κ΄λ¦¬νλλ° λ§μ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©νλ€. μμ μ¬μ΄μ¦μ νμΌμ΄ μ¬λ¬κ° μ‘΄μ¬νκ² λλ©΄ μ΄ νμΌλ€μ κ΄λ¦¬νλλ° λ§μ λ©λͺ¨λ¦¬κ° μ¬μ©λκ³ , 맡리λμ€ μμ μ²λ¦¬ μ€ λ§μ μμ²μ μ²λ¦¬νκ² λμ΄ λ€μλ Έλμ λ³λͺ© νμμ΄ λ°μνκ² λμ΄ μμ μλκ° λλ €μ§κ² λλλ€. μ΄λ₯Ό λ°©μ§νκΈ° μνμ¬ μμ μ¬μ΄μ¦μ νμΌμ νλμ νμΌλ‘ ν©μ³μ HDFS λΈλ‘μ¬μ΄μ¦ ν¬κΈ°μ νμΌλ‘ μ€μ νλ κ²μ΄ μ’λ€.
- ν΄λ¬μ€ν° 리μμ€ κ΄λ¦¬ λ° μ ν리μΌμ΄μ λΌμ΄ν μ¬μ΄ν΄ κ΄λ¦¬λ₯Ό μν μν€ν μ³μ΄λ€.
- μ‘νΈλ컀 ν λκ° λͺ¨λ ν΄λ¬μ€ν°μ λͺ¨λ λ Έλλ₯Ό κ΄λ¦¬νλ©΄μ, λ©λͺ¨λ¦¬ μμ μ¬μ©μ ν¨μ¨μ± λ¬Έμ λ°λ°. 맡리λμ€ μμ λ§ μ²λ¦¬νκ³ SQL κΈ°λ° μμ μ μ²λ¦¬λ μΈλ©λͺ¨λ¦¬ κΈ°λ°μ μμ μ²λ¦¬μ μ΄λ €μμ΄ μκΈ° λλ¬Έμ λ±μ₯
- 리μμ€λ§€λμ
- μ λ¬ λ°μ μ 보λ₯Ό μ΄μ©νμ¬ ν΄λ¬μ€ν° μ 체μ μμ κ΄λ¦¬.
- μ ν리μΌμ΄μ λ§μ€ν°μμ μμμ μμ²νλ©΄ λΉμ΄ μλ μμμ μ¬μ©ν μ μλλ‘ μ²λ¦¬
- μ€μΌμ€λ¬:
yarn-site.xml
μ μ€μ - νΌν¬ μ€μΌμ€λ¬: λ¨Όμ λ€μ΄μ¨ μμ μ΄ μ’ λ£λ λκΉμ§ λ€μ μμ μ λκΈ°νλ ν μ€νΈ λͺ©μ μΌλ‘λ§ μ¬μ©νλ μ€μΌμ€λ¬
- νμ΄ μ€μΌμ€λ¬: λλ±νκ² λ¦¬μμ€ μ μ .
- 컀ν¨μν° μ€μΌμ€λ¬: νΈλ¦¬ ννλ‘ νλ₯Ό μ μΈνκ³ κ° ν λ³λ‘ μ΄μ©ν μ μλ μμμ μ©λμ μ νμ¬ μ£Όλ©΄ κ·Έ μ©λμ λ§κ² μμμ ν λΉνλ€.
- λ
Έλ맀λμ
- ν΄λ¬μ€ν°μ κ° λ Έλλ§λ€ μ€ν. ν λ Έλμ μμ μν κ΄λ¦¬ λ° λ³΄κ³
- μ ν리μΌμ΄μ
λ§μ€ν°
- ν΄λΌμ΄μΈνΈκ° 리μμ€ λ§€λμ μ μ ν리μΌμ΄μ μ μ μΆνλ©΄ 리μμ€ λ§€λμ κ° λΉμ΄μλ λ Έλμμ μ ν리μΌμ΄μ λ§μ€ν°λ₯Ό μ€νμν¨λ€.
- μμ μ€νμ μν μμμ 리μμ€ λ§€λμ μ μμ²νκ³ μμμ ν λΉ λ°μμ κ° λ Έλμ 컨ν μ΄λλ₯Ό μ€ννκ³ μμ μ§ν.
- 컨ν μ΄λλ‘λΆν° μ’ λ£ μλ¦Όμ λ°κ³ μμ μ΄ μ’ λ£λλ©΄ 리μμ€λ§€λμ μ μλ¦¬κ³ μμ ν΄μ
- 컨ν
μ΄λ
- μ€μ μμ μ΄ μ€νλλ λ¨μ.
- μμ μ’ λ£μ μ ν리μΌμ΄μ μ μλ¦Ό.