引子
本來這個東西是沒啥好寫的,但是在幫客戶解決問題的時候,發現鍊路太長,不能怪客戶弄不出來,記錄一下
需求清單
- MaxCompute Spark包 (寫文章時刻為版本 0.32.1, 請自行更新,本文不是文檔)
- Spark 配置
spark.hadoop.odps.project.name = <安全資訊>
spark.hadoop.odps.access.id = <安全資訊>
spark.hadoop.odps.access.key = <安全資訊>
spark.executor.instances = 2
spark.executor.cores = 2
spark.executor.memory = 4g
spark.driver.cores = 2
spark.driver.memory = 4g
spark.master = yarn-cluster
spark.hadoop.odps.task.major.version = cupid_v2
spark.sql.catalogImplementation=odps
spark.hadoop.odps.cupid.container.image.enable = true
spark.hadoop.odps.cupid.container.vm.engine.type = hyper
spark.hadoop.odps.end.point = http://service.cn.maxcompute.aliyun.com/api
spark.hadoop.odps.runtime.end.point = http://service.cn.maxcompute.aliyun-inc.com/api
spark.sql.catalogImplementation = odps
spark.hadoop.odps.cupid.vpc.domain.list = 參考文檔 https://github.com/aliyun/MaxCompute-Spark/wiki/09.-VPC-Access%E6%96%87%E6%A1%A3%E8%AF%B4%E6%98%8E
spark.hadoop.odps.cupid.smartnat.enable = 參考文檔 https://github.com/aliyun/MaxCompute-Spark/wiki/09.-VPC-Access%E6%96%87%E6%A1%A3%E8%AF%B4%E6%98%8E
- Spark樣例工程模版
- hbase控制台的vpc id zk endpoint都是需要的資訊
Maxcompute Spark 通路 阿裡雲 Hbase - 白名單添加 100.0.0.0/8 這樣可以讓maxcompute機器通路 hbase服務
Maxcompute Spark 通路 阿裡雲 Hbase - 最好下載下傳hbase shell 來校驗測試是否成功
Maxcompute Spark 通路 阿裡雲 Hbase
執行步驟
- 測試代碼路徑 ~/spark-2.x/src/main/scala/com/aliyun/odps/spark/examples/SparkPi.scala
- 解壓樣例工程 mvn clean package 記得改掉SparkPi檔案裡的 zkAddress 之後才測試
- 如果表沒有建立,需要用代碼裡面注釋掉的建立表代碼先建立表
- 執行指令
bin/spark-submit --master yarn-cluster --properties-file ~/SparkConf/spark-defaults.conf --class com.aliyun.odps.spark.examples.SparkPi ~/Code/github/mc-spark-examples/spark-2.x/target/spark-examples_2.11-1.0.0-SNAPSHOT-shaded.jar
- --master local表示本地執行 zkAddress用的是hbase外網位址,如果是--master yarn-cluster則表示送出到叢集執行,用的是專用網絡位址
- 下載下傳了hbase-shell之後,本地更改 conf/hbase-site.xml
并且記得把本地的公網ip加到hbase白名單裡,不然也通路不了
<configuration>
<property>
<name>hbase.zookeeper.quorum</name>
<value>這裡填外網位址</value>
</property>
</configuration>
- hbase指令
bin/hbase shell
list
scan 'test'
如果hbase shell裡能夠看到你寫入的記錄,就差不多了
同時需要關注的是,alihbase不能直接用社群的hbase client包通路,詳細看樣例工程還有他們的文檔
https://help.aliyun.com/document_detail/166161.html?spm=a2c4g.11174283.6.833.1ec9363feo117z本文檔純粹是自我記錄 不是幫助文檔