zoukankan      html  css  js  c++  java
  • 通过IDEA搭建scala开发环境开发spark应用程序

    一、idea社区版安装scala插件

    因为idea默认不支持scala开发环境,所以当需要使用idea搭建scala开发环境时,首先需要安装scala插件,具体安装办法如下。

    1、打开idea,点击configure下拉菜单中的plugins选项:

    clip_image002

    2、在弹出对话框中点击红框按钮:

    clip_image004

    3、在弹出最新对话框的搜索栏输入scala,在筛选出的内容中选择红框部分,点击右侧install按钮开始下载插件:

    clip_image006

    本人在测试过程中通过install自动下载插件失败,最后选择手动下载scala插件,然后通过步骤2中install plugin from disk选项,选择手动下载zip包的方式安装插件成功。

    二、创建scala工程

    1、下载scala安装文件,并解压到d:目录下:

    https://downloads.lightbend.com/scala/2.10.6/scala-2.10.6.zip

    2、打开idea开发工具,选择“create new project”,创建一个新的工程:

    clip_image008

    3、下图中选择jdk版本、选择scala、以及scala依赖包位置(scala安装软件位置),next:

    clip_image010

    4、输入工程名称并且选择工程位置,点击finash:

    clip_image012

    5、完成工程创建后如下:

    clip_image014

    三、配置scala工程

    1、file->preject structure:

    clip_image016

    2、modulesàsrcànew folder方式创建文件夹:

    clip_image018

    3、完成文件创建后,点击ok完成配置。

    clip_image020

    工程结构如下:

    clip_image022

    四、为工程导入spark jar包

    1、首先解压缩spark安装包到d:目录下:

    D:spark-1.3.0-bin-2.5.0-cdh5.3.6

    2、fileàproject structure:

    clip_image024

    3、在对话框选择librariesà+àjava:

    clip_image026

    4、在弹出对话框内选择spark解压目录,选中spark lib目录下所有jar包,点击ok导入所有jar包:

    clip_image028

    5、点击ok,完成spark jar包导入scala工程:

    clip_image030

    clip_image032

    五、编写wordcount程序进行基准测试

    1、在scala工程中创建packet,并且创建测试spark类,并且编写wordcount程序代码,如下:

    package Chavin.King.SparkApp
    import org.apache.spark.SparkContext
    import org.apache.spark.SparkContext._
    import org.apache.spark.SparkConf
    object SparkDemo {
    def main(args: Array[String]) {
    val logFile = "hdfs://chavin.king:9000/user/hadoop/mapreduce/wordcount/input/wc.input"
    val conf = new SparkConf().setAppName("Simple Application") //.setMaster("local")
    val sc = new SparkContext(conf)
    val rdd = sc.textFile(logFile)
    val wordcount = rdd.flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).map(x => (x._2,x._1)).sortByKey(false).map(x => (x._2,x._1))
    wordcount.saveAsTextFile("hdfs://chavin.king:9000/user/hadoop/mapreduce/wordcount/output00000")
    sc.stop()
    }
    }

    截图如下:

    clip_image034

    2、代码完成之后,右键à选择run “SparkApp”,运行程序进行功能测试。

    3、打包SparkApp程序:

    File—>preject structureàartifactsà+àJARàfrom modules with dependencies:

    clip_image036

    下图中选择要编译的主类,点击ok:

    clip_image038

    删除output layout下的所有依赖jar包,并且指定output directory,点击ok:

    clip_image040

    回到idea主页面,点击buildàbuild artifacts:

    clip_image042

    SaprkApp.jar—>build,进行jar包编译:

    clip_image044

    编译完成后到d:下可以看到我们编译的jar包。

    4、测试编译的jar包(SparkApp.jar):

    4.1)删除hdfs输出目录:

    bin/hdfs dfs -rm -r hdfs://chavin.king:9000/user/hadoop/mapreduce/wordcount/output00000

    4.2)spark-submit方式测试jar包:

    bin/spark-submit
    --master yarn
    --deploy-mode client
    /opt/datas/SparkApp.jar

  • 相关阅读:
    比较Activiti中三种不同的表单及其应用
    Liferay7 BPM门户开发之2: BPMN 2.0 规范入门 (Activiti BPMN extensions)
    activiti学习笔记 ----------------------------FormService
    activiti学习笔记---managementService
    Activiti5 学习笔记—— comment 批注
    Activiti6-流程跟踪监控图-节点-流程线高亮显示-支持通过、不通过、驳回、退回
    Activiti 快速入门教程:SpringBoot 集成 Activiti6 + Activiti Modeler 流程配置可视化
    工作流学习——Activiti流程变量五步曲
    利用Python中的mock库对Python代码进行模拟测试
    密码校验正则 -- 数字、字符、特殊符号
  • 原文地址:https://www.cnblogs.com/wcwen1990/p/7860716.html
Copyright © 2011-2022 走看看