报错信息可以看出:由于没有正常的关闭连接,导致连接异常

Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Unexpected end of stream.
  at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:198)
  at redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:40)
  at redis.clients.jedis.Protocol.process(Protocol.java:132)
  at redis.clients.jedis.Protocol.read(Protocol.java:196)
  at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:288)
  at redis.clients.jedis.Connection.getBinaryBulkReply(Connection.java:207)
  at redis.clients.jedis.Connection.getBulkReply(Connection.java:196)
  at redis.clients.jedis.Jedis.get(Jedis.java:98)
  at com.dinpay.bdp.rcp.streaming.WindowHzUtil.setData(WindowHzUtil.java:343)
  at com.dinpay.bdp.rcp.streaming.WindowHzUtil$12$1.call(WindowHzUtil.java:329)
  at com.dinpay.bdp.rcp.streaming.WindowHzUtil$12$1.call(WindowHzUtil.java:325)
  at org.apache.spark.api.java.JavaRDDLike$$anonfun$foreach$1.apply(JavaRDDLike.scala:332)
  at org.apache.spark.api.java.JavaRDDLike$$anonfun$foreach$1.apply(JavaRDDLike.scala:332)
  at scala.collection.Iterator$class.foreach(Iterator.scala:727)
  at org.apache.spark.InterruptibleIterator.foreach(InterruptibleIterator.scala:28)
  at org.apache.spark.rdd.RDD$$anonfun$foreach$1$$anonfun$apply$32.apply(RDD.scala:912)
  at org.apache.spark.rdd.RDD$$anonfun$foreach$1$$anonfun$apply$32.apply(RDD.scala:912)
  at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
  at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:1858)
  at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:66)
  at org.apache.spark.scheduler.Task.run(Task.scala:89)
  at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:213)
  ... 3 more

解决方法:采用jedis连接池实现连接,并关闭连接

import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; private static JedisPool pool = null; public static JedisPool getJedisPool(){ JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(500);
config.setMaxIdle(5);
config.setMaxWaitMillis(1000 * 100);
config.setTestOnBorrow(true);
if(pool == null){
pool = new JedisPool(config, Constant.CODISPROXY, Constant.CODISPORT);
}
return pool;
} 调用方式:
private static Jedis jedis = null;
try {
jedis = CodisUtil.getJedisPool().getResource();
jedis.set()....jedis operations
logger.info(tp._1() + ">>>>>>>>>>>>>" + tp._2());
logger.info("保存到Codis完成!");
} finally {
//回收jedis连接
if(jedis !=null){
jedis.close();
}
}

更多codis的介绍:
https://github.com/xetorthio/jedis/wiki/Getting-started#using-jedis-in-a-multithreaded-environment

Codis连接异常问题处理的更多相关文章

  1. 【转】Android开发中adb启动失败adb连接异常的解决办法 offline

    原文网址:http://www.cnblogs.com/yejiurui/p/4173521.html 一.情况描述: 我们在使用eclipse开发有时候会出现adb连接异常中,有时候控制台会打印出来 ...

  2. JBoss配置解决高并发连接异常问题(转)

    这两天一个项目在做压力测试的时候,发现只要并发数超过250个,连续测试两轮就会有连接异常出现,测试轮数越多出现越频繁,异常日志如下: Caused by: com.caucho.hessian.cli ...

  3. spring+ibatis问题1—— 程序报错:java.sql.SQLException: Io 异常: Connection reset by peer, socket write error; ”或“java.sql.SQLException 关闭的连接”异常

    转自:http://blog.sina.com.cn/s/blog_1549fb0710102whz2.html spring+ibatis程序测试时报错:java.sql.SQLException: ...

  4. TCP连接异常:broken pipe 和EOF

    本文介绍3种TCP连接异常的情况. 1.server端没有启动,client尝试连接 ./client dial failed: dial tcp 127.0.0.1:8080: connect: c ...

  5. Android开发中adb启动失败adb连接异常的解决办法

      一.情况描述:   我们在使用eclipse开发有时候会出现adb连接异常中,有时候控制台会打印出来 adb connect异常 比如会出现下面这样 : [2014-12-18 16:18:26 ...

  6. TCP连接异常断开检测(转)

    TCP是一种面向连接的协议,连接的建立和断开需要通过收发相应的分节来实现.某些时候,由于网络的故障或是一方主机的突然崩溃而另一方无法检测到,以致始终保持着不存在的连接.下面介绍一种方法来检测这种异常断 ...

  7. (转)TCP连接异常断开检测

    TCP是一种面向连接的协议,连接的建立和断开需要通过收发相应的分节来实现.某些时候,由于网络的故障或是一方主机的突然崩溃而另一方无法检测到,以致始终保持着不存在的连接.下面介绍一种方法来检测这种异常断 ...

  8. Redis连接异常

    1. 以指定配置文件启动Redis,否则配置的东西不生效 redis-cli shutdown 关闭 $ redis-server ./redis.conf 2.连接异常 redis.conf 配置文 ...

  9. ADO访问Oracle数据库,连接异常(Unknown error 0x800a0e7a)

    ADO访问Oracle数据库,连接异常(Unknown error 0x800a0e7a) 代码如下:执行Open过程中出现异常,信息为Unknown error 0x800a0e7a  C++ Co ...

随机推荐

  1. [oldboy-django][1初识django]阻止默认事件发生 + ajax + 模态编辑对话框

    阻止默认事件发生 a 阻止a标签默认事件发生方法 <a href="http://www.baidu.com" onclick="modalEdit();" ...

  2. 链表的问题,ListNode问题

    算法面试,有关ListNode的问题 class ListNode{ ListNode *next; int val; ListNode(int x): val(x){}}; 在面试的时候,怎么快速想 ...

  3. UVA11806 Cheerleaders (容斥)

    题目链接 Solution 可以考虑到总方案即为 \(C_{nm}^k\) . 考虑到要求的是边缘都必须至少有 \(1\) ,所以考虑不合法的. 第一行和最后一行没有的方案即为 \(C_{(n-1)m ...

  4. nodejs+express+mongodb搭建博客

    https://github.com/lanleilin/sayHelloBlog 是可以运行的 https://github.com/lanleilin/sayHelloBlog 文件结构如下: c ...

  5. utf-8与unicode

    举一个例子:It's 知乎日报 你看到的unicode字符集是这样的编码表: I 0049 t 0074 ' 0027 s 0073 0020 知 77e5 乎 4e4e 日 65e5 报 62a5 ...

  6. 程序员编写API遵循法则

    Api理解: 1.遵循函数.数据库字段命名规则 2.思考项目的远景(扩展性) 3.思考团队调用是否方便及舒服 4.思考是否有灵动性

  7. spring boot 运行jsp原理分析

    Spring-boot运行jsp原理分析   结论: 启动server的时候会创建临时目录 在浏览器中访问jsp文件的时候通过内置Tomcat将jsp转换为java,保存在临时目录中 然后编译为cla ...

  8. jsp和java获取文件或路径

    1.如何获得当前文件路径常用:(1).Test.class.getResource("")得到的是当前类FileTest.class文件的URI目录.不包括自己!(2).Test. ...

  9. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---20

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  10. i2c 协议解析【转】

    转自:http://blog.csdn.net/g_salamander/article/details/8016698 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.基本概念 主机    ...