작성
·
596
1
강사님의 강의를 듣고 실제 적용을 하고 싶은데, 설치부터 막막해서 질문드립니다. 현재 상황은 서버에 하둡이 깔려 있고 대용량 데이터가 있습니다. 그리고 앞으로 대용량 ml 처리를 위해 스파크를 사용하려고 합니다. (스파크 안깔린 상태)
이 경우 1. 스파크로 파일 읽기를 수행하면 하둡의 namenode 를 참조해서 파일을 병렬로 가져오나요? 2. 그리고 transform 을 하면 rdd 는 worker node 에 분산되어 생기는거 같은데 이게 하둡의 data node 인가요? 3. 그러면 스파크 클러스터를 깔때 hdfs 의 name node 에 driver program 을 깔고 나머지 hdfs 의 data node 에 worker node 를 깔고 spark 클러스터로 묶어줘야 하는건가요??
하둡과 스파크가 독립적인 두 프로그램인데 어떻게 연관되어 작동하는지 궁금합니다.
답변 3
1
안녕하십니까,
spark는 cluster 구성을 위해서 일반적으로 Yarn을 사용합니다(standalone은 거의 사용하지 않습니다).
기존에 Yarn cluster 없이 HDFS만 사용하셨다면, Yarn을 먼저 설치 후 cluster 구성을 하시면 Spark와 연동하기 쉽습니다.
HDFS에서 Yarn 설치는 아래 문서를 참조해 보시지요.
https://sparkbyexamples.com/hadoop/yarn-setup-and-run-map-reduce-program/
yarn은 name node, data node 모두에 설치해 주셔야 합니다. 그리고 yarn-site.xml과 mapred-site.xml 도 name node, date node모두에 복사해 주셔야 합니다.
Yarn cluster로 HDFS가 구성되면 Spark 구성은 아래 문서를 참조해 보시지요.
https://sparkbyexamples.com/spark/spark-setup-on-hadoop-yarn/
위 언급드린 사항은 멀티 노드로 HDFS가 구성되어 있는 경우입니다.
즉 1개의 Name node와 3개의 data node가 있으면 Yarn과 Spark을 이 4개 노드에 모두 설치하고 이후
HDFS의 Name node에서 Yarn resource manager를 기동, HDFS의 Data Node에서 Yarn의 Node manager 기동. 그리고 spark도 모두 up시킨뒤, Yarn resource manager에 spark application을 수행 요청하면 나머지는 Yarn이 알아서 resource를 할당하면서 spark를 수행합니다.
감사합니다.
0
hdfs 위에 yarn 깔고 스파크를 깔고 spark-submit 하면 yarn에서 알아서 자원을 효율적으로 배분해 동작하겠네요! 답변 너무 감사합니다. 큰 도움이 되었습니다.
0
3번에 대해 찾아본 결과 질문처럼 하려면 standalone 으로 깔 수도 있지만, spark-submit 시에 --master yarn 으로 작업 요청을 보내서 yarn 에서 스파크가 처리가 되는거 같습니다. 이말은 yarn 에서 스파크가 호환이 되는건가요?? 이때 spark job의 리소스는 어디꺼를 쓰게 되는건지도 궁금합니다. hdfs 의 datanode의 자원을 일정 부분 할당받는지.... 아니면 새로 cgroups?에 의해 자원이 할당되는지...
너무 두서없는 질문을 드리는것 같지만... 알려주시면 학습에 큰 도움이 될 것 같습니다 ㅠㅠ