全部产品
云市场

Spark对接Redis快速入门

更新时间:2019-08-14 17:02:51

简介

阿里云数据库 Redis 版(ApsaraDB for Redis)是兼容开源 Redis 协议的 Key-Value 类型在线存储服务。它支持字符串(String)、链表(List)、集合(Set)、有序集合(SortedSet)、哈希表(Hash)等多种数据类型,及事务(Transactions)、消息订阅与发布(Pub/Sub)等高级功能。通过“内存+硬盘”的存储方式,云数据库 Redis 版在提供高速数据读写能力的同时满足数据持久化需求。
主要介绍通过“数据工作台”使用Spark对接Redis数据库的使用方法。

前置条件

  1. Spark集群和Redis在同一个VPC下。
    进入Spark分析集群页面,选择“数据库连接”>“连接信息”,查看Spark集群的VPC ID信息。如下图:
  2. Redis已配置Spark集群的白名单。
    首先在阿里云控制台进入“专有网络VPC”,找到Spark集群的VPC ID对应的IPv4网段。如下图:
    然后进入Redis集群配置白名单,添加上述IPv4网段。如下图:

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

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

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

  1. wget https://spark-home.oss-cn-shanghai.aliyuncs.com/spark_example/spark-examples-0.0.1-SNAPSHOT.jar
  2. wget https://spark-home.oss-cn-shanghai.aliyuncs.com/spark_connectors/ali-spark-redis-2.3.1-SNAPSHOT_2.3.2-1.0-SNAPSHOT.jar
  3. wget https://spark-home.oss-cn-shanghai.aliyuncs.com/spark_connectors/commons-pool2-2.0.jar
  4. wget https://spark-home.oss-cn-shanghai.aliyuncs.com/spark_connectors/jedis-3.0.0-20181113.105826-9.jar

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

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

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

  1. --class com.aliyun.spark.redis.SparkOnRedisSparkSession
  2. --jars /spark_on_redis/ali-spark-redis-2.3.1-SNAPSHOT_2.3.2-1.0-SNAPSHOT.jar,/spark_on_redis/commons-pool2-2.0.jar,/spark_on_redis/jedis-3.0.0-20181113.105826-9.jar
  3. --driver-memory 1G
  4. --driver-cores 1
  5. --executor-cores 1
  6. --executor-memory 2G
  7. --num-executors 1
  8. --name spark_on_polardb
  9. /spark_on_redis/spark-examples-0.0.1-SNAPSHOT.jar
  10. r-xxx.redis.rds.aliyuncs.com 6379 xxx1 redis01

作业内容参数说明:

参数 说明
r-xxx.redis.rds.aliyuncs.com 6379 分别是Redis数据库“连接信息”的“内网连接地址(host)”和“端口号(port)”。
xxx1 Redis数据库登陆密码。
redis01 Redis数据库的表名。

作业内容如下图:

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

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


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

  1. +-----+---+---------------+------+
  2. | name|age| address|salary|
  3. +-----+---+---------------+------+
  4. |Peter| 35|110 Wall Street| 200.3|
  5. | John| 30| 60 Wall Street| 150.5|
  6. +-----+---+---------------+------+
  7. +-----+------+---+---------------+--------------------+
  8. | name|salary|age| address| _id|
  9. +-----+------+---+---------------+--------------------+
  10. |Peter| 200.3| 35|110 Wall Street|38db1359615848fb8...|
  11. | John| 150.5| 30| 60 Wall Street|aa00b18e061546de9...|
  12. +-----+------+---+---------------+--------------------+
  13. +-----+---+---------------+------+
  14. | name|age| address|salary|
  15. +-----+---+---------------+------+
  16. |Peter| 35|110 Wall Street| 200.3|
  17. | John| 30| 60 Wall Street| 150.5|
  18. +-----+---+---------------+------+

小结