IDE开发Spark程序

IDEA Eclipse

下载scala

下载地址

scala.msi

scala环境变量配置

(1)设置SCALA-HOME变量:如图,单击新建,在变量名一栏输入: SCALA-HOME 变量值一栏输入: D:\Program Files\scala 也就是scala的安装目录,根据个人情况有所不同,如果安装在E盘,将“D”改成“E”即可。

(2)设置path变量:找到系统变量下的“path”如图,单击编辑。在“变量值”一栏的最前面添加如下的 code: %scala_Home%\bin;%scala_Home%\jre\bin; 注意:后面的分号 ; 不要漏掉。

(3)设置classpath变量:找到找到系统变量下的“classpath”如图,单击编辑,如没有,则单击“新建”,

“变量名”:ClassPath “变量值“:

.;%scala_Home%\bin;%scala_Home%\lib\dt.jar;%scala_Home%\lib\tools.jar.; 注意:“变量值”最前面的 .; 不要漏掉。最后单击确定即可。

下载scala ide,scal-SDK-4.4.1-vfinal-2.11-win32.win32.x86.64.zip

下载地址

下载后解压,点击Eclipse,运行

第一步:修改依赖的Scala版本为Scala 2.10.x(默认2.11.7,要做修改)

第二步:加入Spark 1.6.0的jar文件依赖

下载spark对应的jar包,点击4,下载spark-1.6.1-bin-hadoop2.6.tgz

下载地址

下载Spark,在lib中找到依赖文件

第三步:找到依赖的Spark Jar文件并导入到Eclipse中的Jar依赖

第四步:在src下建立Spark工程包

第五步:创建Scala入口类

第六步:把class变成object并编写main入口方法

开发程序有两种模式:本地运行和集群运行

修改字体

package com.test

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD

object WordCount {
  def main(args: Array[String]){
    /**
     * 第一步:创建Spark的配置对象SparkConf,设置Spark程序的运行时的配置信息,
     * 例如说通过setMaster来设置程序要连接的Spark集群的Master的URL,
     * 如果设置为local,则代表Spark程序在本地运行,特别适合于机器配置条件非常差
     * (例如只有1G的内存)的初学者
     */
    val conf =new SparkConf()//创建SparkConf对象,由于全局只有一个SparkConf所以不需要工厂方法
    conf.setAppName("wow,my first spark app")//设置应用程序的名称,在程序的监控界面可以看得到名称
    conf.setMaster("local")//此时程序在本地运行,不需要安装Spark集群
    /**
     * 第二步:创建SparkContext对象
     * SparkContext是Spark程序所有功能的唯一入口,无论是采用Scala、Java、Python、R等都必须要有一个
     * SparkContext
     * SparkContext核心作用:初始化Spark应用程序运行所需要的核心组件,包括DAGScheduler,TaskScheduler,SchedulerBacked,
     * 同时还会负责Spark程序往Master注册程序等
     * SparkContext是整个Spark应用程序中最为至关重要的一个对象
     */
    val sc=new SparkContext(conf)//创建SpackContext对象,通过传入SparkConf实例来定制Spark运行的具体参数的配置信息
    /**
     * 第三步:根据具体的数据来源(HDFS,HBase,Local,FileSystem,DB,S3)通过SparkContext来创建RDD
     * RDD的创建基本有三种方式,(1)根据外部的数据来源(例如HDFS)(2)根据Scala集合(3)由其它的RDD操作
     * 数据会被RDD划分为成为一系列的Partitions,分配到每个Partition的数据属于一个Task的处理范畴
     */
    //读取本地文件并设置为一个Partition
    val lines=sc.textFile("D://spark-1.6.1-bin-hadoop2.6//README.md", 1)//第一个参数为为本地文件路径,第二个参数minPartitions为最小并行度,这里设为1
 //类型推断 ,也可以写下面方式
  //   val lines : RDD[String] =sc.textFile("D://spark-1.6.1-bin-hadoop2.6//README.md", 1)
     /**
   * 第四步:对初始的RDD进行Transformation级别的处理,例如map,filter等高阶函数
   * 编程。来进行具体的数据计算
   * 第4.1步:将每一行的字符串拆分成单个的单词
   */
    //对每一行的字符串进行单词拆分并把所有行的结果通过flat合并成一个大的集合
    val words = lines.flatMap { line => line.split(" ") }
    /**
     * 第4.2步在单词拆分的基础上,对每个单词实例计数为1,也就是word=>(word,1)tuple
     */
    val pairs = words.map { word => (word,1) }
    /**
     * 第4.3步在每个单词实例计数为1的基础之上统计每个单词在文中出现的总次数
     */
    //对相同的key进行value的累加(包括local和Reduce级别的同时Reduce)
    val wordCounts = pairs.reduceByKey(_+_)
    //打印结果
    wordCounts.foreach(wordNumberPair => println(wordNumberPair._1 + ":" +wordNumberPair._2))
    //释放资源
    sc.stop()
  }

}

