Home 용어정리 4. 노드(Node)
Post
Cancel

용어정리 4. 노드(Node)

노드는 뭘까?

하둡을 봐도 노드가 있고, 최근에 알고리즘 공부할때도 노드가 등장합니다.

노드는 도대체 뭐길래 이렇게 자꾸 내 눈앞에 나타나는 걸까요.

별거 아니지만 왠지 궁금하니 한번 알아보도록 하겠습니다.

결론부터 말하자면 노드는 여러 요소들이 네트워킹으로 연결되어 형성된 하나의 집합이 가진 개개의 요소를 일컬어 노드라고합니다. 물론 어떤 상황에서 정의하냐에 따라 구체적인 내용이 달라지긴하지만, 추상적인 개념으로 정의하자면 그렇다는 겁니다.

하둡으로 예를 들어보죠.

하둡 클러스터는 다수의 상용 하드웨어로 구성됩니다. 뭐 그냥 서버 컴퓨터나 서버라고 해도 무관합니다. 그리고 이 하드웨어들은 서로 네트워크로 연결이 되어있죠. 여기서 상용 하드웨어들은 노드입니다.

이번엔 그래프를 생각해보죠.

A와 B가 연결되어 있고 B가 C랑 연결된어 하나의 그래프를 그려냈습니다. 여기서 A, B, C는 노드입니다. 그리고 추가적으로 그래프에선 노드들 사이에 연결된 선을 엣지(번역하면 간선)라고 하는데 하둡 클러스터에서의 네트워크에 대응됩니다.

이정도면 노드에 대한 이해는 끝납니다.

네임노드? 데이터노드? 마스터 노드? 슬레이브 노드?

근데 갑자기 하나 더 궁금한게 생깁니다. 바로 HDFS에서 노드들에 대한 것입니다.

적어도 지금 네임노드와 데이터 노드가 데몬이라는 건 알고 있다고 생각하고 글을 전개하겠습니다.

해외나 국내나 가리지않고 사실 많은 사람들이 네임노드를 그냥 네임노드 서버처럼 사용하는 경우가 잦습니다. 데이터 노드도 마찬가지구요. 하지만 사실 이것들은 데몬이죠.

그럼 클러스터의 구성요소들을 노드라고 부른다고 했는데 그냥 쓰면 안되나?

써도 됩니다. 솔직히 말이 통하는데 아무런 지장이 없거든요. 물론 엄밀히 말하면 네임노드 서버는 네임노드 노드고 데이터노드 서버는 데이터노드 노드가 맞습니다. 근데 솔직히 좀 맛이없죠. 약간 개굴개굴 개구리, 람쥐람쥐 다람쥐 이러는거같잖아요. 어감이 너무 유치합니다.

그래서 보통 마스터 노드, 슬레이브 노드라고 부릅니다. 그러면 네임노드가 있는 노드가 마스터 노드일까요?

이건 반만 맞습니다. 네임노드가 데몬으로 실행된 서버가 마스터 노드가 맞습니다만, 세컨더리 네임노드가 데몬으로 실행된 서버도 마스터 노드입니다. 맵리듀스까지 확장하면 잡트래커가 실행된 서버도 마스터 노드죠. (하둡 1.X 버전 기준입니다.)

마스터 노드는 결국 하둡 클러스터에서 마스터 데몬을 실행한 서버고, 슬레이브 노드는 하둡 클러스터에서 슬레이브 데몬을 실행한 서버이기 때문이죠.

어쨌든 마무리 짓자면, 제가 내린 결론은 ‘그냥 네임노드 서버, 데이터노드 서버라고 부르는게 제일 편하다.’ 입니다.

This post is licensed under CC BY 4.0 by the author.

이코테 Ch.3 DFS/BFS (2)

이코테 Ch.3 DFS/BFS (3)