여기서 다루는 내용
· 서비스 간단 소개
· EMR 생성 및 JupyterHub 접근
· Jupyter 확인
· 마무리
이제 Amazon EMR 릴리스 5.14.0에서 JupyterHub를 지원합니다. (2018/06/14 기준)
이번 시간에는 EMR에 추가된 JupyterHub 서비스를 간단하게 사용해보는 포스팅을 준비했습니다.
서비스 간단 소개
- AWS EMR
- 관리형 하둡 클러스터 플랫폼
- Apache Spark, HBase, Presto, Hive와 같이 널리 사용되는 분산 프레임워크를 실행
- Amazon S3 및Amazon DynamoDB와 같은 다른 AWS 데이터 스토어의 데이터와 상호 작용
- 수동 또는 Auto Scaling을 통한 인스턴스 수를 늘리거나 줄일 수 있으며, spot 인스턴스 활용을 통한 비용 절감 가능
- 제품 세부 정보 : Link
EMR 생성 및 JupyterHub 접근
:: EMR 생성
Cluster 생성시 Advanced options에서 Release 버전을 emr-5.14.0 이상으로 선택하고, Software Configuration에서 JupyterHub, Spark를 포함하는 EMR cluster를 생성합니다.
여기서는 생성 과정을 중략하겠습니다.
자세한 EMR cluster 생성 방법은 AWS EMR 설명서를
참고 부탁드립니다.
아래 이미지와 같이 Waiting 상태가 되어 클러스터 구성이 완료될때까지 기다립니다.
:: JupyterHub 접근
EMR cluster가 생성 후 브라우저에서 Master노드의 9443 포트로 접속합니다.
https://<MasterDNS>:9443
접속되면 Jupyter 로그인 화면을 접할 수 있습니다.
EMR의 JupyterHub에는 관리자 권한을 가진 기본 사용자를 제공합니다.
Username : jovyan
Password : jupyter
위의 Username과 Password를 입력하여 로그인 하면 아래 이미지와 같이 나옵니다.
:: Jupyter Notebook 사용자 및 관리자 추가
신규 사용자를 생성하여 Jupyter 관리 권한을 새로 생성한 사용자로 변경해 보겠습니다.
$ sudo docker exec jupyterhub useradd -m -s /bin/bash -N user1
$ sudo docker exec jupyterhub bash -c "echo user1:user1 | chpasswd"
- Control Panel -> Admin 에서 Add Users 를 눌러 추가 하고 이때 admin 권한도 같이 부여합니다.
- 로그 아웃 후 신규 생성한 계정으로 로그인하여 기본 계정의 admin 권한을 제거 합니다.
인증 관련하여 PAM (Pluggable Authentication Module) 인증과 LDAP 인증을 지원하기 때문에 자세한 내용은 아래 Link 및 이미지 확인 부탁드립니다.
Jupyter 확인
:: Spark 연동 확인
Jupyter에서 New를 눌러 PySpark Notebook을 생성합니다.
Spark word count 샘플 코드를 넣고 Run을 눌러 실행합니다.
EMR Resource Manager 및 Spark History Server에서 연동되어 실행되는 부분 확인 가능합니다.
:: Terminal 확인
Jupyter에서 New를 누르고 Terminal을 눌러 해당 페이지로 이동합니다.
위에서 Spark 연동했던 노트북 파일이 홈디렉토리에 저장되는 것 확인 할 수 있습니다.
마무리
이번 시간에는 EMR의 JupyterHub를 실행하고 Spark와 연동 되는 부분을 간단 사용해보았습니다.
이상 EMR의 JupyterHub 간단 사용 시간을 마무리합니다.