以数据流动的视角解释一下wordcount运行的原理
package com.imf.spark.wordcount
import org.apache.spark.{SparkContext, SparkConf}
/**
* Created by vivi on 2016/1/27.
*/
object WordCount {
def main(args: Array[String]) {
/**
* 1.创建Spark的配置对象SparkConf,设置Spark程序的运行时的配置信息,
* 例如:通过setMaster来设置程序要链接的Spark集群的Master的URL,如果设置为local,
* 则代表Spark程序在本地运行,特别适合于机器配置条件非常差的情况。
*/
//创建SparkConf对象
val conf = new SparkConf()
//设置应用程序名称,在程序运行的监控界面可以看到名称
conf.setAppName("My First Spark App!")
//设置local使程序在本地运行,不需要安装Spark集群
conf.setMaster("local")
/**
* 2.创建SparkContext对象
* SparkContext是spark程序所有功能的唯一入口,无论是采用Scala,java,python,R等都必须有一个SprakContext
* SparkContext核心作用:初始化spark应用程序运行所需要的核心组件,包括DAGScheduler,TaskScheduler,SchedulerBackend
* 同时还会负责Spark程序往Master注册程序等;
* SparkContext是整个应用程序中最为至关重要的一个对象;
*/
//通过创建SparkContext对象,通过传入SparkConf实例定制Spark运行的具体参数和配置信息
val sc = new SparkContext(conf)
/**
* 3.根据具体数据的来源(HDFS,HBase,Local,FS,DB,S3等)通过SparkContext来创建RDD;
* RDD的创建基本有三种方式:根据外部的数据来源(例如HDFS)、根据Scala集合、由其他的RDD操作;
* 数据会被RDD划分成为一系列的Partitions,分配到每个Partition的数据属于一个Task的处理范畴;
*/
//读取本地文件,并设置一个partition
// val lines = sc.textFile("D://testspark//README.md",1)
val lines = sc.textFile("D://testspark//WordCount.txt",1)
/**
* 4.对初始的RDD进行Transformation级别的处理,例如map,filter等高阶函数的变成,来进行具体的数据计算
* 4.1.将每一行的字符串拆分成单个单词
*/
//对每一行的字符串进行拆分并把所有行的拆分结果通过flat合并成一个大的集合
val words = lines.flatMap { line => line.split(" ") }
/**
* 4.2.在单词拆分的基础上对每个单词实例计数为1,也就是word => (word,1)
*/
val pairs = words.map{word =>(word,1)}
/**
* 4.3.在每个单词实例计数为1基础上统计每个单词在文件中出现的总次数
*/
//对相同的key进行value的累积(包括Local和Reducer级别同时Reduce)
val wordCounts = pairs.reduceByKey(_+_)
//打印输出
wordCounts.foreach(pair => println(pair._1+":"+pair._2))
sc.stop()
}
}
- 大小: 130.6 KB
分享到:
相关推荐
在linux环境下部署的Hadoop集群-WordCount运行详解。
Hadoop集群-WordCount运行详解.pdf Hadoop,Hadoop集群,WordCount,pdf
spark local下 WordCount运行示例,maven项目,直接导入eclipse即可
Hadoop集群中运行的基础示例WordCount
在spark上运行wordcount程序,可以进行单词计数
博客配套文件,详细演示了本地和集群模式如何运行Spark程序,演示了一个简单wordCount程序流程。
亲自测试的
scala语言和python一样都是交互式的语言,操作简单。这是wordcount的scala实现,简单明了,比java实现简单很多,希望对大家有所帮助
大数据实验报告Windows环境下安装Spark及RDD编程和Spark编程实现wordcount.doc
本例子是让新手熟悉了解如果用idea开发程序,提交到spakr集群上读取hdfs数据这么一个流程。博客讲解链接:https://blog.csdn.net/cuicanxingchen123456/article/details/83573838
采用java实现的spark的wordcount单词技术的程序.可以跑通。
通用的wordcount 程序, 不依赖具体Hadoop平台,做research时很有用
hadoop scala spark 例子项目,运行了单机wordcount
MapReduce采用"分而治之"的思想,把对大规模数据集的...一个Hadoop集群中只有一台JobTracker。 在分布式计算中,MapReduce框架负责处理了并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信
使用Spark实现对一个文档中的每一行的单词进行词配对计数,要求去标点符号,将大写符号统一转化成为小写单词。
一、实验目的 1. 理解Spark编程思想; 2. 学会在Spark Shell中编写Scala程序; 3. 学会在Spark Shell中运行Scala程序。 二、实验环境 Windows 10 VMware Workstation Pro虚拟机 ...(二)spark运行wordcount程序
基于Spark的wordcount代码
利用Spark Streaming实现WordCount 需求:监听某个端口上的网络数据,实时统计出现的不同单词个数。 1,需要安装一个nc工具:sudo yum install -y nc 2,执行指令:nc -lk 9999 -v import os #### 配置spark driver...
细细品味Hadoop_Hadoop集群(第6期)_WordCount运行详解