8.1 离线项目预备知识
8.1.1 什么是 DStream
DSream 代表了一系列连续的RDD,DStream中每个RDD包含特定时间间隔的数据
8.1.2 常用算子
算子名称 | 说明 |
---|---|
map | 对每个传入的元素,返回一个新的元素 |
flatMap | 对每个传入的元素,返回一个或多个元素 |
fliter | 对传入的元素返回 true 或 false,返回 false 的元素将会被过滤掉 |
union | 将连个 Dsrteam 进行合并 |
count | 返回元素的个数 |
reduce | 对所有 value 进行聚合 |
countByKey | 对元素按照值进行分组,对每个组进行计数,最后返回 |
reduceByKey | 对 Key 对应的 values 进行聚合 |
join | 对两个 Dstream 进行 join 操作,每个链接起来的 pair,作为新 Dstream 的 RDD 的一个元素 |
transform {rdd=>rdd} | rdd 到 rdd 的转换 |
updateStateByKey | 为每一个rdd中的key ,保留状态,持续更新 ps: 在大规模数据场景下,可以用redis替代 |
window | 滑动窗口,滑动窗口和滑动步长必须是取数周期的整数倍 |
8.1.3 redis 知识
1. 启动服务端
redis-server /opt/module/redis-3.2.5/redis.conf
2. 启动客户端
redis-cli
3. 五种 value 类型
4. set 基本操作
SADD key member // 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略
SMEMBERS key // 去除该集合的所有值
SREM key member [member ...] // 从集合中删除元素
5. hash 基本操作
HGETALL key // 获取指定key的所有信息(field和value)
HINCRBY key field increment // 为指定key的field加上增量increment
6. 创建 redis 连接
new Jedis(redisIp, redisPort)