当前位置: 首页 > 知识库问答 >
问题:

当从Java应用程序独立连接到Spark时,为什么会抛出“无法在停止的SparkContext上调用方法”?

桓信鸥
2023-03-14
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>1.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.11</artifactId>
            <version>1.4.1</version>
        </dependency>
private parkConf sparkConfig = new SparkConf(true)
            .setAppName("Spark Worker")
            .setMaster("spark://192.168.0.105:7077");
private SparkContext sparkContext = new SparkContext(sparkConfig);
java.lang.IllegalStateException: Cannot call methods on a stopped SparkContext
    at org.apache.spark.SparkContext.org$apache$spark$SparkContext$$assertNotStopped(SparkContext.scala:103)
    at org.apache.spark.SparkContext.getSchedulingMode(SparkContext.scala:1503)
    at org.apache.spark.SparkContext.postEnvironmentUpdate(SparkContext.scala:2007)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:543)
    at com.storakle.dataimport.spark.StorakleSparkConfig.getSparkContext(StorakleSparkConfig.java:37)
    at com.storakle.dataimport.reportprocessing.DidNotBuyProductReport.prepareReportData(DidNotBuyProductReport.java:25)
    at com.storakle.dataimport.messagebroker.RabbitMQMessageBroker$1.handleDelivery(RabbitMQMessageBroker.java:56)
    at com.rabbitmq.client.impl.ConsumerDispatcher$5.run(ConsumerDispatcher.java:144)
    at com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:99)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
private parkConf sparkConfig = new SparkConf(true)
                .setAppName("Spark Worker")
                .setMaster("local");

我不知道为什么会这样?到目前为止,我找到的每个文档和示例都表明代码应该与Spark Master URL一起工作。

你知道为什么会发生这种事吗?我该怎么解决它?我花了很多时间想弄清楚这件事,但到目前为止还没有运气。

共有1个答案

颛孙庆
2023-03-14

我认为您将Spark1.4.1用于Scala2.10。因此,您需要spark-core2.10spark-streaming2.10来代替2.11spark-core2.11与为Scala2.10构建的Spark不兼容。

有关为Scala2.11构建Spark,请参见:

http://spark.apache.org/docs/latest/building-spark.html#building-for-scala-211

 类似资料:
  • 问题内容: 我已经下载了为Hadoop 2.6及更高版本预构建的Apache Spark 1.4.1。我有两台Ubuntu 14.04机器。我已将其中一个设置为具有单个从属设备的Spark主设备,第二台机器正在运行一个Spark从属设备。当我执行命令时,主机和从机成功启动。之后,我在Spark Web UI中显示的Spark主URL 设置中运行示例PI程序。 到目前为止,一切都很好。 我创建了一个

  • 我的项目使用不间断的SQL/MX作为RDBMS数据库,这是HP的产品。我无法使用SpringBoot在应用程序中定义JDBCURL、用户和密码的标准实践连接到数据源。属性文件。 这是错误:

  • 我试图运行一个连接到本地独立spark集群的java应用程序。我使用start-all.sh以默认配置启动集群。当我转到集群的web页面时,它被启动为OK。我可以用SparkR连接到这个集群,但是当我使用相同的主URL从Java内部连接时,我会得到一条错误消息。 下面是Spark日志中的输出:

  • 我在写一个玩家轮流参加的游戏。在一个回合结束时,我将我的数据发送到服务器,并更新我的数据库,让我知道现在轮到另一个玩家了。问题是,如果有人在中途扼杀了应用程序怎么办?我是说去找任务经理然后杀了它。 编辑:我还应该提到这是在一个片段中,我正在检查这个,但不要认为这会有什么不同。

  • 我按照以下链接上的教程:教程Spring MVC,我使用了Ubunto、MySQL和Eclipse,但在运行时我收到了一个错误,在错误的跟踪下方: 根本原因 org.springframework.aop.framework.CannotCreateTransactionException:无法为事务打开Hibernate会话;嵌套异常nterceptor.interceptJDBCConnect

  • 我期望这段代码(在对细化类型使用模式匹配后调用匿名类的方法) 要打印 (以及未经检查的警告)。 我知道由于类型擦除,匹配总是成功的,但这不应该导致问题,因为的运行时类型(甚至考虑擦除)应该是