解决 ERROR MicroBatchExecution: Query [] terminated with error net.ConnectException Connection refused

红太狼 2022-10-28 08:01 89阅读 0赞

目录

问题现象

解决方式


问题现象

在实验spark的实时流式处理发现如下错误,具体错误信息如下。

  1. # 具体错误信息
  2. ERROR MicroBatchExecution: Query [id = , runId = ] terminated with error
  3. java.net.ConnectException: Connection refused
  4. at java.net.PlainSocketImpl.socketConnect(Native Method)
  5. at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:666666666)
  6. at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:666666666)
  7. at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:666666666)
  8. at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:666666666)
  9. at java.net.Socket.connect(Socket.java:666666666)
  10. at java.net.Socket.connect(Socket.java:666666666)
  11. at java.net.Socket.<init>(Socket.java:666666666)
  12. at java.net.Socket.<init>(Socket.java:666666666)
  13. at org.apache.spark.sql.execution.streaming.TextSocketSource.initialize(socket.scala:666666)
  14. # 以下应该是大家正在实验的WordCount的demo,但是这个demo有些欠妥的地方,没有说清楚!
  15. from pyspark.sql import SparkSession
  16. from pyspark.sql.functions import explode
  17. from pyspark.sql.functions import split
  18. spark = SparkSession \
  19. .builder \
  20. .appName("StructuredNetworkWordCount") \
  21. .getOrCreate()
  22. # 创建一个监听 localhost:9999的流dataframe
  23. lines = spark \
  24. .readStream \
  25. .format("socket") \
  26. .option("host", "localhost") \
  27. .option("port", 9999) \
  28. .load()
  29. # 将lines打散为单个单词
  30. words = lines.select(
  31. explode(
  32. split(lines.value, " ")
  33. ).alias("word")
  34. )
  35. # 统计每个单词的出现次数
  36. wordCounts = words.groupBy("word").count()
  37. # 输出结果到终端标准输出
  38. query = wordCounts \
  39. .writeStream \
  40. .outputMode("complete") \
  41. .format("console") \
  42. .start()
  43. query.awaitTermination()

解决方式

原因是你没有在启动程序前,先把端口打开!

所以你应该在打开程序之前,先把端口打开,命令如下:

  1. nc -lk 9999

然后就可以了哦~

发表评论

表情:
评论列表 (有 0 条评论,89人围观)

还没有评论,来说两句吧...

相关阅读