Hadoop Architecture

HDFS 동작과정 정리


graph LR

subgraph U[User]
    ap[Application]
end

subgraph hd[ HADOOP ]
    subgraph hc[HDFS Client]
    end

    subgraph "NODES"
        direction LR
        subgraph NameNode
            direction LR    
            md([MetaData])
        end

        subgraph Secondary-NameNode
        end

        subgraph DataNode
            direction LR
            dn1([DataNode 1]) 
            dn2([DataNode 2]) 
            dn3([DataNode 3])
        end
    end
end

%% 쓰기 과정
ap -- "[1]" --> hc
hc -- "[2]" --> NameNode
NameNode -- "[3]" --> Secondary-NameNode
NameNode -- "[4:저장]" --> DataNode
DataNode -- "[4:상태정보 리턴]" --> NameNode
dn1 -- "[4]" --- dn2
dn2 -- "[4]" --- dn3

%% 읽기 과정
NameNode -- "[5]" --> hc
DataNode -- "[6]" --> hc
NameNode -- "[7]" --> Secondary-NameNode

%% Style
linkStyle 0,1,2,3,4,5,6 stroke-width:4px, stroke:white;
linkStyle 7,8,9 stroke-width:5px, stroke:black;

%% for layout
%% classDef invisible width:0px
%%  class dot1,dot2 invisible

[ HDFS 쓰기 ]

[ HDFS 읽기 ]


YARN 동작과정 정리


%% graph
graph LR
    subgraph How YARN Works
    direction TB
        subgraph hc[Hadoop Client]
        end

        subgraph ResourceManager
        direction TB
            sd[Scheduler]
            am[Application Manager]
        end

        subgraph NODES
            subgraph Node1
                nm1[NodeManager]
                ct1[Container]
            end
            subgraph Node2
                nm2[NodeManager]
                ams[Application Master]
                ct2[Container]
            end
            subgraph Node3
                nm3[NodeManager]
                ct3[Container]
                ct4[Container]
            end
        end

    end

%% flow
hc -- "[ step 1 ]" --> ResourceManager
nm2 -. "[ step 2-0 ]" ..-> sd
sd -- "[ step 2-1 ]" --> am
am -- "[ step 2-2 ]" ---> ams
sd -- "[ step 3 ]" ---> ams
ams <-- "[ step 4 ]" --> nm1
ams <-- "[ step 4 ]" --> nm2
ams <-- "[ step 4 ]" --> nm3
nm1 <-- "[ step 5 ]" --> ct1
nm2 <-- "[ step 5 ]" --> ct2
nm3 <-- "[ step 5 ]" --> ct3
nm3 <-- "[ step 5 ]" --> ct4

Node1 -- "[ step 6 ]" --> ResourceManager
Node2 -- "[ step 6 ]" --> ResourceManager
Node3 -- "[ step 6 ]" --> ResourceManager

%% Style

%% linkStyle 0,1,2,3,4,5,6 stroke-width:4px, stroke:white;
%% linkStyle 7,8,9 stroke-width:5px, stroke:black;

%% for layout
%% classDef invisible width:0px
%%  class dot1,dot2 invisible

하둡의 이점?

하둡 파일시스템 API