zoukankan      html  css  js  c++  java
  • idea+maven+scala+spark 集成

    1、安装jdk

    2、安装idea

    3、安装maven

    4、安装scala 

    windows下 下载msi安装文件,因为当前spark使用的scala版本为 2.10.4,因此也选择安装2.10.4版本的scala。

    5、安装idea的scala扩展工具 

    http://blog.csdn.net/stark_summer/article/details/42460527

    6、编写hello world

     新建项目,idea选择maven创建。选择archetype(org.scala-tool.archetypes:scala-archetype-simple)

     修改pom,修改scala.version为 2.10.4

     添加spark引用,因为安装spark使用的1.5.2,因此包也选用1.5.2的

    <dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.11</artifactId>
    <version>1.5.2</version>
    </dependency>

     添加打包maven plugin 

    <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
    <archive>
    <manifest>
    <addClasspath>true</addClasspath>
    <!--这里要替换成jar包main方法所在类-->
    <mainClass>com.isenhome.WordCount</mainClass>
    </manifest>
    </archive>
    <descriptorRefs>
    <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    <outputDirectory>out/assembly</outputDirectory>
    </configuration>
    <executions>
    <execution>
    <id>make-assembly</id> <!-- this is used for inheritance merges -->
    <phase>package</phase> <!-- 指定在打包节点执行jar包合并操作 -->
    <goals>
    <goal>assembly</goal>
    </goals>
    </execution>
    </executions>
    </plugin>

    编写代码
    object WordCount {
    def main(args: Array[String]) {
    if (args.length < 1) {
    System.err.println("Usage: com.isenhome.WordCount <master> <input>")
    System.exit(1)
    }

    val conf = new SparkConf()
    val sc = new SparkContext(conf)
    val line = sc.textFile(args(0))

    line.flatMap(_.split(" "))
    .map((_, 1))
    .reduceByKey(_ + _)
    .collect()
    .foreach(println)

    sc.stop()
    }
    }


    使用idea生成jar包后,放置到spark master机器上。

    执行spark-submit

    ./spark-submit --master spark://30.85.178.161:7077 --name WordCountByscala --class com.isenhome.WordCount --executor-memory 1G /home/datauser/test/spark/scala-tool-1.0-SNAPSHOT-jar-with-dependencies.jar hdfs://hadoop-1:9000/data/test/test.dat

    spark-submit命令解析

    Usage: spark-submit [options] <app jar | python file> [app options]
    参数名称
    含义
    --master MASTER_URL
    可以是spark://host:port, mesos://host:port, yarn,  yarn-cluster,yarn-client, local
    --deploy-mode DEPLOY_MODE
    Driver程序运行的地方,client或者cluster
    --class CLASS_NAME
    主类名称,含包名
    --name NAME
    Application名称
    --jars JARS
    Driver依赖的第三方jar包
    --py-files PY_FILES
    用逗号隔开的放置在Python应用程序PYTHONPATH上的.zip,  .egg, .py文件列表
    --files FILES
    用逗号隔开的要放置在每个executor工作目录的文件列表
    --properties-file FILE
    设置应用程序属性的文件路径,默认是conf/spark-defaults.conf
    --driver-memory MEM
    Driver程序使用内存大小
    --driver-java-options
     
    --driver-library-path
    Driver程序的库路径
    --driver-class-path
    Driver程序的类路径
    --executor-memory MEM
    executor内存大小,默认1G
    --driver-cores NUM
    Driver程序的使用CPU个数,仅限于Spark Alone模式
    --supervise
    失败后是否重启Driver,仅限于Spark  Alone模式
    --total-executor-cores NUM
    executor使用的总核数,仅限于Spark Alone、Spark on Mesos模式
    --executor-cores NUM
    每个executor使用的内核数,默认为1,仅限于Spark on Yarn模式
    --queue QUEUE_NAME
    提交应用程序给哪个YARN的队列,默认是default队列,仅限于Spark on Yarn模式
    --num-executors NUM
    启动的executor数量,默认是2个,仅限于Spark on Yarn模式
    --archives ARCHIVES
    仅限于Spark on Yarn模式
  • 相关阅读:
    ios开发启动页面
    C++再学习之路(五)
    C++再学习之路(四)
    opencv再学习之路(九)---制作对焦图像
    opencv再学习之路(八)---轮廓检测
    C++再学习之路---例程(一) 文本查询
    opencv再学习之路(五)---灰度直方图显示
    opencv再学习之路(七)---图像单个元素的访问
    opencv再学习之路(六)---模板匹配
    C++再学习之路(三)
  • 原文地址:https://www.cnblogs.com/isenhome/p/5083181.html
Copyright © 2011-2022 走看看