참고사항
본 글은 2018년에 기술 조사를 진행하면서 확인한 내용으로, 최신 상황에 맞게 업데이트 하였으나 일부 부족한 내용이 있을 수 있습니다.
빅데이터나 하둡 관련 전문가가 아니기 때문에 셋팅과 기본적인 사용 외에, 하둡과 관련 생태계 운영의 트러블 슈팅은 잘 모릅니다.
오픈소스 특성상 직접 조사하고 해결해야 하는 부분이 많습니다. 기본 셋팅 관련해서 참고만 부탁 드립니다.
프록시 환경에서 HDP Sandbox를 설정할 때 참고해야 하는 사항을 정리한다.
HDP Sandbox에 대한 소개와 설치 스크립트 다운로드는 다음 포스팅을 참고한다.
HDP Sandbox 2.6.5 버전을 Docker로 설치하는 방법은 다음 포스팅을 참고한다.
HDP Sandbox 2.6.5 Docker 컨테이너의 HDFS에 데이터 파일 업로드 방법은 다음 포스팅을 참고한다.
프록시 환경이 아닌 인터넷 환경에서는 127.0.0.1로 설정하면 정상 접속된다. (다른 포트를 다 점유해서 문제..)
그러나 프록시 환경에서는 아래와 같이 /etc/hosts 파일을 수정해도 정상 접속되지 않는다.
# 한줄에 적어도 되지만 가독성을 위해 구분함 127.0.0.1 localhost 127.0.0.1 sandbox.hortonworks.com sandbox-hdp.hortonworks.com
터미널에서 ping이나 ssh 서비스를 사용하는데는 문제가 없다. 정상적으로 루프백 IP (127.0.0.1)를 잘 받아온다.
그러나 크롬이나 파이어폭스에서는 프록시 차단 메시지로 인해 아래와 같은 페이지가 출력된다.
127.0.0.1 대신에 아래 IP 주소를 사용하면 정상적으로 접속된다.
- HDP Docker 컨테이너의 가상 네트워크 브릿지 IP 주소
- HDP Docker 컨테이너 주소
- Host PC의 실제 IP 주소 (권장)
실제 HDP Sandbox 매뉴얼을 확인해보면 Sandbox의 IP 주소를 지정하라고 되어 있다. (역시 매뉴얼을 꼼꼼히.. -_-;;)
빌드 머신이나 다수의 컨테이너를 사용하는 환경의 경우 Sandbox의 IP 주소를 꼼꼼하게 확인해야 한다.
HDP Sandbox에서 사용하는 포트가 너무 많아서, 다른 Docker 컨테이너의 포트와 충돌이 발생하는 경우가 많다.
hosts 설정 변경
HDP Docker 컨테이너의 가상 네트워크 브릿지 IP 주소 사용
Docker를 설치하면 가상 네트워크 브릿지로 docker0이 생성된다. 해당 IP는 172.17.0.1이다.
실제 Hortonworks 매뉴얼을 확인해보면 172.17.0.1 주소를 사용한 것을 확인할 수 있다.
- SECURE SHELL METHOD 항목의 그림을 보면 마지막 로그인 IP 주소가 172.17.0.1이다.
- 참고!!) 기술조사 당시인 2018년에는 172.17.0.1이었으나, 2021년 8월에 확인한 바로는 172.18.0.3이다.
hosts를 다음과 같이 수정한다.
127.0.0.1 localhost 172.17.0.1 sandbox.hortonworks.com sandbox-hdp.hortonworks.com
크롬이나 파이어폭스에서 다음 URL이 정상접속 되는지 확인한다.
- http://sandbox.hortonworks.com:1080 (splash)
- http://sandbox.hortonworks.com:8080 (ambari)
HDP Docker 컨테이너 주소 사용
해당 컨테이너의 IP 주소를 확인해보면 IP는 172.18.0.2이다. localhost 주소를 이용하여 HDP Docker 컨테이너의 쉘에 로그인하면 확인할 수 있다.
테스트를 진행해 본 결과 172.17.0.1 (가상 네트워크 브릿지), 172.18.0.1 (가상 네트워크 게이트웨이), 172.18.0.2 (컨테이너 IP) 모두 성공했다.
실제로 HDP Docker 컨테이너에서 확인해보면 172.18.x.x 대역을 172.18.0.2로 route 하도록 되어 있다.
172.18.0.1 주소는 게이트웨이 주소이므로 가급적 172.18.0.2로 샌드박스의 IP 주소를 지정하는 것을 권장한다.
hosts를 다음과 같이 수정한다.
127.0.0.1 localhost 172.18.0.2 sandbox.hortonworks.com sandbox-hdp.hortonworks.com
크롬이나 파이어폭스에서 다음 URL이 정상접속 되는지 확인한다.
- http://sandbox.hortonworks.com:1080 (splash)
- http://sandbox.hortonworks.com:8080 (ambari)
Host PC의 실제 IP 주소 사용 (권장)
Host PC의 IP 주소가 172.1.2.3일 경우 hosts에 적용하면 접속 가능하다.
단일 PC에서 가상의 서버나 서비스를 운영하고자 할때 유용한 방법이다.
hosts를 다음과 같이 수정한다.
127.0.0.1 localhost 172.1.2.3 sandbox.hortonworks.com sandbox-hdp.hortonworks.com
크롬이나 파이어폭스에서 다음 URL이 정상접속 되는지 확인한다.
- http://sandbox.hortonworks.com:1080 (splash)
- http://sandbox.hortonworks.com:8080 (ambari)
다른 PC에서 HDP Sandbox Docker 컨테이너에 접속하기
다른 PC에서 실행 중인 HDP Docker 컨테이너에 접근하여 HDP Sandbox를 사용할 수 있다.
HDP Sandbox 컨테이너가 실행 중인 PC의 IP 주소와 서비스 포트 사용
HDP Sandox Docker 컨테이너가 실행 중인 PC의 IP 주소와 서비스 포트를 사용해서 접속한다.
HDP Sandbox Docker 컨테이너가 실행 중인 PC의 IP 주소가 172.1.2.3인 경우, Ambari는 아래 주소로 접근 가능하다.
ex) http://172.1.2.3:8080 (ambari)
물론 접근하려는 서비스의 포트에 접근 가능해야 하며, 사설 IP를 사용하는 경우 동일 네트워크에서만 가능하다.
외부에서 접근하려고 하는 경우 공유기에서 포트포워딩 설정을 적용하고, 해당 공유기에 할당 된 외부 IP를 사용해야 한다.
HDP Sandbox 컨테이너가 실행 중인 PC의 IP를 hosts에 적용
HDP Sandbox Docker 컨테이너가 실행중인 PC의 IP 주소를 hosts에 적용한다.
HDP Sandbox Docker 컨테이너가 실행 중인 PC의 IP 주소가 172.1.2.3이라면 hosts를 다음과 같이 수정한다.
127.0.0.1 localhost 172.1.2.3 sandbox.hortonworks.com sandbox-hdp.hortonworks.com
크롬이나 파이어폭스에서 다음 URL이 정상접속 되는지 확인한다.
- http://sandbox.hortonworks.com:1080 (splash)
- http://sandbox.hortonworks.com:8080 (ambari)
URL은 사용하려는 주소로 변경 가능하지만, hosts 설정이 우선이기 때문에 다른 서비스와 URL이 중복되지 않도록 주의하다.
다른 서비스와 URL이 동일하면 해당 URL을 사용하는 기존 서비스는 접속되지 않는다.
hosts 파일을 다음과 같이 수정하면 hdp.sandbox.com 주소로 접속 가능하다.
127.0.0.1 localhost # HDP Docker 서비스에 접속하려는 PC에서 수정하는 경우 (대상 PC의 IP는 172.1.2.3이라 가정) 172.1.2.3 hdp.sandbox.com
물론 접근하려는 서비스의 포트에 접근 가능해야 하며, 사설 IP를 사용하는 경우 동일 네트워크에서만 가능하다.
기존 URL을 적용하려고 하는 경우
도메인을 구입해서 사용 중이거나, 공유기에 할당 된 DDNS 주소를 사용하려는 경우에는 공유기의 포트포워딩 설정을 변경해야 한다.
사용하려는 서비스의 포트를 공유기의 포트포워딩 정책에 등록한다.
예를 들어 Ambari의 경우 8080 포트를 사용하는데, 다음과 같이 적용한다.
- 외부 포트 - 8123
- 내부 포트 - 8080
- 대상 IP - HDP Sandbox Docker 컨테이너가 실행중인 PC의 IP 주소
공유기에 연결 된 도메인이 test.hdp.com이라면 test.hdp.com:8123으로 접속한다.
SSH나 다른 서비스에 직접 연결하려는 경우 공유기에서 각각의 포트에 대한 포트포워딩을 모두 등록해야 한다.
HDP Sandbox는 대부분 로컬에서 테스트 목적으로 사용하려는 것이기 때문에 이 정도로 쓸 일을 없지 않을까 싶다.
'::: 데이터 분석 :::' 카테고리의 다른 글
배포한 HDP Sandbox Docker 이미지 사용을 위한 스크립트 작성 (0) | 2021.09.30 |
---|---|
설정 변경한 HDP Sandbox 2.6.5의 Docker 이미지 배포 (0) | 2021.09.27 |
HDP Sandbox 2.6.5 HDFS에 데이터 업로드 하기 (0) | 2021.09.20 |
HDP Sandbox 2.6.5 Docker 설정과 Ambari 로그인하기 (0) | 2021.09.16 |
HDP Sandbox 소개와 Docker 셋팅 파일 다운로드 (2) | 2021.09.13 |