2016-09-14 2 views
2

다른 서버에있는 HBase 테이블에서 데이터를 검색하는 스파크 작업 (스칼라로 작성)이 있습니다. 이를 위해 먼저 HBaseContext을 다음과 같이 작성하십시오. val hBaseContext:HBaseContext = new HBaseContext(sparkContext, HBaseConfiguration.create())spark-submit 할 hbase-site.xml 지정

spark 작업을 실행할 때 spark-submit을 사용하고 필요한 인수를 지정하십시오. 이런 식으로 뭔가가 :

spark-submit --master=local[*] --executor-memory 4g --executor-cores 2 --num-executors 2 --jars $(for x in `ls -1 ~/spark_libs/*.jar`; do readlink -f $x; done | paste -s | sed -e 's/\t/,/g') --class com.sparksJob.MyMainClass myJarFile.jar "[email protected]" 

것은 그러나 나는 그것이 다른 서버에있는 사육사 (HBase와는 것)에 연결하려면,이 로컬 호스트에 사육사에 연결한다는 것입니다. 그러나

val configuration: Configuration = new Configuration() 
configuration.set("hbase.zookeeper.quorum", "10.190.144.8") 
configuration.set("hbase.zookeeper.property.clientPort", "2181") 
val hBaseContext:HBaseContext = new HBaseContext(sparkContext, HBaseConfiguration.create(configuration)) 

을하지만 난 그것을 구성합니다 :

이 정보를 하드 코딩하는 것은 작동합니다.

어떻게 hbase-site.xml 파일의 경로를 spark-submit으로 지정할 수 있습니까?

+1

zookeeper quorum을 전달하고 scala app 인수를 통해 포트 할 수 있습니까? – maxteneff

+0

JAR 파일에서 HBaseContext를 얻었습니까? Ted Malaska git repo ..이 클래스를 찾을 수 없습니다 .. SBT 또는 POM 파일을 공유 할 수 있습니까? https : // github .com/tmalaska/SparkOnHBase – Manjesh

답변

2

--files 옵션의 매개 변수로 hbase-site.xml을 전달할 수 있습니다. 귀하의 예는 다음과 같습니다 :

spark-submit --master yarn-cluster --files /etc/hbase/conf/hbase-site.xml --executor-memory 4g --executor-cores 2 --num-executors 2 --jars $(for x in `ls -1 ~/spark_libs/*.jar`; do readlink -f $x; done | paste -s | sed -e 's/\t/,/g') --class com.sparksJob.MyMainClass myJarFile.jar "[email protected]" 

마스터가 실 클러스터로 설정되어 있습니다. 다른 옵션을 사용하면 hbase-site.xml이 무시됩니다.

+0

위의 옵션을 시도했지만 여전히 HBase에 연결할 수는 없지만 로컬 모드에서는 잘 작동합니다 ... – Shankar

+0

어떤 스파크 버전을 실행하고 있습니까? '- master '의 값으로 무엇을 사용하고 있습니까? – mgaido

관련 문제