본문 바로가기
사이드 프로젝트/음악추천 챗봇 서비스

음악추천챗봇9. AWS EMR 클러스터구축(Hadoop+Spark+Zeppelin)

by 카프리썬 2021. 8. 7.
728x90

1.EMR클러스터구성

1.소프트웨어 구성 :

EMR 5.29.0 : Spark2.4.4 / Hadoop 2.8.5 / Zeppeline 0.8.2 

2.하드웨어  :

네트워킹 구성 확인.  내 test-vpc의 public subnet을 사용하고 싶어서 하드웨어 구성탭에서 지정했다.

- 인스턴스 유형 : c5.xlarge (메모리가 좀 많이 필요해서 인스턴스 타입이 좀 높다)

- 인스턴스 개수 : 3 (클러스터구성-마스터노드1개, 데이터노드2개)

3.일반옵션 

- 클러스터 이름

- S3로깅장소

4. 보안 

- 보안key : 인스턴스 접속 key를 지정해준다. 

- EC2보안그룹 : 마스터와 데이터노드에 접속하기 위해 해당 보안그룹이 생기는데, ssh접속을 위한 22포트도 추가한다.

 

5.클러스터생성 대기 -> 생성완료 

마스터와 데이터노드의 보안그룹에 ssh 인바운드 규칙을 추가한다. 그럼 금방 생성이 완료된다. 

 

2.웹연결활성화

Hadoop, Ganglia 및 기타 애플리케이션은 마스터 노드에 호스팅된 웹 사이트로 사용자 인터페이스를 게시합니다.

보안을 위해 이러한 웹 사이트는 마스터 노드의 로컬 웹 서버에서만 사용할 수 있습니다.

웹 인터페이스에 도달하려면 동적 또는 로컬 포트 전달을 사용하여 마스터 노드에 SSH 터널을 설정해야 합니다.

동적 포트 전달을 사용하여 SSH 터널을 설정하는 경우 웹 인터페이스를 보려면 프록시 서버도 구성해야 합니다.

 

1.마스터노드 ssh터널 열기

OpenSSH 터널링 방법 AWS 공식문서

아 여기에서 좀 헤맷는데....하... 나도 맥갖고 싶다..그럼금방 괜한 뻘짓안했을텐데....

PUTTY도 없어서 다시깔고.으...다음엔  mobaxterm으로 터널링하는 것도 확인해봐야겠다.

 

2. 프록시 관리도구 구성

여기 웹스토어에 가서 크롬 확장프로그램 다운 

크롬에 확장프로그램으로 foxyproxy가 설치되었으면 마우스 우클릭 -> foxyproxy -> option

이렇게 새로운 페이지(?)가 뜨는데 여기에서 파일선택을 해서 foxyproxy-setting.xml이라는 파일을 생성해서 추가한다. 

그리고 replace선택! 

3.프록시구성확인

그럼 맨위에 proxy-name으로  emr-socks-proxy가 생성된다. 

참고로 저 위에 proxy mode를 ALL URL에 대해서 poxy로 보낸다고 하면 지금 aws콘솔도 proxy로 보내진다.

proxy로 보내는 패턴에 일치하기 때문이다. 그래서 저 proxy mode로 수정해야한다. 

 

3. 웹UI확인해보기

이제 마스터노드 퍼블릭dns로 접속이 가능해진다. 웹URL주소는 application마다 다르다.

 

이제 zeppelin에서 s3에 있는 데이터를 가져와서 spark를 처리해보고 바로 시각화를 볼 것이다! 

후아...docker로 띄우려고 한 일주일간 뻘짓했는데 하루만에 emr로 띄우니까 기분좋다..!

 

반응형

$(document).ready(function() { var $toc = $("#toc"); $toc.toc({content: ".tt_article_useless_p_margin", headings: "h2,h3,h4"}); });