Java-Bom / ReadingRecord

📚 책 읽고 정리하기 📚
https://javabom.tistory.com/category/Reading%20Record
472 stars 27 forks source link

[2장] 원격청킹/파티셔닝 #238

Closed chldbtjd2272 closed 2 years ago

chldbtjd2272 commented 2 years ago

p.57~58 원격청킹/파티셔닝

질문 : 원격청킹과 파티셔닝 관련한 내용에 대해 간단한 동작방식에 대한 설명 부탁해(11장에 나오는 얘기니까 간단하게 설명해줘)

ex) master와 원격간의 통신방법

NDjust commented 2 years ago

요 질문에 좀 더 덧붙여서 책에서원격 파티셔닝과 원격 청킹의 두 가지 주요 차이점은 원격 파티셔닝 을 사용하면 내구성 있는 통신 방법이 필요하지 않으며 마스터는 워커의 스랩 수집을 위한 컨트롤러 역할만 한다는 것라고 차이점을 설명해주고 있는데 동작방식 설명 해주시면서 해당 차이점에 대해서도 한 번 집고 넘어가주시면 좋을 거 같습니다!

pci2676 commented 2 years ago

@chldbtjd2272, @NDjust

원격청킹(remote chunking)의 경우 미들웨어를 하나씩 두고 통신을 하면서 처리할 데이터와 결과를 주고 받는 구조로 구성되어있어

정리하면

  1. 작업 전송용 미들웨어로 마스터 노드가 데이터를 메세지로 전달
  2. 결과 수신용 미들웨어로 워커 노드들이 작업한 내용을 마스터 노드에게 전달 같은 구조라고 볼 수 있어

그림으로 보면 아래와 같고 image 세부적인 구조는 아래와 같아 image

미들웨어로 메세지 브로커를 사용하라고 하는데 JMS의 MessageListener 같은걸 사용하라고 하네 자세한 구현은 공식문서에 예제 코드로 나와있어


파티셔닝(Partitioning)은 잡의 하나의 스텝을 청크단위로 작업을 쪼개는게 아닌 스탭을 파티션단위로 작업을 쪼개서 처리하는것으로 보여 이렇게 스탭을 쪼개는건 파티셔닝된 데이터를 보유하고 있는 특수한 환경에서 각 스탭에서 효율적으로 처리를 하기 위해서라고 보면 되는것 같아

이러한 작업을 플로우로 그리면 다음과 같고 image

도식화 하면 아래와 같다고해 image image

샘플 코드는공식문서에 있어

추가로 동욱님이 올해초에 정리하신 도 있네!