Я пытаюсь создать простое приложение Quarkus с помощью Apache Spark, чтобы затем развернуть его в кластере Kubernetes. Приложение запускается без ошибок (режим разработки Quarkus), но по какой-то причине оно не может создать SparkSession (здесь также нет ошибок, приложение просто зависает, когда я вызываю конечную точку отдыха, которая использует SparkSession).
В приведенном ниже коде, когда я пишу «return sparkSessionBean.toString();» в методе "hello" exampleResource он работает правильно, но когда я пытаюсь "вернуть sparkSessionBean.getSpark().toString();" запрос зависает навсегда, никаких ошибок.
Когда я запускаю тот же код в автономном приложении с основным методом (без Quarkus), он работает правильно (создает SparkSession и выполняет какое-то задание).
Я тестировал это на Quarkus 3.5.3 и 3.8.1 + Spark 3.5.0 + Java 17.
Есть ли проблемы с использованием Spark? с Quarkus?
Ресурс:
package com.example;
import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
@Path("/hello")
public class ExampleResource {
@Inject
SparkSessionBean sparkSessionBean;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return sparkSessionBean.getSpark().toString();
}
}
SparkSessionBean:
package com.example;
import jakarta.enterprise.context.ApplicationScoped;
import org.apache.spark.sql.SparkSession;
@ApplicationScoped
public class SparkSessionBean {
private static final String WAREHOUSE_PATH = "s3a://iceberg";
private SparkSession spark;
public SparkSession getSpark() {
if (spark == null) {
spark = SparkSession.builder()
.appName("Java Spark Iceberg Example")
.master("local")
.config("spark.ui.enabled", "false")
//Filesystem (MinIO) config
.config("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
.config("fs.s3a.endpoint", "http://localhost:9000")
.config("fs.s3a.access.key", "key123")
.config("fs.s3a.secret.key", "secret123")
.config("fs.s3a.path.style.access", "true")
.config("spark.sql.warehouse.dir", WAREHOUSE_PATH)
//Nessie catalog config
.config("spark.jars.packages", "org.apache.iceberg:iceberg-spark-runtime-3.5_2.13:1.3.0,org.projectnessie.nessie-integrations:nessie-spark-extensions-3.5_2.13:0.77.1")
.config("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions,org.projectnessie.spark.extensions.NessieSparkSessionExtensions")
.config("spark.sql.catalog.nessie", "org.apache.iceberg.spark.SparkCatalog")
.config("spark.sql.catalog.nessie.catalog-impl", "org.apache.iceberg.nessie.NessieCatalog")
.config("spark.sql.catalog.nessie.authentication.type", "NONE")
.config("spark.sql.catalog.nessie.uri", "http://localhost:19120/api/v1")
.config("spark.sql.catalog.nessie.ref", "main")
.config("spark.sql.defaultCatalog", "nessie")
.config("spark.sql.catalog.nessie.warehouse", WAREHOUSE_PATH)
.getOrCreate();
}
return spark;
}
}
pom.xml
4.0.0
com.example
quarkus-spark
1.0-SNAPSHOT
3.12.1
17
UTF-8
UTF-8
quarkus-bom
io.quarkus.platform
3.8.1
true
3.2.5
3.5.0
1.4.3
3.3.4
${quarkus.platform.group-id}
${quarkus.platform.artifact-id}
${quarkus.platform.version}
pom
import
io.quarkus
quarkus-arc
io.quarkus
quarkus-resteasy-reactive
io.quarkus
quarkus-junit5
test
io.rest-assured
rest-assured
test
org.apache.spark
spark-core_2.13
${spark.version}
org.apache.spark
spark-sql_2.13
${spark.version}
org.apache.iceberg
iceberg-spark-runtime-3.5_2.13
${iceberg.version}
org.apache.hadoop
hadoop-aws
${hadoop.version}
org.antlr
antlr4-runtime
4.9.3
org.apache.kafka
connect-api
3.2.3
${quarkus.platform.group-id}
quarkus-maven-plugin
${quarkus.platform.version}
true
build
generate-code
generate-code-tests
maven-compiler-plugin
${compiler-plugin.version}
-parameters
maven-surefire-plugin
${surefire-plugin.version}
org.jboss.logmanager.LogManager
${maven.home}
maven-failsafe-plugin
${surefire-plugin.version}
integration-test
verify
${project.build.directory}/${project.build.finalName}-runner
org.jboss.logmanager.LogManager
${maven.home}
native
native
false
native
Подробнее здесь: https://stackoverflow.com/questions/781 ... uarkus-app
Как создать SparkSession в приложении Quarkus? ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1719394642
Anonymous
Я пытаюсь создать простое приложение Quarkus с помощью Apache Spark, чтобы затем развернуть его в кластере Kubernetes. Приложение запускается без ошибок (режим разработки Quarkus), но по какой-то причине оно не может создать SparkSession (здесь также нет ошибок, приложение просто зависает, когда я вызываю конечную точку отдыха, которая использует SparkSession).
В приведенном ниже коде, когда я пишу «return sparkSessionBean.toString();» в методе "hello" exampleResource он работает правильно, но когда я пытаюсь "вернуть sparkSessionBean.getSpark().toString();" запрос зависает навсегда, никаких ошибок.
Когда я запускаю тот же код в автономном приложении с основным методом (без Quarkus), он работает правильно (создает SparkSession и выполняет какое-то задание).
Я тестировал это на Quarkus 3.5.3 и 3.8.1 + Spark 3.5.0 + Java 17.
Есть ли проблемы с использованием Spark? с Quarkus?
Ресурс:
package com.example;
import jakarta.inject.Inject;
import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;
@Path("/hello")
public class ExampleResource {
@Inject
SparkSessionBean sparkSessionBean;
@GET
@Produces(MediaType.TEXT_PLAIN)
public String hello() {
return sparkSessionBean.getSpark().toString();
}
}
SparkSessionBean:
package com.example;
import jakarta.enterprise.context.ApplicationScoped;
import org.apache.spark.sql.SparkSession;
@ApplicationScoped
public class SparkSessionBean {
private static final String WAREHOUSE_PATH = "s3a://iceberg";
private SparkSession spark;
public SparkSession getSpark() {
if (spark == null) {
spark = SparkSession.builder()
.appName("Java Spark Iceberg Example")
.master("local")
.config("spark.ui.enabled", "false")
//Filesystem (MinIO) config
.config("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
.config("fs.s3a.endpoint", "http://localhost:9000")
.config("fs.s3a.access.key", "key123")
.config("fs.s3a.secret.key", "secret123")
.config("fs.s3a.path.style.access", "true")
.config("spark.sql.warehouse.dir", WAREHOUSE_PATH)
//Nessie catalog config
.config("spark.jars.packages", "org.apache.iceberg:iceberg-spark-runtime-3.5_2.13:1.3.0,org.projectnessie.nessie-integrations:nessie-spark-extensions-3.5_2.13:0.77.1")
.config("spark.sql.extensions", "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions,org.projectnessie.spark.extensions.NessieSparkSessionExtensions")
.config("spark.sql.catalog.nessie", "org.apache.iceberg.spark.SparkCatalog")
.config("spark.sql.catalog.nessie.catalog-impl", "org.apache.iceberg.nessie.NessieCatalog")
.config("spark.sql.catalog.nessie.authentication.type", "NONE")
.config("spark.sql.catalog.nessie.uri", "http://localhost:19120/api/v1")
.config("spark.sql.catalog.nessie.ref", "main")
.config("spark.sql.defaultCatalog", "nessie")
.config("spark.sql.catalog.nessie.warehouse", WAREHOUSE_PATH)
.getOrCreate();
}
return spark;
}
}
pom.xml
4.0.0
com.example
quarkus-spark
1.0-SNAPSHOT
3.12.1
17
UTF-8
UTF-8
quarkus-bom
io.quarkus.platform
3.8.1
true
3.2.5
3.5.0
1.4.3
3.3.4
${quarkus.platform.group-id}
${quarkus.platform.artifact-id}
${quarkus.platform.version}
pom
import
io.quarkus
quarkus-arc
io.quarkus
quarkus-resteasy-reactive
io.quarkus
quarkus-junit5
test
io.rest-assured
rest-assured
test
org.apache.spark
spark-core_2.13
${spark.version}
org.apache.spark
spark-sql_2.13
${spark.version}
org.apache.iceberg
iceberg-spark-runtime-3.5_2.13
${iceberg.version}
org.apache.hadoop
hadoop-aws
${hadoop.version}
org.antlr
antlr4-runtime
4.9.3
org.apache.kafka
connect-api
3.2.3
${quarkus.platform.group-id}
quarkus-maven-plugin
${quarkus.platform.version}
true
build
generate-code
generate-code-tests
maven-compiler-plugin
${compiler-plugin.version}
-parameters
maven-surefire-plugin
${surefire-plugin.version}
org.jboss.logmanager.LogManager
${maven.home}
maven-failsafe-plugin
${surefire-plugin.version}
integration-test
verify
${project.build.directory}/${project.build.finalName}-runner
org.jboss.logmanager.LogManager
${maven.home}
native
native
false
native
Подробнее здесь: [url]https://stackoverflow.com/questions/78103230/how-to-create-sparksession-in-quarkus-app[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия