简介

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

主要介绍通过“数据工作台”使用Spark对接Redis数据库的使用方法。

前置条件Spark集群和Redis在同一个VPC下。

进入Spark分析集群页面,选择“数据库连接”>“连接信息”,查看Spark集群的VPC ID信息。如下图:

Redis已配置Spark集群的白名单。

首先在阿里云控制台进入“专有网络VPC”,找到Spark集群的VPC ID对应的IPv4网段。如下图:

然后进入Redis集群配置白名单,添加上述IPv4网段。如下图:

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

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

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

wget https://spark-home.oss-cn-shanghai.aliyuncs.com/spark_example/spark-examples-0.0.1-SNAPSHOT.jar

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

wget https://spark-home.oss-cn-shanghai.aliyuncs.com/spark_connectors/commons-pool2-2.0.jar

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作业,作业内容如下:

--classcom.aliyun.spark.redis.SparkOnRedisSparkSession

--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

--driver-memory1G

--driver-cores1

--executor-cores1

--executor-memory2G

--num-executors1

--name spark_on_polardb

/spark_on_redis/spark-examples-0.0.1-SNAPSHOT.jar

r-xxx.redis.rds.aliyuncs.com6379xxx1 redis01

作业内容参数说明:

参数 说明

r-xxx.redis.rds.aliyuncs.com 6379 分别是Redis数据库“连接信息”的“内网连接地址(host)”和“端口号(port)”。

xxx1 Redis数据库登录密码。

redis01 Redis数据库的表名。

作业内容如下图:

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

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

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

+-----+---+---------------+------+

|name|age|address|salary|

+-----+---+---------------+------+

|Peter|35|110WallStreet|200.3|

|John|30|60WallStreet|150.5|

+-----+---+---------------+------+

+-----+------+---+---------------+--------------------+

|name|salary|age|address|_id|

+-----+------+---+---------------+--------------------+

|Peter|200.3|35|110WallStreet|38db1359615848fb8...|

|John|150.5|30|60WallStreet|aa00b18e061546de9...|

+-----+------+---+---------------+--------------------+

+-----+---+---------------+------+

|name|age|address|salary|

+-----+---+---------------+------+

|Peter|35|110WallStreet|200.3|

|John|30|60WallStreet|150.5|

+-----+---+---------------+------+

小结

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