构建Scala的Maven项目

    xiaoxiao2021-11-30  31

    sparkscala项目Maven构建和使用

    一、使用

    spark-sql使用

    spark-sql --master yarn --num-executors 30 --executor-memory 12g

    二、建立项目

    1.建立Maven项目:java文件夹 重命名为scala文件夹

    2.修改xxx.xml配置

    3.删除./idea下文件 scala_compier.xml的行<parameter value="-make:transitive" />,edit configuration里配置VM options:

     -Dspark.master=local -Dspark.master=local[k]-Dspark.master=local[*]

    local 本地单线程

    local[K] 本地多线程(指定K个内核)

    local[*] 本地多线程(指定所有可用内核)

    spark://HOST:PORT 连接到指定的 Spark standalone cluster master,需要指定端口。

    mesos://HOST:PORT 连接到指定的 Mesos 集群,需要指定端口。

    yarn-client客户端模式 连接到 YARN 集群。需要配置 HADOOP_CONF_DIR

    yarn-cluster集群模式 连接到 YARN 集群。需要配置 HADOOP_CONF_DIR

    4.配置.xml文件如下

    <?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd">     <modelVersion>4.0.0</modelVersion>     <groupId>rec.spark</groupId>     <artifactId>recoment-model</artifactId>     <version>1.0-SNAPSHOT</version>     <name>${project.artifactId}</name>     <description>My scala app</description>     <inceptionYear>2016</inceptionYear>     <licenses>         <license>             <name>My License</name>             <url>http://....</url>             <distribution>repo</distribution>         </license>     </licenses>     <properties>         <maven.compiler.source>1.8</maven.compiler.source>         <maven.compiler.target>1.8</maven.compiler.target>         <encoding>UTF-8</encoding>         <scala.version>2.11.8</scala.version>         <scala.compat.version>2.11</scala.compat.version>     </properties>     <dependencies>         <dependency>             <groupId>org.scala-lang</groupId>             <artifactId>scala-library</artifactId>             <version>${scala.version}</version>         </dependency>         <dependency>             <groupId>org.scala-lang</groupId>             <artifactId>scala-compiler</artifactId>             <version>${scala.version}</version>         </dependency>         <dependency>             <groupId>org.scala-lang</groupId>             <artifactId>scala-reflect</artifactId>             <version>${scala.version}</version>         </dependency>         <dependency>             <groupId>org.apache.spark</groupId>             <artifactId>spark-core_2.11</artifactId>             <version>2.0.0</version>         </dependency>         <dependency>             <groupId>org.apache.spark</groupId>             <artifactId>spark-mllib_2.11</artifactId>             <version>2.0.0</version>         </dependency>         <dependency>             <groupId>org.apache.spark</groupId>             <artifactId>spark-streaming_2.11</artifactId>             <version>2.0.0</version>         </dependency>         <dependency>             <groupId>org.scalanlp</groupId>             <artifactId>breeze-viz_2.11</artifactId>             <version>0.12</version>         </dependency>         <dependency>             <groupId>com.github.scopt</groupId>             <artifactId>scopt_2.11</artifactId>             <version>3.3.0</version>         </dependency>         <dependency>             <groupId>org.apache.spark</groupId>             <artifactId>spark-hive_2.10</artifactId>             <version>1.3.0</version>         </dependency>         <dependency>             <groupId>org.apache.hadoop</groupId>             <artifactId>hadoop-client</artifactId>             <version>2.7.2</version>         </dependency>         <dependency>             <groupId> org.apache.cassandra</groupId>             <artifactId>cassandra-all</artifactId>             <version>0.8.1</version>             <exclusions>                 <exclusion>                     <groupId>org.slf4j</groupId>                     <artifactId>slf4j-log4j12</artifactId>                 </exclusion>                 <exclusion>                     <groupId>log4j</groupId>                     <artifactId>log4j</artifactId>                 </exclusion>             </exclusions>         </dependency>         <!-- Test -->         <dependency>             <groupId>junit</groupId>             <artifactId>junit</artifactId>             <version>4.11</version>             <scope>test</scope>         </dependency>         <dependency>             <groupId>org.specs2</groupId>             <artifactId>specs2-core_${scala.compat.version}</artifactId>             <version>2.4.16</version>             <scope>test</scope>         </dependency>         <dependency>             <groupId>org.scalatest</groupId>             <artifactId>scalatest_${scala.compat.version}</artifactId>             <version>2.2.4</version>             <scope>test</scope>         </dependency>     </dependencies>     <build>         <sourceDirectory>src/main/scala</sourceDirectory>         <testSourceDirectory>src/test/scala</testSourceDirectory>         <plugins>             <plugin>                 <groupId>net.alchim31.maven</groupId>                 <artifactId>scala-maven-plugin</artifactId>                 <version>3.2.0</version>                 <executions>                     <execution>                         <goals>                             <goal>compile</goal>                             <goal>testCompile</goal>                         </goals>                         <configuration>                             <args>                                 <arg>-make:transitive</arg>                                 <arg>-dependencyfile</arg>                                 <arg>${project.build.directory}/.scala_dependencies</arg>                             </args>                         </configuration>                     </execution>                 </executions>             </plugin>             <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-surefire-plugin</artifactId>                 <version>2.18.1</version>                 <configuration>                     <useFile>false</useFile>                     <disableXmlReport>true</disableXmlReport>                     <includes>                         <include>**/*Test.*</include>                         <include>**/*Suite.*</include>                     </includes>                 </configuration>             </plugin>             <plugin>                 <groupId>org.apache.maven.plugins</groupId>                 <artifactId>maven-shade-plugin</artifactId>                 <version>2.3</version>                 <executions>                     <execution>                         <phase>package</phase>                         <goals>                             <goal>shade</goal>                         </goals>                         <configuration>                             <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>         </plugins>     </build> </project>

    转载请注明原文地址: https://ju.6miu.com/read-679154.html

    最新回复(0)