全部产品

Spark对接TableStore快速指导

更新时间:2019-05-27 15:01:05

简介

表格存储(TableStore)是阿里云自研的面向海量结构化数据存储的Serverless NoSQL多模型数据库。

这里主要介绍通过“数据工作台”使用Spark对接TableStore数据表的使用方法。

前置条件

  1. TableStore 实例已创建。
    本例中TableStore的实例区域为“华南1(深圳)”,名称为:test-store,实例的网络类型为VPC且VPC和Spark集群VPC保持一致。
    通过如下方法查看Spark集群VPC信息:进入Spark分析集群页面,选择“数据库连接”>“连接信息”,查看Spark集群的VPC ID信息。如下图:
  2. TableStore 表已创建.
    本例中使用的TableStore的表名为:mysampletable,创建方法参考:https://help.aliyun.com/document_detail/34160.html?spm=a2c4g.11186623.2.16.2c0d7c258Wq4uB
  1. #创建一个全新的表
  2. ts> create -t mysampletable --pk '[{"C":"uid","t":"string"}, {"c":"pid","t":"integer"}]' --ttl 864000 --version 1
  3. '''
  4. 创建一张表:mysampletable ,
  5. 并指定两列主键,分别是uid(string)和pid(integer)
  6. 设置数据声明周期为 864000秒(10天),版本数为1
  7. '''
  8. # 使用该表
  9. ts> use -t mysampletable
  10. # 插入数据
  11. ts> put --pk '["86", 6771]' --attr '[{"c":"name", "v":"redchen1"}, {"c":"country", "v":"china"}]'
  12. ts> put --pk '["86", 6772]' --attr '[{"c":"name", "v":"redchen2"}, {"c":"country", "v":"china"}]'
  13. ts> put --pk '["86", 6773]' --attr '[{"c":"name", "v":"redchen3"}, {"c":"country", "v":"china"}]'
  14. ts> put --pk '["86", 6774]' --attr '[{"c":"name", "v":"redchen4"}, {"c":"country", "v":"china"}]'

使用“数据工作台”>“作业管理”运行样例

步骤 1:通过“资源管理”上传样例代码Jar包

下载样例代码jar包“spark-examples-0.0.1-SNAPSHOT-shaded.jar”到以及依赖jar包本地目录。

  1. wget https://spark-home.oss-cn-shanghai.aliyuncs.com/spark_example/spark-examples-0.0.1-SNAPSHOT-shaded.jar
  2. wget https://spark-home.oss-cn-shanghai.aliyuncs.com/spark_connectors/spark-tablestore-4.11.0_2.3.2-1.0-SNAPSHOT.jar
  3. wget https://spark-home.oss-cn-shanghai.aliyuncs.com/spark_connectors/tablestore-4.11.0-jar-with-dependencies.jar

在“数据工作台”>“资源管理”中添加文件夹“spark_on_tablestore”。上传下载的三个jar包到此文件夹。如下图:

步骤 2:通过“作业管理”创建并编辑作业内容

在“数据工作台”>“作业管理”中创建Spark作业,作业内容如下:

  1. --class com.aliyun.spark.tablestore.JavaSparkOnTableStore
  2. --jars /spark_on_tablestore/spark-tablestore-4.11.0_2.3.2-1.0-SNAPSHOT.jar,/spark_on_tablestore/tablestore-4.11.0-jar-with-dependencies.jar
  3. --driver-memory 1G
  4. --driver-cores 1
  5. --executor-cores 2
  6. --executor-memory 2G
  7. --num-executors 2
  8. --name spark_on_loghub
  9. /spark_on_tablestore/spark-examples-0.0.1-SNAPSHOT.jar
  10. http://shenzehn01-test-store.cn-shenzhen.vpc.ots.aliyuncs.com xxx1 xxx2
  11. test-store mysampletable

作业内容参数说明:

参数 说明
xxx1 xxx2 分别为具备访问TableStore权限的AccessKey ID 和AccessKeySecret。
http://shenzehn01-test-store.cn-shenzhen.vpc.ots.aliyuncs.com TableStore的VPC访问地址。
test-store mysampletable 分别为TableStore的实例名称和表名。

作业内容如下图:

步骤 3:通过“作业管理”运行作业并查看结果

作业编辑完成后点击“运行”,选择Spark集群。运行状态会在下侧显示,如图:


运行成功后点击“YarnUI”,翻到最后看到类似如下结果表明Spark读取TableStore成功。如下:

  1. TOTAL: 4

小结