Как создать SparkSession с использованием Java 8 и Spark 2.3.0 - PullRequest
0 голосов
/ 03 февраля 2020

Я очень новичок с большими данными и спарком, и вот как я пытаюсь получить сеанс спарка

SparkConf conf = new SparkConf().setMaster("local").setAppName("SaavnAnalyticsProject");
sparkSession = SparkSession.builder().config(conf).getOrCreate();

Это ошибка, которую я получаю

Использование стандартного профиля Spark для log4j: org / apache / spark / log4j-defaults.properties 20/02/03 02:29:40 INFO SparkContext: Запуск Spark версии 2.3.0 Исключение в потоке "main" java .lang. NoSuchMethodError: com.google.common.base.Joiner.on (C) Lcom / google / common / base / Joiner ; в орг. apache .had oop .metrics2.lib.UniqueNames. (UniqueNames. java: 44) в орг. apache .had oop .metrics2.lib.DefaultMetricsSystem. (DefaultMetricsSystem. java: 41) в орг. apache .had oop .metrics2.lib.DefaultMetricsSystem. (DefaultMetricsSystem. java: 36) в орг. apache .had oop .security.UserGroupInformation $ UgiMetrics.create (UserGroupInformation. java: 120) в орг. apache .had oop .security.UserGroupInformation. (UserGroupInformation. java: 236) в орг. apache .spark.util.Utils $$ anonfun $ getCurrentUserName $ 1.apply (Utils. scala: 2464) в org. apache .spark.util.Utils $$ anonfun $ getCurrentUserName $ 1.apply (Utils. scala: 2464) в scala .Option.getOrElse (Опция. scala: 121) в организации. apache .spark.util.Utils $ .getCurrentUserName (Utils. scala: 2464) в организации. apache .spark.SparkContext. (SparkContext. scala : 292) в орг. apache .spark.SparkContext $ .getOrCreate (SparkContext. scala: 2486) в орг. apache .spark. sql .SparkSession $ Builder $$ anonfun $ 7.apply (SparkSession. scala: 930) в орг. apache .spark. sql .SparkSession $ Bui lder $$ anonfun $ 7.apply (SparkSession. scala: 921) в scala .Option.getOrElse (Опция. scala: 121) в org. apache .spark. sql .SparkSession $ Builder. getOrCreate (SparkSession. scala: 921) в saavnAnalytics.SaavnAnalyticsMain.main (SaavnAnalyticsMain. java: 55)

Вот мой pom. xml

 <properties>
 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
    </properties>
  <dependencies>
    <dependency>
        <!-- Apache Spark main library -->  
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_2.11</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming_2.11</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-mllib_2.11</artifactId>
        <version>2.3.0</version>
    </dependency>
        <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-aws</artifactId>
        <version>2.7.1</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.6.0</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.6.0</version>
    </dependency>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk</artifactId>
      <version>1.7.4</version>
    </dependency>
    </dependencies>
    <build>
   <plugins>
        <!-- Maven Shade Plugin -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>2.3</version>
          <executions>
             <!-- Run shade goal on package phase -->
            <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
             <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                    <mainClass>SaavnAnalytics.SaavnAnalyticsMain</mainClass>
            </transformer>
              </transformers>
            <filters>             
            <filter>               
            <artifact>*:*</artifact>               
            <excludes>                 
            <exclude>META-INF/*.SF</exclude>                 
            <exclude>META-INF/*.DSA</exclude>                 
            <exclude>META-INF/*.RSA</exclude>               
            </excludes>             
            </filter>           
            </filters>         
            </configuration>
            </execution>
          </executions>
        </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>

Я добавил явно google-collect-0.5.jar и com.google.collections.jar.

Есть идеи, где я ошибаюсь?

1 Ответ

1 голос
/ 04 февраля 2020

попробуйте изменить ваш pom. xml раздел плагинов:

<plugins>
    <!-- Maven Shade Plugin -->
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>2.3</version>
        <executions>
            <!-- Run shade goal on package phase -->
            <execution>
                <phase>package</phase>
                <goals>
                    <goal>shade</goal>
                </goals>
                <configuration>
                    <relocations>
                        <relocation>
                            <pattern>com.google.common</pattern>
                            <shadedPattern>shade.com.google.common</shadedPattern>
                        </relocation>
                    </relocations>
                    <transformers>
                        <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                            <mainClass>SaavnAnalytics.SaavnAnalyticsMain</mainClass>
                        </transformer>
                    </transformers>
                    <filters>
                        <filter>
                            <artifact>*:*</artifact>
                            <excludes>
                                <exclude>META-INF/*.SF</exclude>
                                <exclude>META-INF/*.DSA</exclude>
                                <exclude>META-INF/*.RSA</exclude>
                            </excludes>
                        </filter>
                    </filters>
                </configuration>
            </execution>
        </executions>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
</plugins>
...