我正在虚拟机上运行spark 2.4.4并以批处理模式阅读kafka主题。什么样的kafka消费者配置会导致这种情况?
收到如下大量消息,并且 Spark 作业将永远运行。
20/06/14 09:00:43 INFO SubscriptionState: [Consumer clientId=consumer-spark-kafka-relation-de56e437-85a0-4431-bb02-faca7b3487ab-executor-2, groupId=spark-kafka-relation-de56e437-85a0-4431-bb02-faca7b3487ab-executor]
Seeking to EARLIEST offset of partition topic-12
20/06/14 09:00:44 INFO SubscriptionState: [Consumer clientId=consumer-spark-kafka-relation-de56e437-85a0-4431-bb02-faca7b3487ab-executor-3, groupId=spark-kafka-relation-de56e437-85a0-4431-bb02-faca7b3487ab-executor]
Resetting offset for partition topic-38 to offset 0.
20/06/14 09:00:44 INFO SubscriptionState: [Consumer clientId=consumer-spark-kafka-relation-de56e437-85a0-4431-bb02-faca7b3487ab-executor-3, groupId=spark-kafka-relation-de56e437-85a0-4431-bb02-faca7b3487ab-executor]
Seeking to LATEST offset of partition topic-38
20/06/14 09:00:44 INFO SubscriptionState: [Consumer clientId=consumer-spark-kafka-relation-de56e437-85a0-4431-bb02-faca7b3487ab-executor-2, groupId=spark-kafka-relation-de56e437-85a0-4431-bb02-faca7b3487ab-executor]
Resetting offset for partition topic-12 to offset 0.
20/06/14 09:00:44 INFO SubscriptionState: [Consumer clientId=consumer-spark-kafka-relation-de56e437-85a0-4431-bb02-faca7b3487ab-executor-2, groupId=spark-kafka-relation-de56e437-85a0-4431-bb02-faca7b3487ab-executor]
Seeking to LATEST offset of partition topic-12
Run Code Online (Sandbox Code Playgroud) 我有两个枚举:
public enum UserType {
USER,
EMPLOYER
}
Run Code Online (Sandbox Code Playgroud)
public enum UserDetails {
USER,
EMPLOYER
}
Run Code Online (Sandbox Code Playgroud)
我尝试通过以下方式进行比较:
if(UserType.USER.equals(UserDetails.USER)){
return true;
}
Run Code Online (Sandbox Code Playgroud)
但我不能因为,我equals()
把这个扔给我:
equals() between objects of inconvertible types 'UserType' and 'UserDetails'
Run Code Online (Sandbox Code Playgroud)
那么,如何比较来自两个不同枚举的两个值?
我正在处理一项任务,使三个线程访问同一个对象并打印当前处理该对象的线程的名称。下面给出的是代码
public class ThreadOne{
public static void main(String args[]){
Test obj=new Test();
new threads(obj);
}
}
class Test{
public synchronized void message(Thread t){
System.out.println(t.getName());
}
}
class Threads implements Runnable{
Thread t1,t2,t3;
public void run(){
}
public threads(test obj){
t1=new Thread(){
public void run(){
obj.message(t1);
}
};
t2 = new Thread() {
public void run() {
obj.message(t2);
}
};
t3 = new Thread() {
public void run() {
obj.message(t3);
}
};
t1.start();
t2.start();
t3.start();
}
}
Run Code Online (Sandbox Code Playgroud)
但是从输出来看,第三个线程在第二个线程之前访问对象,我想要的是线程以同步方式访问对象,即;应该以这种方式访问对象
Thread-0 -> Thread-1 …