이론적으로, 당신은 대부분 같은 지침을 따를 수 있습니다 발견 :
당신은 당신의 마스터 노드와 ("vmname-m"클러스터 이름이 "vmname"인 경우) SSH 터널을 만들어야합니다 https://cloud.google.com/shell/docs/features#web_preview 로컬 포트 포워딩을 사용하여 클라우드 쉘의 동일한 "웹 미리보기"기능을 통해 Dataproc의 Jupyter 노트북에 액세스 할 수 있습니다. 당신의 클라우드 쉘에서 다음과 같은 무언가 :
을 당신은 하단에 다음을 추가 할 Jupyter의 설정을 수정해야합니다
gcloud compute ssh my-cluster-m -- -L 8080:my-cluster-m:8123
그러나, 작동이되지 않도록 두 가지 문제가있다 /root/.jupyter/jupyter_notebook_config.py
:
c.NotebookApp.allow_origin = '*'
클라우드 쉘의 웹 미리보기가 WebSocket을위한 지원을 추가 할 필요가있다.
Jupyter가 클라우드 쉘 프록시 도메인을 거부하여 노트북을 만들 때 팝업 오류가 발생합니다. 불행히도 (2) Cloud Shell 자체의 지원이 더 필요합니다. A connection to the notebook server could not be established.
(2)를 기다리지 않고 가능한 또 다른 옵션은 Dataproc 클러스터에서 jupyter 초기화 작업의 일부로 자신의 nginx 프록시를 실행하는 것입니다 (프록시 웹 소켓으로 적절하게 가져올 수있는 경우). 이와 비슷한 상황을 보려면 다음 스레드를 참조하십시오. https://github.com/jupyter/notebook/issues/1311
일반적으로 프록시 레이어에서 이러한 유형의 깨진 웹 소켓 지원은 여전히 비교적 새로운 문제이므로 일반적인 문제입니다. 시간이 지남에 따라 점점 더 많은 것들이 웹 스택을 즉시 지원할 것입니다.
대안 :
통해 Dataproc도 Datalab 초기화 동작을 지원하여, 이것은 웹 소켓 프록 싱이 이미 처리되도록 설정됩니다.특별히 단지 Jupyter에 너무 의존 있다면 따라서, 다음 클라우드 쉘에서 다음 작품 : 다음
gcloud dataproc clusters create my-datalab-cluster \
--initialization-actions gs://dataproc-initialization-actions/datalab/datalab.sh
gcloud compute ssh my-datalab-cluster-m -- -L 8080:my-datalab-cluster-m:8080
그리고 포트 8080에 일반적인 "웹 미리보기"를 선택 또는 다른 클라우드 쉘이 지원 선택할 수 있습니다 같은 지역 바인딩에 대한 포트 : 웹 미리보기 포트로 8082
을 선택할 것
gcloud compute ssh my-datalab-cluster-m -- -L 8082:my-datalab-cluster-m:8080
하는 경우.
나와있는 대안이 나를 위해 일했습니다! 정말 고맙습니다! – dobbysock1002