5.11 HDFS#
Apache Hadoop์ HDFS๋ฅผ ๋น๋กฏํ ๋ถ์ฐ ์ปดํจํ ์ ์ํ ์คํ ์์ค ํ๋ ์์ํฌ์ ๋๋ค. HDFS๋ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ ์ ์ฅํ๋ ํ์ผ ์์คํ ์ผ๋ก, ๋์ ๋ด๊ตฌ์ฑ๊ณผ ํ์ฅ์ฑ์ ์ ๊ณตํฉ๋๋ค. HDFS๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ธ๋ก์ผ๋ก ๋๋์ด ์ฌ๋ฌ ๋ ธ๋์ ์ ์ฅํ๋ฏ๋ก, ๋ฐ์ดํฐ ์์ค ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ณ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
Google File System#
๋ถ์ฐ ํ๊ฒฝ์ด๋ผ๊ณ ํ๋ฉด ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฌ๋ฌ ๋์ ์๋ฒ๋ฅผ ํ๋์ ํด๋ฌ์คํฐ์์ ๋์ํ๋ ๊ฒ์ฒ๋ผ ๊ตฌ์ถ๋ ํ๊ฒฝ์ ๋ปํฉ๋๋ค. ์ด๋ฌํ ๋ถ์ฐ ํด๋ฌ์คํฐ ์ํคํ ์ฒ์ ๊ตฌ์กฐ๋ฅผ ํฌ๊ฒ ๋๊ฐ์ง๋ก ๋๋๋ฉด Master-Slave์ Master-Slave๊ฐ ์๋ ๊ฒ์ผ๋ก ๊ตฌ๋ถ ๋ฉ๋๋ค. GFS์ ์ด๋ฅผ ์ํํธ์จ์ด๋ก ๊ตฌํํ HDFS์ ๊ฒฝ์ฐ Master-Slave ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ์ด ๋์ด ์์ต๋๋ค. ์ด๋ฌํ ์ค๊ณ ๊ตฌ์กฐ์ ๊ฒฝ์ฐ ์ฌ๋ฌ ๋์ ์ ๊ฐ ์ฅ๋น๋ฅผ scale-out ํ๊ธฐ ์ฉ์ดํ๋ค๋ ์ ์์ ์ฅ์ ์ด ์์ต๋๋ค.
Master-Slave์์ ๊ฐ์ฅ ์ค์ํ ์ ์ Master์ ๋ถํ๊ฐ ๊ฐํ์ง ์์ ์ํฉ์ ํญ์ ๋ง๋ค์ด์ฃผ์ด์ผ ํ๋ค๋ ์ ์ ๋๋ค. ๋ง์ฝ master node์ ์ฅ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋๋ฉด ์ ์ฒด node์ ์ฅ์ ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ master node์ ์์ ์ฑ์ ๋ณด์ฅํ ์ ์๋ ์ํคํ ์ฒ๋ฅผ ์ค๊ณํด์ผ ํฉ๋๋ค. ์์ ๊ทธ๋ฆผ์ ๋ณด์๋ฉด GFS client์ GFS chunkserver๊ฐ data๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ์์์ ๋ณผ ์ ์๋๋ฐ ์ด๊ฒ์ด ์๋ฏธํ๋ ๋ฐ๋ ๋ถ์ฐ ์์คํ ์์ master์ ์ง์ data๋ฅผ ์ฃผ๊ณ ๋ฐ์ง ์๊ณ master๊ฐ ์๋ chunkserver์ data๋ฅผ ์ฃผ๊ณ ๋ฐ๊ณ ์์์ ๋งํฉ๋๋ค. ์ด๋ฅผ ํตํด master์ ๊ฐํด์ง๋ ๋ถํ๋ฅผ ์ต์ํํ ์ ์์ต๋๋ค. ์ฆ, GFS master์์ data processing์ ํ๋ค๋์ง data๋ฅผ ์ฃผ๊ฑฐ๋ ๋ณด๋ด๋ ์ผ์ ์ผ์ด๋์ง ์์ต๋๋ค.
HDFS#
HDFS๋ ์์ ์ดํด๋ณธ GFS์ ๋์ผํ๊ฒ master-slave ๊ตฌ์กฐ์ ๋ถ์ฐ ํ์ผ ์์คํ ์ ๋๋ค.
NameNode๋ ์ด๋ค ์ญํ ์ ํ ๊น์?#
NameNode์ ์ฃผ์ ์ญํ ์ ๋ฉํ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ๋ฐ์ดํฐ๋ ธ๋์ ๊ด๋ฆฌ์ ๋๋ค. NameNode๋ ๋ธ๋ก ๋ณต์ ์ ๊ดํ ๋ชจ๋ ๊ฒฐ์ ์ ๋ด๋ฆฝ๋๋ค.ย ํด๋ฌ์คํฐ์ ๊ฐ DataNode์์ ์ ๊ธฐ์ ์ผ๋ก Heartbeat ๋ฐ Blockreport๋ฅผ ์์ ํฉ๋๋ค.ย ํํธ๋นํธ ์์ ์ DataNode๊ฐ ์ ๋๋ก ์๋ํ๊ณ ์์์ ์๋ฏธํฉ๋๋ค.ย Blockreport์๋ DataNode์ ๋ชจ๋ ๋ธ๋ก ๋ชฉ๋ก์ด ํฌํจ๋์ด ์์ต๋๋ค.
๋ฉํ๋ฐ์ดํฐ ํ์ผ ์ข ๋ฅ#
Fsimage ํ์ผ
๋ค์์คํ์ด์ค์ ๋ธ๋ก ์ ๋ณด
Edits ํ์ผ
ํ์ผ์ ์์ฑ, ์ญ์ ์ ๋ํ ํธ๋์ญ์ ๋ก๊ทธ
๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ค๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ์์ฑ
๋ณด์กฐ ๋ค์๋ ธ๋(SNN : Secondary Name Node)#
Namenode๊ฐ ๊ตฌ๋๋๊ณ ๋๋ฉด Edits ํ์ผ์ด ์ฃผ๊ธฐ์ ์ผ๋ก ์์ฑ
๋ค์๋ ธ๋์ ํธ๋์ญ์ ์ด ๋น๋ฒํ๋ฉด ๋น ๋ฅธ ์๋๋ก Edits ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
์ด๋ ๋ค์๋ ธ๋์ ๋์คํฌ ๋ถ์กฑ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ ์ ์์
SNN์ Fsimage์ Edits ํ์ผ์ ์ฃผ๊ธฐ์ ์ผ๋ก mergeํ์ฌ ์ต์ ๋ธ๋ก์ ์ํ๋ก ํ์ผ์ ์์ฑ
ํ์ผ์ mergeํ๋ฉด์ Edits ํ์ผ์ ์ญ์ ํ๊ธฐ ๋๋ฌธ์ ๋์คํฌ ๋ถ์กฑ ๋ฌธ์ ๋ ํด๊ฒฐ
Hadoop 2.0 - Standby NameNode#
HDFS๋ ๊ตฌ์กฐ์ namenode๊ฐ ๋จ์ผ ์คํจ ์ง์
HDFS์์ ๊ณ ๊ฐ์ฉ์ฑ(High Availability)๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด namenode๋ฅผ ์ด์คํ
Active namenode
Standby namenode
Active namenode์ Standby namenode๋ ๋ฐ์ดํฐ ๋ ธ๋๋ก๋ถํฐ ๋ธ๋ก ๋ฆฌํฌํธ์ ํํธ๋นํธ๋ฅผ ๋ชจ๋ ๋ฐ์์ ๋์ผํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์งํ๊ณ , ๊ณต์ ์คํ ๋ฆฌ์ง๋ฅผ ์ด์ฉํ์ฌ ์๋ํธํ์ผ์ ๊ณต์ ํฉ๋๋ค.
Active namenode
๊ธฐ์กด์ namenode์ ์ญํ
Standby namenode
Active namenode์ ๋์ผํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ง
๋ง์ผ active namenode์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ์ด๋ฅผ ๋์ฒดํจ
๋ค๋ง active namenode์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๊ฒ์ ์๋์ผ๋ก ํ์ธํ๊ธฐ ์ด๋ ค์์ ์ฃผํคํผ๋ฅผ ํ์ฉํด ์ฅ์ ๋ฐ์์ ์๋์ผ๋ก ๋ณ๊ฒฝ๋ ์ ์๋๋ก ํจ
๋๋ถ์ด Standby namenode๋ SNN์ ์ญํ ๋ ๋์์ ์ํํ๊ธฐ ๋๋ฌธ์ ๊ณ ๊ฐ์ฉ์ฑ ๋ชจ๋์์ SNN์ ์ฌ์ฉํ์ง ์์
DataNode#
ํ์ผ์ ์ ์ฅํ๋ ์ญํ
์ฃผ๊ธฐ์ ์ผ๋ก ๋ค์๋ ธ๋์ ํํธ๋นํธ์ ๋ธ๋ก๋ฆฌํฌํธ๋ฅผ ์ ๋ฌ
๋ค์๋ ธ๋๋ ํํธ๋นํธ๊ฐ ์ ๋ฌ๋์ง ์๋ ๋ฐ์ดํฐ๋ ธ๋๋ ๋์ํ์ง ์๋ ๊ฒ์ผ๋ก ํ๋จ
๋ธ๋ก๋ฆฌํฌํธ๋ก ๋ธ๋ก์ ๋ณ๊ฒฝ์ฌํญ์ ์ฒดํฌํ๊ณ , ๋ค์๋ ธ๋์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ฐฑ์ ํฉ๋๋ค.
HDFS Read mechanism#
๋ค์๋ ธ๋์ ํ์ผ์ด ๋ณด๊ด๋ ๋ธ๋ก ์์น ์์ฒญ
๋ค์๋ ธ๋๊ฐ ๋ธ๋ก ์์น ๋ฐํ
๊ฐ ๋ฐ์ดํฐ ๋ ธ๋์ ํ์ผ ๋ธ๋ก์ ์์ฒญ
๋ ธ๋์ ๋ธ๋ก์ด ๊นจ์ ธ ์์ผ๋ฉด ๋ค์๋ ธ๋์ ์ด๋ฅผ ํต์งํ๊ณ ๋ค๋ฅธ ๋ธ๋ก ํ์ธ
HDFS Write mechanism#
๋ค์๋ ธ๋์ ํ์ผ ์ ๋ณด๋ฅผ ์ ์กํ๊ณ , ํ์ผ์ ๋ธ๋ก์ ์จ์ผํ ๋ ธ๋ ๋ชฉ๋ก ์์ฒญ
๋ค์๋ ธ๋๊ฐ ํ์ผ์ ์ ์ฅํ ๋ชฉ๋ก ๋ฐํ
๋ฐ์ดํฐ ๋ ธ๋์ ํ์ผ ์ฐ๊ธฐ ์์ฒญ
๋ฐ์ดํฐ ๋ ธ๋๊ฐ ๋ณต์ ๊ฐ ์งํ
์ฒซ๋ฒ์งธ datanode์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ธฐ ์์ํ๊ณ ๋ค๋ฅธ datanode์ ๋ณต์ ๋ฐ์ดํฐ๋ฅผ ์๋ฃํ๋ฉด ์ฐ๊ธฐ ์์ ์ด ์๋ฃ
๋ค์์ ํด๋ผ์ด์ธํธ๊ฐ ๊ฐ์ ๋ธ๋ก์ ์ ๊ทผํ๋ค๋ฉด?#
HDFS๋ ๋ค์์ ํด๋ผ์ด์ธํธ๊ฐ ๋์์ ๊ฐ์ ๋ธ๋ก์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํด ์ค๊ณ๋์์ต๋๋ค. HDFS์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ๊ธฐ ์์ ์ ๋์์ ์ํ๋ ์ ์์ง๋ง, ์ฐ๊ธฐ ์์ ์ ๋์์ ์ํ๋ ์ ์์ต๋๋ค.
๋ง์ฝ ๋ค์์ ํด๋ผ์ด์ธํธ๊ฐ ๋์์ ๊ฐ์ ๋ธ๋ก์ ์ฐ๊ธฐ ์์ ์ ์๋ํ๋ค๋ฉด, HDFS๋ ์ผ๊ด์ฑ์ ์ ์งํ๊ธฐ ์ํด ํ๋์ ํด๋ผ์ด์ธํธ๋ง ์ฐ๊ธฐ ์์ ์ ์ํํ๋๋ก ํฉ๋๋ค. ์ด๋ฅผ ์ํด HDFS๋ NameNode์์ Locking์ ์ฌ์ฉํ์ฌ ๋ธ๋ก์ ๋ํ ์ํธ๋ฐฐ์ (Mutual Exclusion)๋ฅผ ๊ตฌํํฉ๋๋ค. ํ๋์ ํด๋ผ์ด์ธํธ๊ฐ ๋ธ๋ก์ ์ฐ๋ ๋์, ๋ค๋ฅธ ํด๋ผ์ด์ธํธ๋ค์ ํด๋น ๋ธ๋ก์ ๋ํ ์ฐ๊ธฐ ์์ฒญ์ ๋๊ธฐํ๊ฒ ๋ฉ๋๋ค.
์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก HDFS๋ ๋ค์์ ํด๋ผ์ด์ธํธ๊ฐ ๋์์ ๊ฐ์ ๋ธ๋ก์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ์๋ ์ผ๊ด์ฑ์ ์ ์งํ๊ณ , ์ฐ๊ธฐ ์์ ์ ๋ํ ์ํธ๋ฐฐ์ ๋ฅผ ๋ณด์ฅํฉ๋๋ค.
HDFS๊ฐ ๋์ ๋ด๊ณ ์ฅ์ฑ์ ๋ณด์ฅํ๋ ๋ฐฉ๋ฒ : ๋ฐ์ดํฐ ๋ณต์ #
HDFS๊ฐ ๋์ ๋ด๊ณ ์ฅ์ฑ(Fault Tolerance)๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด์ ์ ์ฅ๋ ํ์ผ์ ๋ณต์ ๋ณธ์ ์ ์งํ๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด 100MB์ ํ์ผ์ด ์ ์ฅ๋์๋ค๊ณ ํ๋ค๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก 3๊ฐ์ ๋ณต์ ๋ณธ์ผ๋ก ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ 300MB์ ์ฉ๋์ ์ฐจ์งํ๊ฒ ๋ฉ๋๋ค.
HDFS์ Block#
๊ทธ๋ ๋ค๋ฉด ์ด ํ์ผ์ ์ด๋ป๊ฒ ์ ์ฅ์ด ๋ ๊น์? HDFS์์ ํ์ผ์ ๋ธ๋ก ๋จ์๋ก ์ ์ฅํ๊ฒ ๋ฉ๋๋ค.
HDFS์ ๊ธฐ๋ณธ์ ์ธ ๋ธ๋ก ๋จ์๋ 128 MB์ธ๋ฐ์, ์ด๋ ๊ฒ ํฐ ๋ธ๋ก ์ฌ์ด์ฆ๋ฅผ ๊ฐ๊ฒ ๋ ์ด์ ๋ ํ์ ๋น์ฉ์ ์ค์ด๊ธฐ ์ํด์ ์ ๋๋ค. ๋ธ๋ก ์ฌ์ด์ฆ๊ฐ ํฌ๋ฉด ํ๋๋์คํฌ์์ ๋ธ๋ก์ ์์์ ์ ์ฐพ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
Locality of HDFS#
์ผ๋จ ๊ธฐ๋ณธ์ ์ผ๋ก data๋ฅผ ๊ฐ์ง๊ณ ์๋ node์ job์ ํ ๋นํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ฝ ํด๋น node๊ฐ ์ด๋ฏธ ๋ค๋ฅธ ์์ ์ผ๋ก ๋ฐ์ ์ํ๋ผ๋ฉด ๊ฐ์ ๋ ์์์ data๋ฅผ ๊ฐ์ง๊ณ ์๋ node์ ๊ทผ์ฒ์ node์ job์ ํ ๋นํ๊ฒ ๋ฉ๋๋ค. ์ด๋ ๋คํธ์ํฌ๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ์ก ์๊ฐ์ ์ต์ํํ๊ธฐ ์ํจ์ด๊ณ ์ด๊ฒ์ด HDFS์์์ locality๋ฅผ ๋ปํฉ๋๋ค.
๊ฐ์ ๋ ธ๋
๊ฐ์ ๋(Rack)์ ๋ ธ๋
๋ค๋ฅธ ๋์ ๋ ธ๋
์์ผ๋ก ํ ๋น
Rack Awareness#
ํ๋ก์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฌ๋ฅผ ํ ๋ ์๋ก ๋ค๋ฅธ ๋์ ๋ธ๋ก์ด ์ต์ ํ๋๋ ๋ณต์ฌ๊ฐ ๋ ์ ์๋๋ก ์ค์
๋ธ๋ก์ ์ ์ฅํ ๋, 2๊ฐ์ ๋ธ๋ก์ ๊ฐ์ ๋์, ๋๋จธ์ง ํ๋์ ๋ธ๋ก์ ๋ค๋ฅธ ๋์ ์ ์ฅํ๋๋ก ๊ตฌ์ฑ
Block Caching#
๋ฐ์ดํฐ ๋ ธ๋์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์ค ์์ฃผ ์ฝ๋ ๋ธ๋ก์ ๋ธ๋ก ์บ์(block cache)๋ผ๋ ๋ฐ์ดํฐ ๋ ธ๋์ ๋ฉ๋ชจ๋ฆฌ์ ๋ช ์์ ์ผ๋ก ์บ์ฑ
ํ์ผ ๋จ์๋ก ์บ์ฑํ ์๋ ์์ด์ ์กฐ์ธ์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ค์ ๋ฑ๋กํ์ฌ ์ฝ๊ธฐ ์ฑ๋ฅ์ ๋์ผ ์ ์์
์์ฃผ ๋์ค๋ ๊ฒ์ ๋น ๋ฅด๊ฒ ํ๊ธฐ!
์ฐธ๊ณ ์๋ฃ) ์ปดํจํฐ ๊ตฌ์กฐ์์์ ์บ์์ ๋น๊ต
์ปดํจํฐ ๊ตฌ์กฐ์์์ ์บ์ฌ๋ CPU์ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ ๋ณ๋ชฉํ์์ ์ ๊ฑฐํ๊ธฐ ์ํด ๊ทธ ์ฌ์ด์ SRAM์ ๋์ด ์์ฃผ ๋์ค๋ ๊ฒ์ ๋ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋๋ก ํ ๊ฒ์ ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ค๊ณ์์์ caching์ด๋ ํ๋ก์์์ block caching์ด ์ปดํจํฐ ๊ตฌ์กฐ์์์ ๊ฐ์ด SRAM์ ์ ์ฅํ๋ ๊ฒ์ ์๋ฏธํ๋ ๊ฒ์ ์๋์ง๋ง ๋ฉ๋ชจ๋ฆฌ ๊ณ์ธต ๊ตฌ์กฐ์ ๋ฐ๋ผ ์์ฃผ ๋์ค๋ ๊ฒ์ ๋ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํ ๊ฒ์์ ์ผ๋งฅ์ํตํฉ๋๋ค. DB ํน์ object storage, HDFS๊น์ง ๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ์๋๋ผ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ฏธ๋ฆฌ ์ฌ๋ ค๋์ด ๋ ๋นจ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ํจ์ ์์ต๋๋ค.
HDFS ์ธ์ดํ๋ชจ๋#
HDFS์ ์ธ์ดํ๋ชจ๋(safemode)๋ ๋ฐ์ดํฐ ๋ ธ๋๋ฅผ ์์ ํ ์ ์๋ ์ํ
์ฝ๊ธฐ ์ ์ฉ ์ํ
๋ฐ์ดํฐ ์ถ๊ฐ, ์์ , ๋ณต์ ๋ถ๊ฐ๋ฅ
๊ด๋ฆฌ์๊ฐ ์๋ฒ ์ด์ ์ ๋น๋ฅผ ์ํด ์ธ์ดํ ๋ชจ๋๋ฅผ ์ค์ ํ๊ฑฐ๋ ๋ค์๋ ธ๋์ ๋ฌธ์ ๊ฐ ์๊ฒจ์ ์ ์์ ์ธ ๋์์ ํ ์ ์์ ๋ ์๋์ผ๋ก ์ธ์ดํ ๋ชจ๋๋ก ์ ํ
fsck
ย ๋ช ๋ น์ผ๋ก HDFS์ ๋ฌด๊ฒฐ์ฑ์ ์ฒดํฌํ๊ณ ,ยhdfs dfsadmin -report
ย ๋ช ๋ น์ผ๋ก ๊ฐ ๋ฐ์ดํฐ ๋ ธ๋์ ์ํ๋ฅผ ํ์ธํ์ฌ ๋ฌธ์ ๋ฅผ ํ์ธํ๊ณ ํด๊ฒฐํ ํ ์ธ์ดํ ๋ชจ๋๋ฅผ ํด์