• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

맵리듀스

22.09.22 11:38 작성 조회수 229

0

  1. 일반적인 프로그램에서는 DB의 데이터를 가져와 메모리에서 처리한다고 말씀하셨는데 하둡의 맵리듀스 과정은 데이터가 이동하는것이 아니라 처리 로직(프로그램)이 데이터가 있는 곳으로 이동한다고 하셨습니다. 이렇게 하는 이유가 궁금합니다.

  2. 위와 같은 과정에서 분석 쿼리는 여러개의 노드에서 동시에 수행되나요, 아니면 노드를 순서대로 방문해서 차례대로 실행되나요?

  3. 하둡, Hbase, 카프카, 스톰의 내부에서 주키퍼에 의존해 클러스터 멤버십 기능과 동기화를 사용한다고 하셨는데 클러스터 멤버십 기능은 무엇이고 말씀하시는 환경설정의 동기화는 무엇을 의미하나요?

답변 1

답변을 작성해보세요.

0

안녕하세요! 빅디 입니다!

먼저 너~무 좋은 질문 주셔서 감사하고요!! ^^

 

  1. 일반적인 프로그램에서는 DB의 데이터를 가져와 메모리에서 처리한다고 말씀하셨는데 하둡의 맵리듀스 과정은 데이터가 이동하는것이 아니라 처리 로직(프로그램)이 데이터가 있는 곳으로 이동한다고 하셨습니다. 이렇게 하는 이유가 궁금합니다.

    A) 요건 분산 파일시스템에 대한 이해가 필요한 아주 복잡한 문제인데요...그래도 하나씩 설명을 드려 보겠습니다. 하둡에 한개의 큰~파일을 저장하면, 이 파일이 쪼개져서 여러 노드에 분산 저장 되고, 복제 계수에 맞춰서 다른 노드에 복제본까지 생깁니다. 이렇게 분산 저장 하는 이유는? 특정 노드에 문제가 발생 해도 다른 노드에서 서비스가 가능해져 안정성을 높일 수 있기 때문입니다. 우선 이걸 이해 하셔야 하고요.. 그렇다면 이렇게 분산 저장 된 큰~파일을 읽어서 분석을 할땐 어떤 장점이 있냐는 건데요!!
    1) 한대의 노드로 이 큰~파일을 분석할때, 한대의 서버가 가질 수 있는 CPU/Mem 증설(Scale-Up)엔 한계가 있습니다. 하지만 여러대의 노드를 연결(Scale-Out)해 하나의 클러스터로 묶으면 CPU/Mem 증설에 제약사항이 없어서 큰~파일의 분석시 자원 문제를 해결 할 수 있습니다. 요건 일하는 황소에 비유 되기도 합니다. 황소의 덩치를 계속 키워서 일하는게 효율적인가? 아니면 여러마리의 황소를 묶어서 일하는게 효율적인가? 문제 이기도 합니다. 작은 일(파일)을 할땐 전자이고, 무거운 일(파일)을 할땐 후자 이겠죠?! 저희 하둡은 후자의 메커니즘과 아키텍처를 갖고 있습니다. ^^
    2) 다음으론 질문에 답인데요..하둡에 저장된 큰~파일은 앞서 말했듯 여러 노드에 분산 저장 되어 있죠!! 이 파일들을 분석 프로그램이 돌고 있는 특정 1대의 노드(서버)로만 갖어와 처리한다면???, 이때 CPU/Mem 자원이 많아지는 작업이라면???, 덩치를 키워야 하는 황소 문제에 직면 할 수 있습니다. 그래서 하둡에선, 파일이 분산 저장된 여러 노드(황소)에 작업(MapReduce)을 요청하고, 각 노드들은 본인에 저장된 파일만 처리(Map) 하고, 처리후 작아진 파일들이 특정 노드로 보내져서 합쳐지는(Reduce) 작업을 하면서 빅데이터를 저장/분석 하게 됩니다.

     

  2. 위와 같은 과정에서 분석 쿼리는 여러개의 노드에서 동시에 수행되나요, 아니면 노드를 순서대로 방문해서 차례대로 실행되나요?

    A) 동시에 수행 됩니다.

     

  3. 하둡, Hbase, 카프카, 스톰의 내부에서 주키퍼에 의존해 클러스터 멤버십 기능과 동기화를 사용한다고 하셨는데 클러스터 멤버십 기능은 무엇이고 말씀하시는 환경설정의 동기화는 무엇을 의미하나요?
    A) 클러스터 멤버십 기능은, 하둡/HBase/카푸카 등이 여러대의 데이터노드와 마스터노드로 구성 되어 있는데요..여러대의 노드를 하나의 클러스터(멤버십)로 묶는 정보와, 이중에서도 마스터노드가 어떤 노드인지를 알려주는 정보를 관리하는 기능 입니다. 이때 데이터노드가 늘어나기도 하고, 줄어들기도 하고, 마스터노드가 죽으면 대기하고 있던 다른 마스터노드가 마스터가 되기도하고, 솔루션에 따라 데이터 노드가 새로운 마스터 노드가 되기도 합니다. 이때 노드/마스터 서버들간의 설정 정보들이 변경이 될테고 이 정보의 무결성이 반드시 보장이 되야 하고요, 무엇보다 바뀌었다는 정보를 한 멤버십으로 묶인 클러스터 노드들이 정확히 알고 있어야 합니다. 이런 정보를 관리해 주는게 주키퍼의 열할입니다.

-빅디 드림