第8课:彻底实战详解使用IDE开发Spark程序

本文详细介绍了如何在Windows下使用Eclipse搭建Spark开发环境,包括Scala的下载安装、创建Scala项目、配置Scala编译器、导入Spark-1.6.0的jar包、编写WordCount Scala程序并运行。最后,展示了程序运行的日志输出,证明本地模式测试成功。
摘要由CSDN通过智能技术生成

第8课:彻底实战详解使用IDE开发Spark程序

1.下载安装windows下的scala-2.10.4.

2.打开eclipse,新建scala project: WordCount

3.修改依赖的scala版本为2.10.x。

在Package Explorer中WordCount上点击右键,选择properities->scala Compilier,选择下图所示use peoject settings,选择Scala installation为latest 2.10 bundle(dynamic)后点击OK。

可以看到WordCount project中的scala library container中的版本变成了2.10.5,如下图:


4. 加入spark-1.6.0的jar文件依赖。

下载spark-1.6.0-bin-hadoop2.6.tgz,解压到D:\ProgramFiles目录中,将spark-1.6.0-bin-hadoop2.6\lib\spark-assembly-1.6.0-hadoop2.6.0.jar 导入到eclipse中。

在eclipse中的WordCount上点击右键,选择build path->Configure Build Path,在Libraries栏选择Add External JARs...,选择spark-1.6.0-bin-hadoop2.6\lib\spark-assembly-1.6.0-hadoop2.6.0.jar ,点击OK。


此时可以在WordCount Project中的Referenced Libraries中看到spark-assembly-1.6.0-hadoop2.6.0.jar,如下图所示:


5. 在src下建立spark工程包:

WrodCount project上的src上点击右键,选择new -> Package,包名为com.dt.spark。点击finish。


6. 创建scala入口类。

在com.dt.spark包上点击右键,选择new->scala class。类名为com.dt.spark.WordCount,点击finish。


此时就可以编写代码了。

7.  把class变成object并编写main入口方法。代码如下:

package com.dt.spark


import org.apache.spark.SparkConf
import org.apache.spark.SparkContext


/**
 * 使用scala开发本地测试的spark WordCount程序
 * DT大数据梦工厂
 * 新浪微博:p://weibo.com/ilovepains/
 */
object WordCount {
  def main(args: Array[String]){
    /*
     * 第一步:创建spark的配置对象SparkConf,设置Spark程序运行时的配置信息
     * 例如通过setMaster来设置程序要链接的Spark集群的Master的URL,如果设置
     * 为local,则代表Spark程序在本地运行,特别适合于机器配置条件非常差(例如
     * 只有1内存)的初学者
     */
    val conf = new SparkConf()      //创建SparkConf对象。因为是全局唯一的,所以使用new,不用工厂方法模式。
    conf.setAppName("Wow, My First Spark App!")    //设置应用程序的名称,在程序运行的监控界面可以看到名称
    conf.setMaster("local")  //此时程序在本地运行,不需要安装spark集群。
    /**
     * 第二步:创建SparkContext对象,
     * SparkContext是Spark程序所有功能的唯一入口,无论是采用scala/java/Python/R等都必须有一个SParkContext,而且默认都只有一个。
     * SparkContext核心作用:初始化应用程序运行时所需要的核心组件,包括DAGScheduler,TaskScheduler,Scheduler Backend,
     * 同时还会负责Spark程序往Master注册程序等。SparkContext是整个Spark应用程序中最为重要的一个对象,
     * 
     */
     val sc = new SparkContext(conf)    //通过创建SparkContext对象,通过传入SparkConf实例来定制SPark地的具体参数和配置信息。
    /*
     * 第三步:根据具体的数据来源(/HBase/Local FS/DB/S3等)通过SparkContext创建RDD,
     * RDD创建有三种基本方式:1.根据外部数据来源(如HDFS),2.根据Scala集合,3.由其他RDD操作产生
     * 数据会被RDD划分成为一系列的Partitions,分配到每个Partition的数据属于一个Task的处理范畴,
     */
    val lines = sc.textFile("D://programFiles//spark-1.6.0-bin-hadoop2.6//README.md", 1)  //假设电脑只有1G内存,一个core。读取本地文件,设置partition
    //也可以写成:l lines:RDD[String] = sc.textFile    类型推断
    /**
     * 第4步:对初始RDD进行Transformation级别的处理。例如map/filter等高阶函数等的编程
     * 来进行具体的数据计算。第4.1步:将每一行的字符串拆分成单个的单词。
     */
     val words = lines.flatMap { line => line.split(" ") }   //对每一行的字符串进行单词拆分,map每次循环一行,将每一行的小集合通过flat合并成一个大集合
    /**
     * 第4.2步,在单词拆分的基础上对每个单词实例 进行计数为1,也就是word => (word,1)
     */
    val pairs = words.map { word => (word,1) }
    /**
     * 第4.3步,在每个单词实例计数为1的基础上,统计每个单词在文件中出现的总次数。
     */
    val wordCounts = pairs.reduceByKey(_+_)  //对相同的Key,进行Value的累计(包括Local和Reduce级别同时 Reduce)
    wordCounts.foreach(wordNumberPair => println(wordNumberPair._1 + " : " + wordNumberPair._2)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值