Spark+RedisPool,sparkredispool
一个实时项目需要用到Kafka+Spark streaming+Redis,在spark streaming中将计算结果实时存入redis,由于是分布式计算,创建redis pool的时候出现无法序列化的问题,借鉴了以下博文:http://shiyanjun.cn/archives/1097.html,解决了无法序列化的问题,但是方法一(即使用lazy懒加载的机制)中,redis的的配置(hosts和port)只能写死,试了n种方法都不能将这些配置写进配置文件里,最后只能采取第二种方法把对Redis连接的管理放在操作DStream的Output操作范围之内,因为我们知道它是在特定的Executor中进行初始化的,使用一个单例的对象来管理。
但是还是有问题:每次forecachpartition操作时,都会创建一个redispool,而不是只创建一次,所以每次用完要手动close掉,不然会不断增加连接数。
如果有解决好上述问题的博友,麻烦告知一下,不胜感激
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。