run as ->Scala Application

运行结果

package com.test

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD

object WordCountCluster {
  def main(args: Array[String]){
    /**
     * 第一步:创建Spark的配置对象SparkConf,设置Spark程序的运行时的配置信息,
     * 例如说通过setMaster来设置程序要连接的Spark集群的Master的URL,
     * 如果设置为local,则代表Spark程序在本地运行,特别适合于机器配置条件非常差
     * (例如只有1G的内存)的初学者
     */
    val conf =new SparkConf()//创建SparkConf对象,由于全局只有一个SparkConf所以不需要工厂方法
    conf.setAppName("wow,my first spark app")//设置应用程序的名称,在程序的监控界面可以看得到名称
   // conf.setMaster("spark://Master:7077")//此时程序在Spark集群
    /**
     * 第二步:创建SparkContext对象
     * SparkContext是Spark程序所有功能的唯一入口,无论是采用Scala、Java、Python、R等都必须要有一个
     * SparkContext
     * SparkContext核心作用:初始化Spark应用程序运行所需要的核心组件,包括DAGScheduler,TaskScheduler,SchedulerBacked,
     * 同时还会负责Spark程序往Master注册程序等
     * SparkContext是整个Spark应用程序中最为至关重要的一个对象
     */
    val sc=new SparkContext(conf)//创建SpackContext对象,通过传入SparkConf实例来定制Spark运行的具体参数的配置信息
    /**
     * 第三步:根据具体的数据来源(HDFS,HBase,Local,FileSystem,DB,S3)通过SparkContext来创建RDD
     * RDD的创建基本有三种方式,(1)根据外部的数据来源(例如HDFS)(2)根据Scala集合(3)由其它的RDD操作
     * 数据会被RDD划分为成为一系列的Partitions,分配到每个Partition的数据属于一个Task的处理范畴
     */
    //读取HDFS文件并切分成不同的Partition

   val lines=sc.textFile("hdfs://Master:9000/library/wordcount/input/Data")
    //类型推断 ,也可以写下面方式
  //   val lines : RDD[String] =sc.textFile("D://spark-1.6.1-bin-hadoop2.6//README.md", 1)
     /**
   * 第四步:对初始的RDD进行Transformation级别的处理,例如map,filter等高阶函数
   * 编程。来进行具体的数据计算
   * 第4.1步:将每一行的字符串拆分成单个的单词
   */
    //对每一行的字符串进行单词拆分并把所有行的结果通过flat合并成一个大的集合
    val words = lines.flatMap { line => line.split(" ") }
    /**
     * 第4.2步在单词拆分的基础上,对每个单词实例计数为1,也就是word=>(word,1)tuple
     */
    val pairs = words.map { word => (word,1) }
    /**
     * 第4.3步在每个单词实例计数为1的基础之上统计每个单词在文中出现的总次数
     */
    //对相同的key进行value的累加(包括local和Reduce级别的同时Reduce)
    val wordCounts = pairs.reduceByKey(_+_)
    //打印结果
    wordCounts.foreach(wordNumberPair => println(wordNumberPair._1 + ":" +wordNumberPair._2))
    //释放资源
    sc.stop()
  }

}

打包

右击,export,java ,jar File

chmod 777 wordcount.sh

./wordcount.sh

cd /opt/cloudera/parcels/CDH-5.6.0-1.cdh5.6.0.p0.45/lib/spark/bin

时间: 2024-11-06 07:39:00

IDE开发Spark程序的相关文章

基于IDEA使用Spark API开发Spark程序

