2017-11-09 1 views
0

JupyterHub + DockerSpawner + all-spark-notebook을 하나의 컴퓨터에 설치하고 기존 스파크 클러스터가 있습니다.기존 스파크 클러스터가있는 Jupyterhub + DockerSpawner + all-spark-notebook 사용

로그인하고 서버를 시작할 수 있지만 노트북 (Toree)이 기존 스파크 클러스터를 방문하는 방법은 무엇입니까?

내가봤을 때 누군가가 모든 spark-notebook 도커 이미지를 확장하고 Toree를 다시 설치했다.

https://github.com/jupyter/docker-stacks/wiki/Docker-Recipes#use-jupyterall-spark-notebooks-with-an-existing-sparkyarn-cluster

목표를 달성 할 수있는 쉬운 방법이있다? DockerSpawner가 Toree 커널로 전송할 수있는 인수를 수락 할 수 있습니까?

답변

0

나는 똑같은 문제에 직면했다. 내 jupyterhub를 원격 스파크 클러스터에 연결했습니다.

다음은 단계입니다. 1. 내 경우에는 도커를 통해 all-spark-notebook에 로그인하십시오. 2. 당신이 3. conf의/spark-env.sh을 변경하고 클러스터 마스터

업데이트를 가리 키도록-은 defaults.conf을 촉발 할 것이다/usr/지방/스파크에 설치 불꽃을 발견 할 것이다 고정 표시기 컨테이너의 네트워크

에 불꽃을 연결하는이 네트워크에 호스트 모드로 연결해야합니다 불꽃에 연결하기 - 여러 개의 컨테이너가 모든 할 수있는 시작하려고하면

c.DockerSpawner.extra_host_config = { 'network_mode': 'host' } 

c.DockerSpawner.use_internal_ip = True 

c.DockerSpawner.network_name = 'host' 

이 '문제의 원인이됩니다 호스트 모드로 실행하십시오. 이 설정에 다음 줄을 추가 극복하기 -

내 스파크 클러스터가 업데이트 한 네트워크
+0

대답. – Grant

+0

@Grant에 문이 안 열려 '액세스 (jupyterhub 호스트의 내부 네트워크에) 고정 표시기 컨테이너를 의미 jupyterhub 호스트와 동일한 네트워크에 앉아

from jupyterhub.utils import random_port from tornado import gen class custom_spawner(DockerSpawner): @gen.coroutine def get_ip_and_port(self): return self.container_ip, self.container_port @gen.coroutine def start(self, *args, **kwargs): self.container_port = random_port() spawn_cmd = "sh /srv/singleuser/singleuser.sh --port={}".format(self.container_port) self.extra_create_kwargs.update({"command": spawn_cmd}) # start the container ret = yield DockerSpawner.start(self, *args, **kwargs) return ret 
sat