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

apache-spark 1.3.0和yarn集成以及spring-boot作为容器

艾星河
2023-03-14

我使用Spark1.0.2和独立模式,将spark应用程序作为查询服务运行(很像spark-shell,但在spring-boot的servlet容器中)。现在,在升级到Spark1.3.1并尝试使用Yarn而不是独立的集群之后,事情对我来说就变得南辕北辙了。我创建了具有所有依赖项(spark-core、spark-yarn、spring-boot)的uber jar,并尝试部署我的应用程序。

15/07/29 11:19:26 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032

15/07/29 11:19:27 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)

15/07/29 11:19:28 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)

15/07/29 11:19:29 INFO ipc.Client: Retrying connect to server: 0.0.0.0/0.0.0.0:8032. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS)

我还试图排除spark-yarn依赖项,并在运行时提供了它,但同样例外。我们使用MapR发行版,他们说如果不使用spark-submit脚本,就不可能在yarn上运行spark作业。我可以尝试使用该脚本启动我的webapp,因为我的构建工件是spring-boot jar(而不是war),但这感觉不太对。我应该能够从我的容器初始化服务,而不是其他方式。

编辑1:我如何启动我的应用程序:我从安装和配置hadoop客户机的机器上启动它。

java -cp myspringbootapp.jar com.myapp.Application

com.myapp.application反过来将SparkContext创建为spring托管bean。我稍后使用它来服务用户请求。

共有1个答案

端木宏盛
2023-03-14

我只用了几个步骤:1)从uber jar中排除hadoop jar(spring-boot maven plugin默认提供uber jar,您需要进行排除)2)在spring boot maven plugin中使用ZIP布局,允许您在运行时使用Loader.Path spring配置来提供额外的类路径。3)使用java-loader.path='/path/to/hadoop/jar,/path/to/hadoop/conf/'-jar myapp.jar

我得到的错误是由于hadoop jar在类路径上没有正确的配置文件。默认情况下,hadoop jar用yarn-default.xml打包,它试图将资源管理器定位在0.0.0.0/0.0.0.0:8032。您仍然可以尝试打包hadoop jar,但一定要提供到自定义hadoop conf的路径。即yarn-site.xml,它为您的资源管理器主机、端口、ha等设置了适当的设置。

 类似资料:
  • 我试图在我的Spring Boot项目中使用PowerMockito,但遇到了一个奇怪的问题。我正在使用PowerMockito模拟第三方库中的许多静态方法。 我的测试类遵循这个模式, 抽象测试类, 这很好,我可以模拟静态方法e.t.c,但当我引入第二个测试类时,我得到了以下错误:, 我的测试配置类如下所示,它加载了一个嵌入式Cassandra, 对我来说,它看起来像是试图添加一个已经存在的。有人

  • 我使用的是spring boot 2.1.7版本和keycloak-spring-boot-2-starter:4.0.0.final版本。这个keycloak-spring-boot-2-starter自动下载所需的keycloak适配器依赖项,对应于4.0.0..keycloak适配器依赖项的最终版本。现在,当我调用受keycloak保护的资源(rest api需要由keycloak服务器授权

  • 我当前的项目使用的是Apache camel,我正在创建不应该使用camel的路由,而只是使用spring(使用一个控制器) 有人能给我指出一个例子,它有骆驼路线,但也有控制器类,使用简单的spring boot。

  • 我是新的阿帕奇骆驼,刚刚开始。我有一个spring boot(MVC)+mongodb项目已经运行良好,当我试图将其与apache camel集成时,控制台出现异常。根据我对异常的理解,spring boot试图说明,当我在项目的任何其他地方使用时,我不能在骆驼路由文件上使用默认的notaion。因为它是一个MVC架构,我有控制器、服务和存储库,我不能忽略,请帮助我解决这个问题。 控制台异常 启动

  • 我尝试使用Spring集成HTTP开发SpringBoot Rest服务器- 我有一个控制器,用“@Controller”和“@RequestMapping”注释,并尝试创建以下流: 获取请求"/"- 但它不起作用。 我的集成Xml: 错误是: 但在我看来,控制器应该是通过Request Map注释的订阅者... 我上传了一个示例github项目:https://github.com/marcel

  • 我使用的是Spring Boot1.4、Spock和Spring-boot-starter-security。这是我的相关年级档案: 我还将其添加到我的application-test.properties文件中: 我的基测试类将启动一个嵌入式Tomcat实例并使所有endpoint可用,并且有一个获取JWT的方法: 当我尝试运行示例测试时: 我得到以下信息: