引子
本来这个东西是没啥好写的,但是在帮客户解决问题的时候,发现链路太长,不能怪客户弄不出来,记录一下
需求列表
- 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都是需要的信息
- 白名单添加 100.0.0.0/8 这样可以让maxcompute机器访问 hbase服务
- 最好下载hbase shell 来校验测试是否成功
执行步骤
- 测试代码路径 ~/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
本文档纯粹是自我记录 不是帮助文档