spark 的 wordcount

记录spark的Wordcount小程序:

前提:hdfs已经打开

创建一个name为wc.input的文件,上传到hdfs中的/user/hadoop/spark/中,内容如上图

[[email protected] hadoop-2.6.0-cdh5.4.0]# bin/hdfs dfs -put wc.input /user/hadoop/spark/            上传

[[email protected] hadoop-2.6.0-cdh5.4.0]# bin/hdfs dfs -ls    /user/hadoop/spark/                        查看文件

[[email protected] hadoop-2.6.0-cdh5.4.0]# bin/hdfs dfs -text /uesr/hadoop/spark/wc.input            查看文件内容

[[email protected] spark-1.3.1]# bin/spark-shell                                                             打开spark的客户端

scala> val rdd=sc.textFile("hdfs://spark00:8020/user/hadoop/spark/wc.input")        读取dfs中的文件wc.input

val wordcount = rdd.flatMap(x=>x.split(" ")).map(x=>(x,1)).reduceByKey((a,b)=>a+b)            进行mapreduce

wordcount.collect                    查看所有

rdd.flatMap(line=>line.split(" ")).map(word=>(word,1)).reduceByKey((a,b)=>a+b).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)).collect

sc.textFile("hdfs:spark00:8020/user/hadoop/spark/wc.input").flatMap(line=>line.split(" ")).map(word=>(word,1)).reduceByKey((a,b)=>a+b).collect

sc.textFile(.....).flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

排序:

val wordsort = wordcount.sortByKey(true)

val wordsort = wordcount.sortByKey(false)

wordsort.collect

RDD的认识:

在spark中,一个应用程序中包含多个job任务

在mapreduce中,一个job任务就是一个应用

RDD    的特点:

1》    分区   partitioned,split

2》    计算  compute

3》    依赖

rdd特点官网上的翻译及理解:

1,A list of partitions

一系列的分片:比如64M一片,类似于Hadoop中的split

2,A function for computing each split

在每个分片上都有一个函数去迭代/执行/计算  它

3,A list of dependencies on other RDDs

一系列的依赖:RDDa转换成RDDb,RDDb转换成RDDc,那么RDDc就依赖于RDDb,RDDb就依赖于RDDa

4,Optionally,a Partitioner for key-value RDDs(e.g. to say that the RDD is hash-partitioned)

对于key-value的RDD可指定一个partitioner,告诉它如何分片;常用的有hash,range

5,Optionally,a list of preferred location(s) to compute each split on (e.g.    block    locations    for    an    HDFS    file)

要运行的计算/执行最好在哪几个机器上运行,数据本地性

为什么会有哪几个呢?

比如:hadoop默认有三个位置,或者spark    cache到内存是可能通过StorageLevel设置多个副本,所以一个partition可能返回多个最佳位置

来自为知笔记(Wiz)

时间: 2024-10-07 06:47:07

spark 的 wordcount的相关文章

Spark的wordcount程序产生多少个RDD?

val rdd = sc.textFile("hdfs://Master.hdp:9000/wc").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortBy(_._2,false).collectrdd.saveAsTextFile("hdfs://Master.hdp:9000/out01") 思考:在spark的wordcount过程一共产生多少个RDD? 通过该命令(scala>

1.spark的wordcount解析

一.Eclipse(scala IDE)开发local和cluster (一). 配置开发环境 要在本地安装好java和scala. 由于spark1.6需要scala 2.10.X版本的.推荐 2.10.4,java版本最好是1.8.所以提前我们要需要安装好java和scala并在环境变量中配置好. 下载scala IDE for eclipse安装 连接:http://scala-ide.org/download/sdk.html  打开ide新建scala project 点击file -

编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本]

编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本] 1. 开发环境 Jdk 1.7.0_72 Maven 3.2.1 Scala 2.10.6 Spark 1.6.2 Hadoop 2.6.4 IntelliJ IDEA 2016.1.1 2. 创建项目1) 新建Maven项目 2) 在pom文件中导入依赖pom.xml文件内容如下: <?xml version="1.0" encoding="UTF-8"?> &l

用SBT编译Spark的WordCount程序

问题导读: 1.什么是sbt? 2.sbt项目环境如何建立? 3.如何使用sbt编译打包scala? sbt介绍 sbt是一个代码编译工具,是scala界的mvn,可以编译scala,java等,需要java1.6以上. sbt项目环境建立 sbt编译需要固定的目录格式,并且需要联网,sbt会将依赖的jar包下载到用户home的.ivy2下面,目录结构如下: |--build.sbt |--lib |--project |--src | |--main | | |--scala | |--tes

spark 例子wordcount topk

spark 例子wordcount topk 例子描述: [单词计算wordcount ] [词频排序topk] 单词计算在代码方便很简单,基本大体就三个步骤 拆分字符串 以需要进行记数的单位为K,自己拼个数字1为V,组成一个映射或者元组 分组(groupByKey) 词频排序 将分组后的数据进行排序 代码片段: /* 单词计算wordcount */ val input = Source.fromFile("E:/test.txt").getLines.toArray val wc

Spark 加强版WordCount ,统计日志中文件访问数量

原文地址:http://blog.csdn.net/whzhaochao/article/details/72416956 写在前面 学习Scala和Spark基本语法比较枯燥无味,搞搞简单的实际运用可以有效的加深你对基本知识点的记忆,前面我们完成了最基本的WordCount功能的http://blog.csdn.net/whzhaochao/article/details/72358215,这篇主要是结合实际生产情况编写一个简单的功能,功能就是通过分析CDN或者Nginx的日志文件,统计出访问

spark示例——WordCount修改版

java代码: 注:打包的时候一个依赖jar都不要. import java.util.Arrays; import java.util.List; import java.util.regex.Pattern; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapred.TextOutputFormat; import org.apache.

Eclipse 编写的spark版WordCount运行在spark上

1.代码编写 if (args.length != 3 ){       println("usage is org.test.WordCount <master> <input> <output>")       return     }     val sc = new SparkContext(args(0), "WordCount",     System.getenv("SPARK_HOME"), S

用IDEA编写spark的WordCount

我习惯用Maven项目 所以用IDEA新建一个Maven项目 下面是pom文件 我粘上来吧 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati