Есть ли способ указать, чтобы отправить полную папку JAR на драйвер и исполнителей? - PullRequest
1 голос
/ 18 мая 2019

Есть ли способ указать полный путь к папке jar-файлов, которые должны быть отправлены на драйвер, а также к исполнителю, например --jars в spark-submit, который исключает запятые имена jar-файлов с полным путем.Но это утомительная работа, если у нас слишком много jar-файлов, которые могут быть загружены как на драйвер, так и на исполнителя.

Ответы [ 2 ]

1 голос
/ 18 мая 2019

Вопрос: есть ли способ указать, чтобы отправить полную папку jar как на драйвер, так и на исполнителей?

Да, вы можете сделать uber jar, который является автономным дистрибутивом со всеми зависимостями, упакованными внутри.

sample Если вы используете maven, вы можете использовать плагин maven shade или assembly plugin для этого.ниже приведен пример тени.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.maventest</groupId>
    <artifactId>mytest</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>mytest</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.3</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <finalName>uber-${artifactId}-${version}</finalName>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Если вы используете sbt, см. this

Ваша искра отправки будет выглядеть так ....

spark-submit [PATH_TO_YOUR_UBER_JAR]/[YOUR_UBER_JAR].jar

Далее читаем, например, статью Googles: Управление зависимостями Java для приложений Apache Spark

0 голосов
/ 19 мая 2019

Запуская искру на пряже, вы должны иметь возможность установить spark.yarn.archive или spark.yarn.jars в spark-defaults.conf файле конфигурации.

spark.yarn.archive предназначен для распространения архива со всеми необходимыми банкамина ваших исполнителей.

spark.yarn.jars для отдельных банок.

Дополнительную информацию вы можете найти в официальных документах .

...