Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤

创建maven工程

首先安装apache maven,选择maven工程
Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤_第1张图片
GroupId和ArtifactId是自己设置,通常ArtifactId就是项目名
Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤_第2张图片
直接点finish
Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤_第3张图片
File -> Project Structure -> Global Libraries里面确认scala版本
Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤_第4张图片
看一下现在的目录结构,可以将java改成scala(如果两种语言都有就可以在main下建两个文件夹:java和scala)
Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤_第5张图片
scala文件夹下新建一个scala class,命名为WordCount
Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤_第6张图片

WordCount代码及配置

import org.apache.spark.{SparkConf, SparkContext}

object WordCount {
  def main(args: Array[String]): Unit = {

    val sconf = new SparkConf().setAppName("WordCount")
    val sc = new SparkContext(sconf)

    sc.textFile(args(0)).flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _).sortBy(_._2, false).saveAsTextFile(args(1))
    sc.stop()
  }
}

配置pom.xml(按照里面注释改一下自己的配置),有任何修改都要重新import change

<dependencies>
        
        
        <dependency>
            <groupId>org.scala-langgroupId>
            <artifactId>scala-libraryartifactId>
            <version>2.11.0version>
        dependency>

        <dependency>
            <groupId>org.apache.sparkgroupId>
            <artifactId>spark-core_2.11artifactId>
            <version>2.2.0version>
        dependency>

        <dependency>
            <groupId>org.apache.hadoopgroupId>
            <artifactId>hadoop-clientartifactId>
            <version>2.6.5version>
        dependency>
    dependencies>

    <build>
        
        <sourceDirectory>src/main/scalasourceDirectory>
        <plugins>
            <plugin>
                <groupId>org.scala-toolsgroupId>
                <artifactId>maven-scala-pluginartifactId>
                <version>2.15.2version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compilegoal>
                            <goal>testCompilegoal>
                        goals>
                    execution>
                executions>
            plugin>

            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-shade-pluginartifactId>
                <version>2.4.3version>
                <executions>
                    <execution>
                        <phase>packagephase>
                        <goals>
                            <goal>shadegoal>
                        goals>
                        <configuration>
                            <filters>
                                <filter>
                                    <artifact>*:*artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SFexclude>
                                        <exclude>META-INF/*.DSAexclude>
                                        <exclude>META-INF/*.RSAexclude>
                                    excludes>
                                filter>
                            filters>
                            
                            
                            
                            
                            
                        configuration>
                    execution>
                executions>
            plugin>

            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <configuration>
                    <source>1.8source>
                    <target>1.8target>
                configuration>
            plugin>

            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-jar-pluginartifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>trueaddClasspath>
                            <useUniqueVersions>falseuseUniqueVersions>
                            <classpathPrefix>lib/classpathPrefix>
                            
                            <mainClass>WordCountmainClass>
                        manifest>
                    archive>
                configuration>
            plugin>
        plugins>
    build>

项目打包

Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤_第7张图片
双击package
Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤_第8张图片
打包成功信息
Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤_第9张图片
可以看到打包好的WordCount-1.0.jar
Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤_第10张图片

运行

在Linux下运行Spark集群
输入命令:

/usr/local/apps/spark-2.2.0-bin-hadoop2.6/bin/spark-submit \ (改成spark安装路径/bin/spark-submit \--class WordCount \ (类的reference,一般是包名+类名,直接copy reference)
--master spark:/hdp-node-01:7077 \ (设置master)
--executor-memory 512m \
--total-executor-cores 2 \
/home/WordCount-1.0.jar \ (jar包路径)
hdfs:/hdp-node-01:9000/aaa.txt hdfs:/hdp-node-01:9000/test1 (输入文件 输出目录(运行时会自己创建,不需要提前创建))

运行结果
Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤_第11张图片
Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤_第12张图片

你可能感兴趣的:(BigData)