0

Google Dataproc/Spark에서 Python2.7을 사용하는 권장 엔진을 구현했으며 이후 App Engine API에서 사용하기 위해 출력을 Datastore의 레코드로 저장해야합니다. 그러나이를 직접 수행하는 방법이없는 것 같습니다.Dataproc에서 Datastore로 데이터 저장

Dataproc에 대한 Python Datastore 커넥터는 없습니다. Python Dataflow SDK는 Datastore에 대한 쓰기 기능을 지원하지 않습니다 (Java 코드 기능은 지원하지만). MapReduce에는 Datastore 용 출력 기록 장치가 없습니다.

많은 옵션을 남기지 않는 것으로 보입니다. 지금은 레코드를 Google Cloud Storage에 쓰고 App Engine에서 별도의 작업을 실행하여 데이터를 수집하고 Datastore에 저장해야합니다. 이상적이지는 않습니다. 두 프로세스를 조정하는 데는 자체적 인 어려움이 있습니다.

Dataproc에서 Datastore로 데이터를 가져 오는 더 좋은 방법이 있습니까?

답변

0

과거에 Cloud Dataproc 팀은 Datastore Connector for Hadoop을 유지했지만 여러 가지 이유로 인해 사용되지 않았습니다. 현재 개발을 재개하려는 공식 계획은 없습니다.

위에서 언급 한 페이지에는 몇 가지 옵션이 있으며 접근 방법은 언급 된 해결책 중 하나입니다. 이 시점에서 Cloud Datastore에 전념한다면 설정이 아마도 가장 쉬운 것 중 하나라고 생각합니다.

+0

페이지가 잘못 표시되는 것 같습니다. 주어진 옵션 중에서 옵션 1은 불가능합니다. Python Dataflow SDK는 Datastore에 대한 쓰기를 지원하지 않으며, MapReduce가 Dataproc에없는 많은 서비스를 기대하기 때문에 옵션 2는 어렵지 않습니다. MapReduce가 memcache 서비스를 찾고있을 때 포기했던 신원 서비스). 옵션 3이 가능하지만 AppEngine에서 다른 작업을 동기화하는 경우가 있습니다. 이는 내 용도에 맞지 않습니다. 옵션 4는 Datastore 로의 입력이 아니라 Datastore에서의 입력과 관련됩니다. – nanojack

2

Dataproc에서 Datastore 레코드를 저장하는 데 성공했습니다. 이

이 애플리케이션 엔진 SDK를가 설치되어있는 마스터 VM (콘솔에서 SSH)에 대한 추가 구성 요소를 설치 참여하고

sudo apt-get install google-cloud-sdk-app-engine-python 
sudo gcloud init 

/usr/lib/google-cloud-sdk/platform/google_appengine/에 새 구글 디렉토리 배치를 사용하여 초기화.

데이터 스토어 라이브러리는 다음 이해하기 나는 아직 이유로

sudo apt-get install python-dev 
sudo apt-get install python-pip 
sudo pip install -t /usr/lib/google-cloud-sdk/platform/google_appengine/ google-cloud-datastore 

를 통해 설치되어,이 사실은 내 목적은 구성 요소를 수동으로 이동하는 데 필요한이었다, 그래서 /usr/lib/google-cloud-sdk/platform/google_appengine/google/google에 즉, 한 단계 낮은에 설치 경로의 한 수준 위로

이 코드를 찾기 위해 통역사를 활성화하려면 경로에 /usr/lib/google-cloud-sdk/platform/google_appengine/을 추가해야했습니다. 일반적인 BASH 트릭은 지속되지 않아 추천 엔진을 시작할 때이 작업을 끝내게되었습니다.

많은 양의 데이터를 저장할 수 있으므로 MapReduce를 통해 저장하려고 많은 시간을 보냈습니다. 궁극적으로 나는 Dataproc에서 너무 많은 필수 서비스가 빠져 있다는 결론에 도달했습니다. 대신 수용 가능한 성능을 얻고있는 다중 처리 풀을 사용하고 있습니다.

관련 문제