Java 如何避免“连续性”;“重置偏移量”;及;寻求最新的补偿;?
我试图遵循以下指南: 但我不知道为什么我在大多数情况下不向控制台写入数据,为什么它会发送垃圾邮件执行线程日志?Java 如何避免“连续性”;“重置偏移量”;及;寻求最新的补偿;?,java,apache-spark,apache-kafka,spark-structured-streaming,Java,Apache Spark,Apache Kafka,Spark Structured Streaming,我试图遵循以下指南: 但我不知道为什么我在大多数情况下不向控制台写入数据,为什么它会发送垃圾邮件执行线程日志? 我需要配置什么吗? 这是我的代码: SparkSession spark = SparkSession .builder() .appName("Testing") .config("spark.master", "local") .getOrCreate(); StructType recordSchema
我需要配置什么吗? 这是我的代码:
SparkSession spark = SparkSession
.builder()
.appName("Testing")
.config("spark.master", "local")
.getOrCreate();
StructType recordSchema = new StructType()
.add("description", "string")
.add("location", "string")
.add("id", "string")
.add("title", "string")
.add("company", "string")
.add("place", "string")
.add("date", "string")
.add("senorityLevel", "string")
.add("function", "string")
.add("employmentType", "string")
.add("industries", "string");
Dataset<Row> df = spark
.readStream()
.format("kafka")
.option("kafka.bootstrap.servers", "127.0.0.1:9092")
.option("subscribe", "linkedin-producer")
.option("startingOffsets", "earliest")
.option("kafka.group.id","test")
.load();
StreamingQuery query = df
.selectExpr("CAST(key AS STRING)", "CAST(value AS STRING)")
.select(from_json(col("value").cast("string"), recordSchema).as("data"))
.select("data.*")
.writeStream()
.outputMode(OutputMode.Append())
.format("console")
.start();
try {
query.awaitTermination(10000);
} catch (StreamingQueryException e) {
e.printStackTrace();
}
pom.xml:
<!--Spark-->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql-kafka-0-10_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka-0-10_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-avro_2.12</artifactId>
<version>3.0.0</version>
</dependency>
org.apache.spark
spark-core_2.12
3.0.0
org.apache.spark
spark-U 2.12
3.0.0
org.apache.spark
spark-sql_2.12
3.0.0
org.apache.spark
spark-sql-kafka-0-10_2.12
3.0.0
org.apache.spark
spark-streaming-kafka-0-10_2.12
3.0.0
org.apache.spark
spark-avro_2.12
3.0.0
您正在获取记录器信息,因为您使用了默认日志记录级别作为信息。通过spark.sparkContext.setLogLevel(“WARN”)
将日志记录级别设置为WARN,因为您使用了默认日志记录级别作为信息,所以您将获得日志记录程序信息。将日志记录级别设置为通过spark.sparkContext.setLogLevel(“警告”)
发出警告,因为我知道您只想运行作业10秒,因为您在中使用了超时
为了避免您的工作不断检查卡夫卡中是否有可用的新邮件,您可以在writeStream
中设置:
.writeStream()
.outputMode(outputMode.Append())
.option(“checkpointLocation”,“/tmp/java/checkpoint/spark”)
.trigger(trigger.ProcessingTime(“1秒”)#可选
//.trigger(trigger.Once())
.格式(“控制台”)
.start();
这只会每秒检查卡夫卡中的新消息,因此每秒只会看到一次“查找”和“重置”日志
您可能还对触发器.Once()
备选方案感兴趣。据我所知,您只想运行作业10秒钟,因为您在等待终止
中使用了超时
为了避免您的工作不断检查卡夫卡中是否有可用的新邮件,您可以在writeStream
中设置:
.writeStream()
.outputMode(outputMode.Append())
.option(“checkpointLocation”,“/tmp/java/checkpoint/spark”)
.trigger(trigger.ProcessingTime(“1秒”)#可选
//.trigger(trigger.Once())
.格式(“控制台”)
.start();
这只会每秒检查卡夫卡中的新消息,因此每秒只会看到一次“查找”和“重置”日志
您可能还对Trigger.Once()
备选方案感兴趣。您的Spark日志级别是多少?您使用的是哪种spark sql卡夫卡版本?(可能显示所有依赖项)您如何运行/提交应用程序以及在何处运行/提交应用程序?嗨,伙计们,谢谢你们的帮助;我添加了pom.xml,您可以在那里看到版本。我在Java上运行这个,Spark的日志级别是多少?您使用的是哪种spark sql卡夫卡版本?(可能显示所有依赖项)您如何运行/提交应用程序以及在何处运行/提交应用程序?嗨,伙计们,谢谢你们的帮助;我添加了pom.xml,您可以在那里看到版本。我在javaHi himanshu上运行这个,我尝试了spark.sparkContext().setLogLevel(“警告”)代码>和我仍然得到所有这些日志:(编辑:为了使这项工作有效,我必须在我的类中创建一个日志记录器:LoggerFactory.getLogger(Spark.class);
嗨,himanshu,我尝试了Spark.sparkContext().setLogLevel(“WARN”);
和我仍然得到所有这些日志:(编辑:为了使这一切正常工作,我必须在我的类中创建一个记录器:LoggerFactory.getLogger(Spark.class)
Hi Mike!我想这是正确的方法,但我仍然为
日志获取所有这些流执行线程。但我想这与日志级别或其他相关Hi Mike!我想这是正确的方法,但我仍然为
日志获取所有这些流执行线程。但我想这是相对的ted到日志级别还是什么的
<!--Spark-->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql-kafka-0-10_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming-kafka-0-10_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-avro_2.12</artifactId>
<version>3.0.0</version>
</dependency>