【发布时间】:2025-12-09 04:30:01
【问题描述】:
我目前正在使用 apache spark 进行记录器分析。我是 Apache Spark 的新手。我曾尝试使用 apache spark 独立模式。我可以通过在客户端上提交带有部署模式的 jar 来运行我的代码。但我不能使用多节点集群运行。我使用的工作节点是不同的机器。
sh spark-submit --class Spark.LogAnalyzer.App --deploy-mode cluster --master spark://rishon.server21:7077 /home/rishon/loganalyzer.jar "/home/rishon/apache-tomcat-7.0.63/LogAnalysisBackup/"
当我运行此命令时,它显示以下错误
15/10/20 18:04:23 ERROR ClientEndpoint: Exception from cluster was: java.io.FileNotFoundException: /home/rishon/loganalyzer.jar (No such file or directory)
java.io.FileNotFoundException: /home/rishon/loganalyzer.jar (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at org.spark-project.guava.io.Files$FileByteSource.openStream(Files.java:124)
at org.spark-project.guava.io.Files$FileByteSource.openStream(Files.java:114)
at org.spark-project.guava.io.ByteSource.copyTo(ByteSource.java:202)
at org.spark-project.guava.io.Files.copy(Files.java:436)
at org.apache.spark.util.Utils$.org$apache$spark$util$Utils$$copyRecursive(Utils.scala:514)
at org.apache.spark.util.Utils$.copyFile(Utils.scala:485)
at org.apache.spark.util.Utils$.doFetchFile(Utils.scala:562)
at org.apache.spark.util.Utils$.fetchFile(Utils.scala:369)
at org.apache.spark.deploy.worker.DriverRunner.org$apache$spark$deploy$worker$DriverRunner$$downloadUserJar(DriverRunner.scala:150)
at org.apache.spark.deploy.worker.DriverRunner$$anon$1.run(DriverRunner.scala:79)
据我了解,驱动程序将数据和应用程序代码发送到工作节点。我不知道我的理解是否正确。所以请帮我在集群上运行应用程序。
我尝试在集群上运行jar,现在没有异常,但是为什么任务没有分配给工作节点?
我尝试过不进行聚类。它工作正常。如下图所示
上图显示,任务分配给工作节点。但是我还有一个问题要分析日志文件。实际上,我在文件夹中的主节点中有日志文件(例如:'/home/visva/log')。但是工作节点在自己的文件系统上搜索文件。
【问题讨论】:
-
/home/rishon/loganalyzer.jar 是否有 jar - 请确认。
-
我只是将它放在主节点中。不在工作节点中。我想,这个例外是关于工作节点的。
-
Jar 应该只在主节点中。这个 jar 是否存在于 Master 中?
-
我确定。我在主节点中受到了震动。不知道集群中worker节点和master节点是如何工作的?驱动程序代码和应用程序代码,是不同还是相同?我在不同的机器上使用过工作节点,但我不知道我做对了还是错了?请帮助我了解所有这些想法。
-
请看附图
标签: apache-spark apache-spark-sql spark-streaming hadoop-streaming