0

내 기존 프로젝트는 kafka-spark-cassandra입니다. 이제 gcp 계정을 가지고 있고 spark 작업을 dataproc로 마이그레이션해야합니다. 내 기존 스파크 작업에서 masterip, memory, cores 등과 같은 매개 변수는 리눅스 쉘 스크립트에 의해 트리거되고 새로운 sparkConf를 생성하는 명령 행을 통해 전달됩니다.기존 kafka - spark - cassandra 프로젝트를 google-cloud-platform의 kafka - dataproc - cassandra에 배포하는 방법은 무엇입니까?

발의 conf = 새로운 SparkConf (참) .setMaster (마스터) .setAppName ("XXXX") .setJars (목록 (경로 + "/ xxxx.jar")) 은 .set ("spark.executor. 메모리, 메모리) .set ("spark.cores.max", cores) .set ("spark.scheduler.mode", "FAIR") .set ("spark.cassandra.connection.host", cassandra_ip)

1) dataproc에서 어떻게 구성 할 수 있습니까?

2) 기존의 프로젝트 인 Spark 1.3과 dataproc에서 제공 한 Spark 1.6은 호환성 문제가있을 것입니다. 어떻게 해결할 수 있습니까?

3) Kapka 및 cassandra와 연결하기 위해 dataproc에 필요한 다른 커넥터가 있습니까? 나는 couldnt한다 무엇이라도 발견한다.

답변

1

1) 작업을 제출할 때 인수와 속성을 지정할 수 있습니다 : https://cloud.google.com/sdk/gcloud/reference/dataproc/jobs/submit/spark. 설정할 속성을 결정할 때 Dataproc이 Spark 작업을 yarn-client 모드로 제출한다는 사실을 염두에 두십시오. 일반적으로

, 이것은 당신이 대신이 spark-defaults.conf의 내부 spark.master 값에서 온시키는, 코드에서 직접 master을 지정하지 않도록해야 의미하며, Dataproc에서이 자동으로 설정했을 때 다음 지역 설정이 local 해당 설정 세트를 할 것이다 yarn-client과 함께 필요한 원사 구성 설정이 있습니다.

spark-submit --conf spark.executor.memory=42G --conf spark.scheduler.mode=FAIR 

또는 경우 gcloud으로 통해 Dataproc에 제출 :

마찬가지로 직접 spark-submit을 실행하는 경우, spark.executor.memory 같은 키, 등, 불꽃의 일류 명령 줄을 사용해야

gcloud dataproc jobs submit spark \ 
    --properties spark.executor.memory=42G,spark.scheduler.mode=FAIR 

jar 파일에 해당하는 --jars 플래그를 코드에서 지정하는 대신보고 싶을 수도 있습니다.

2) 배포 할 프로젝트를 빌드 할 때 스파크를 제외해야합니다 (예 : 메이븐의 경우 제공된 스파크 표시). 호환성 문제는 발생할 수 있지만 사용중인 모든 API를 알지 못하면 어떤 식 으로든 말할 수는 없습니다. 알아내는 가장 쉬운 방법은 빌드 설정에서 스파크를 1.6.1에 맞추고 어떤 일이 일어나는지 확인하는 것입니다.

일반적으로 스파크 코어는 GA로 간주되므로 1.X 버전에서 대부분 하위 호환성을 유지해야하지만 mllibSparkSQL과 같은 하위 프로젝트에는 호환성 가이드 라인이 아직 적용되지 않았으므로이를 사용하면 가능성이 큽니다. 새로운 Spark 버전에 맞춰 다시 컴파일해야합니다.

3) 커넥터는 fatjar에 포함되거나 --jars로 지정되거나 초기화 작업을 통해 생성 될 때 클러스터에 설치되어야합니다.

관련 문제