添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

spark版本:2.1.1,kafka API版本:0.8

误如下

[WARN ] 2018-01-25 14:54:01,332 org.apache.spark.scheduler.TaskSetManager - Lost task 3.0 in stage 0.0 (TID 3, ip-10-0-155-42.eu-west-1.compute.internal, executor 8): java.lang.NoSuchMethodError: net.jpountz.util.Utils.checkRange([BII)V
    at org.apache.kafka.common.message.KafkaLZ4BlockInputStream.read(KafkaLZ4BlockInputStream.java:176)

原因分析:

kafka-clients和spark的共同依赖 lz4 的版本冲突。

在kafka-clients-0.8.2.1中有两个类KafkaLZ4BlockInputStream和KafkaLZ4BlockOutputStream:

KafkaLZ4BlockInputStream中有一个read方法:

KafkaLZ4BlockOutputStream中有一个write方法:

这两个方法中所引用的net.jpountz.util.Utils类中的checkRange方法是lz4-1.2.0版本中的,在lz4-1.3.0中该方法已被移至net.jpountz.util.SafeUtils中:

Spark-2.1.1中的lz4是1.3.0版本的,所以会出现版本冲突。

解决方案:

1.建一个项目,将 kafka-clients-0.8.2.1中的 KafkaLZ4BlockInputStream和KafkaLZ4BlockOutputStream这两个类拷贝出来,包结构保持一致

2.将上边标红的两处代码改为:

net.jpountz.util.SafeUtils.checkRange(b, off, len);

3. 编译,将编译的.class文件替换掉对应的jar包中的文件


这样spark streaming就能正常消费kafka中的数据了。 spark版本:2.1.1,kafka API版本:0.8错误如下:[WARN ] 2018-01-25 14:54:01,332 org.apache.spark.scheduler.TaskSetManager - Lost task 3.0 in stage 0.0 (TID 3, ip-10-0-155-42.eu-west-1.compute.internal, executor 8):...
消息中间件 Apache kafka 是消息中间件的一种,我发现很多人不知道消息中间件是什么,在开始学习之前,我这边就先简单的解释一下什么是消息中间件,只是粗略的讲解,比较狭义的理解,然而目前像 kafka 这样的消息中间件已经可以做更多的事情了。 举个例子,生产者 消费 者,生产者生产鸡蛋, 消费 消费 鸡蛋,生产者生产一个鸡蛋, 消费 者就 消费 一个鸡蛋,假设 消费 消费 鸡蛋的时候噎住了(系统宕机了),生...
最近用 Spark Streaming从 Kafka 数据 进行处理,是对中文的内容进行计算。发现处理时中文全变成了????????的形式,导致处理的结果和预期的不一样。但把 数据 放在redis或者放入下游的 kafka topic,中文又正常了。为了防止是因为打日志的编码问题导致的判断出错,专门对算法进行了判断,的确就是对?????的东西处理了,而不是原中文字符串。     遇到这种情况,想到的就是编码
kafka 是如何压缩消息的?要弄清楚这个问题,就要从 kafka 的消息格式说起。 kafka 的消息层次分为两层:消息集合(message set)以及消息(message)。一个消息集合包含若干条日志项(recorditem),而日志项才是真正封装消息的地方。 kafka 底层的消息日志由一系列消息集合日志项组成。 kafka 通常不会直接操作具体的一条条消息,它总是在消息集合这个层面上进行写入操作。 在 kafka 中,压缩可能会发生在两个地方:生产者端和broker端。 生产者 程序 中配置compression.t.
tomcat启动 报错 : Java . Lan g. NoSuchMethodError : Org.Apache.Commons.Collections.Set Utils .OrderedSet(L java / Util /Set;)L java / Util /Set; 1. 项目环境: IDE:myeclipse 框架:spring2.5.6+struts2+hibernate3.3.2 web容器:tomc...
org.apache. kafka .common. Kafka Exception: Failed to construct kafka consumer at org.apache. kafka .clients.consumer. Kafka Consumer.<init>( Kafka Consumer. java :717) at org.apache. kafka .clients.consume...
这个错误是 Kafka 出现的一个异常情况,意味着 程序 在运行过程中被强制中断了。具体来说,是由于 程序 在等待某个操作完成时,被外部因素(比如操作系统)强制中断了,导致 程序 无法正常完成该操作并抛出该异常。这个异常通常会在 Kafka 客户端的使用中出现,比如在 数据 消费 者的 消费 过程中。 解决该错误需要找到导致 程序 被中断的具体原因。可能的原因包括操作系统资源耗尽、网络连接不稳定等等。一些具体的解决方案可能包括增加操作系统资源、优化 程序 代码、尝试连接其他网络等等。总之,这个异常提示需要我们注意 程序 在运行过程中可能会出现的问题,及时处理并改进 程序 的运行方式。
pos = self.TP + self.FN for i in range(len(self.db)): tp += self.db[i][0] # 看不懂了. 这里应该替换为一个判断,在标签为1,且预测为1时,tp+ = self.db[i][0] fp += 1 - self.db[i][0] # 看不懂了. 这里应该替换为一个判断,在标签为1,且预测为1时,fp+ = 1 - self.db[i][0] [/code] Python实现分类器性能度量(混淆矩阵,正确率,准确率,召回率,ROC,AUC) Tiger_pop: 我感觉有个地方有问题,不知道对不对: def roc_coord(self): :return: roc坐标 xy_arr = [] tp, fp = 0., 0. neg = self.TN + self.FP pos = self.TP + self.FN for i in range(len(self.db)): tp += self.db[i][0] # 看不懂了. 这里应该替换为一个判断,在标签为1,且预测为1时,tp+ = self.db[i][0] fp += 1 - self.db[i][0] # 看不懂了. 这里应该替换为一个判断,在标签为1,且预测为1时,fp+ = 1 - self.db[i][0] Python实现分类器性能度量(混淆矩阵,正确率,准确率,召回率,ROC,AUC) trophyy: 这个混淆矩阵怎么画的 TensorFlow用训练好的CNN模型检测 小飞鱼_bigdata Cabbage: 看这里持久化模型那段代码https://blog.csdn.net/zryowen123/article/details/79889540