도커(docker) 환경 내 Hortonworks Data Platform(HDP) 설치하기
Hortonworks Data Platform(HDP)는 분산 스토리지 및 대규모 멀티 소스 데이터 세트 처리를 위한 오픈소스 프레임워크입니다. 도커 내 hdp를 설치해봅시다.
도커 내 HDP 설치 참고 :
Cloudera 공식 사이트
HDP 파일 다운로드 : cloudera - download - hortonworks-sandbox
윈도우10 내 도커(docker) 설치
- 본 설치에 앞서, 윈도우10 내 도커 설치를 해야 한다. 아래 사이트 참고
- 윈도우 내 리눅스, 즉 wsl2도 있어야 한다. 아래 사이트 참고
HDP 설치
- HDP 샌드박스를 사용하면 Apache Hadoop, Apache Spark, Apache Hive, Apache HBase, Druid 및 DAS(Data Analytics Studio)를 쉽게 시작할 수 있는 장점이 있다.
- 즉, 모든 빅데이터 저장 및 처리를 위한 툴이 모두 설치되어 있다.
- Get Started with Hortonworks Sandbox 를 클릭해 Hortonworks HDP에서
Download Now
를 클릭한다.-
계정 등록이 있다면 간단히 해준다.
-
-
Installation TYpe에
Docker
를 선택해LET'S GO!
를 클릭한다.
-
그럼 아래 설치가 뜨는데, 3.0.1은 램이 22GB 이상 필요하기 때문에, 16GB이상 필요한 2.6.5를 설치해준다.(최소는 10GB 이상 필요하다.) 물론, 램이 여유가 있다면 3.0.1을 설치해도 된다.
-
2.6.5 버전에 기본 보함된 프로젝트들은 다음과 같다. 1
- 다운로드받은 파일은 다음과 같다. 파일을 다운 받아, wsl2 내 경로로 파일을 이동시켜 준다.
- wsl2 내 우분투 파일 경로는
\\wsl$\Ubuntu
이다. -
더 자세한 정보는 윈도우10에서 리눅스(Linux) 설치하기 (Ubuntu on WSL2)를 참고하길 바란다.
- wsl2 내 우분투 파일 경로는
WSL2 내 명령어 실행
- 다음은
mkdir HDP_2.6.5
로 HDP_2.6.5 폴더를 생성해 다운받은 파일을 넣은 결과이다. -
그 후,
bash docker-deploy-hdp265.sh
명령어로 스크립트를 실행한다.
- 설치가 끝나면 자동으로,
sandbox-proxy
컨테이너와sandbox-hdp
컨테이너 2개가 실행될 것이다. -
아래는
docker ps
명령어를 통해 해당 컨테이너가 실행되는 것을 확인할 수 있다.
-
docker desktop으로 확인하면 다음과 같다.
기타 설정
- 그 후 해당 명령어를 통해 hosts 파일을 수정해준다. 1
echo '127.0.0.1 sandbox-hdp.hortonworks.com sandbox-hdf.hortonworks.com' | sudo tee -a /etc/hosts
- 그리고, port conflict가 있다면, 포트를 변경해준다. 단계는 다음과 같다. 2
vi sandbox/proxy/proxy-deploy.sh
명령어를 실행한다.-
6001:6001
를16001:6001
로 바꿔준다. esc
를 누른 후:wq
로 저장 후 파일을 나간다.- 그리고
bash sandbox/proxy/proxy-deploy.sh
로 bash 스크립트를 실행한다.
기타 명령어
-
HDF sandbox를 중지하고 싶다면, 다음 명령어를 실행한다.
$ docker stop sandbox-hdf $ docker stop sandbox-proxy
-
HDF sandbox를 시작하고 싶다면, 다음 명령어를 실행한다.
$ docker start sandbox-hdf $ docker start sandbox-proxy
Ambari 접속
- 접속은
127.0.0.1:8080
로 간다. - 그럼, 로그인 화면이 뜨는데, 다음을 입력한다.
- 계정 : maria_dev
-
비밀번호 : maria_dev
-
다음 화면이 뜬다면, 성공적으로 설치가 된거다.
만약 이런 에러가 뜬다면, Ports are not available: listen tcp 0.0.0.0/50070: bind: An attempt was made to access a socket in a way forbidden by its access permissions
- 해결책
- 명령 프롬프트에서 다음과 같은 명령어를 실행해준다.
net stop winnat docker start container_name net start winnat
댓글남기기