import org.apache.flink.api.common.functions.MapFunction;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.connectors.redis.RedisSink;
import org.apache.flink.streaming.connectors.redis.common.config.FlinkJedisPoolConfig;
import org.apache.flink.streaming.connectors.redis.common.mapper.RedisCommand;
import org.apache.flink.streaming.connectors.redis.common.mapper.RedisCommandDescription;
import org.apache.flink.streaming.connectors.redis.common.mapper.RedisMapper;
/**
* Author:panghu
* Date:2022-05-29
* Description: 输出数据到redis
*/
public class _17SinkToRedisTest {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(1);
DataStreamSource<String> streamSource = env.readTextFile("input/clicks.csv");
// 将字符串封装为Event对象
SingleOutputStreamOperator<Event> mapSource = streamSource.map(new MapFunction<String, Event>() {
@Override
public Event map(String line) throws Exception {
String[] split = line.split(", ");
Event event = new Event(split[0], split[1], Long.valueOf(split[2]));
return event;
}
});
// 创建redis链接配置
FlinkJedisPoolConfig conf = new FlinkJedisPoolConfig.Builder().setHost("hadoop102").build();
mapSource.addSink(new RedisSink<Event>(conf,
new MyRedisMapper()));
env.execute();
}
public static class MyRedisMapper implements RedisMapper<Event> {
@Override
public RedisCommandDescription getCommandDescription() {
// 参数1:redis数据类型 参数2:redis中存储的key
return new RedisCommandDescription(RedisCommand.HSET, "clicks");
}
/**
* 要保存的字段
* @param event
* @return
*/
@Override
public String getKeyFromData(Event event) {
return event.user;
}
/**
* 要保存的值
* @param event
* @return
*/
@Override
public String getValueFromData(Event event) {
return event.url;
}
}
}
Flink将数据写入到redis
最新推荐文章于 2024-12-05 12:02:52 发布
5377

被折叠的 条评论
为什么被折叠?