清明假期折腾了两天,总结了两种方式使用IDE进行spark程序,记录一下: 第一种方法比较简单,两种方式都是采用SBT进行编译的. 注意:本地不需要安装Scala程序,否则在编译程序时有版本兼容性问题. 一.基于Non-SBT方式 创建一个Scala IDEA工程 我们使用Non-SBT的方式,点击"Next" 命名工程,其他按照默认 点击"Finish"完成工程的创建 修改项目的属性 首先修改Modules选项 在src下创建两个文件夹,并把其属性改为source

Spark API编程动手实战-08-基于IDEA使用Spark API开发Spark程序-01

创建一个Scala IDEA工程: 点击“Next”: 点击“Finish”完成工程的创建: 修改项目的属性: 首先修改Modules选项: 在src下创建两个文件夹,并把其属性改为source: 再修改Libraries: 因为要开发Spark程序,所以需要把Spark的开发需要的jar包导进来: 导入包完成后,在工程的scala下面创建一个package: 创建一个Object对象: 完成初始类的创建: 首先构建Spark Driver的模板代码: 该程序是对前面的搜狗日志的处理代码,只不过

搭建scala 开发spark程序环境及实例演示

上一篇博文已经介绍了搭建scala的开发环境,现在进入正题.如何开发我们的第一个spark程序. 下载spark安装包,下载地址http://spark.apache.org/downloads.html(因为开发环境需要引用spark的jar包) 我下载的是spark-2.1.0-bin-hadoop2.6.tgz,因为我的scalaIDE版本是scala-SDK-4.5.0-vfinal-2.11-win32.win32.x86_64.zip 最好,IDE版本和spark版本要匹配,否则,开

底层战详解使用Java开发Spark程序(DT大数据梦工厂)

Scala开发Spark很多,为什么还要用Java开发原因:1.一般Spark作为数据处理引擎,一般会跟IT其它系统配合,现在业界里面处于霸主地位的是Java,有利于团队的组建,易于移交:2.Scala学习角度讲,比Java难.找Scala的高手比Java难,项目的维护和二次开发比较困难:3.很多人员有Java的基础,确保对Scala不是很熟悉的人可以编写课程中的案例预测:2016年Spark取代Map Reduce,拯救HadoopHadoop+Spark = A winning combat

Java开发Spark程序

pom.xml <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"> <mo

(转)使用eclipse Arduino IDE开发 AVR程序

小白写程序都是用eclipse的,所以学习Arduino时自然就想用eclipse,因为俺懒,这样省事.网上找了些帖子看看,感觉开发环境都比较麻烦,这样不符合俺这种懒人的风格,所以我弄了个简单点的. 第一步:下载各种东西1.JDK,这个去oracle官网下就好了(其实百度下载更快)http://download.oracle.com/otn-pub/java/jdk/8u20-b26/jdk-8u20-windows-x64.exe.2.eclipseArduinoIDE,http://ecli

Spark API编程动手实战-08-基于IDEA使用Spark API开发Spark程序-02

接下来进行打包,使用Project  Structure的Artifacts: 使用From modules with dependencies: 选择Main Class: 点击“OK”: 把名称改为SparkDemoJar: 因为每台机器上都安装了Scala和Spark,所以可以把Scala和Spark相关的jar文件都删除掉: 接下来进行Build: 选择“Build Artifacts”: 剩下的操作,就是jar包上传到服务器上,然后执行spark-submit命令,我在之前的文章已经详

使用IDEA开发Spark程序

一.分布式估算圆周率 1.计算原理 假设正方形的面积S等于x2,而正方形的内切圆的面积C等于Pi×(x/2)2,因此圆面积与正方形面积之比C/S就为Pi/4,于是就有Pi=4×C/S. 可以利用计算机随机产生大量位于正方形内部的点,通过点的数量去近似表示面积.假设位于正方形中点的数量为Ps,落在圆内的点的数量为Pc,则随机点的数量趋近于无穷时,4×Pc/Ps将逼近于Pi. 2.IDEA下直接运行 (1)启动IDEA,Create New Project-Scala-选择JDK和Scala SDK

Spark3000门徒第8课IDE中开发Spark实战总结

今晚听了王家林老师的第8课IDE中开发Spark实战,课后作业是:在Eclipse中编写广告点击排名的程序并测试,程序如下: object WordCountCluster { def main(args: Array[String]){ /** * 第一步:创建spark的配置对象SparkConf,设置Spark程序的运行时的配置信息 */ val conf = new SparkConf() //创建SparkConf对象 conf.setAppName("First App")