在目录/home/hadoop/2016113012下有文件words.txt

hello scala
hello java
hello python
hello wujiadong

上传该文件到hdfs

hadoop@slave01:~/2016113012$ hadoop fs -put /home/hadoop/2016113012/words.txt /student/2016113012/spark
hadoop@slave01:~/2016113012$ hadoop fs -lsr /student/2016113012

启动spark shell


1和2为spark local模式,因为没有指定master地址 方式1:不设置任何参数
hadoop@master:~$ spark-shell
方式2:设置相关参数
hadoop@master:~$ spark-shell --executor-memory 2g --total-executor-cores 2 --executor-cores 1
方式3:指定master地址(暂时没用到过,用到再写) 注释:
--executor-memory 2g:指定每个worker可用内存为2g
--total-executor-cores 2:指定整个集群使用的cup核数为2个
--executor-cores:每个executor使用的cpu核数 Spark Shell中已经默认将SparkContex类初始化为对象sc。用户代码如果需用到,直接使用sc即可

在spark shell中使用Scala编写spark程序

scala> val fileRDD = sc.textFile("hdfs://master:9000/student/2016113012/spark/words.txt")
fileRDD: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[3] at textFile at <console>:15 scala> val wordRDD = fileRDD.flatMap(_.split(" "))
wordRDD: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[4] at flatMap at <console>:17 scala> val wordPair = wordRDD.map((_,1))
wordPair: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[5] at map at <console>:19 scala> val result = wordPair.reduceByKey(_+_)
17/03/04 21:08:37 INFO FileInputFormat: Total input paths to process : 1
result: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[6] at reduceByKey at <console>:21 scala> result.sortBy(_._2,false)
res1: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[9] at sortBy at <console>:24 scala> result.sortBy(_._2,false).collect()
17/03/04 21:09:49 INFO deprecation: mapred.tip.id is deprecated. Instead, use mapreduce.task.id
17/03/04 21:09:49 INFO deprecation: mapred.task.id is deprecated. Instead, use mapreduce.task.attempt.id
17/03/04 21:09:49 INFO deprecation: mapred.task.is.map is deprecated. Instead, use mapreduce.task.ismap
17/03/04 21:09:49 INFO deprecation: mapred.task.partition is deprecated. Instead, use mapreduce.task.partition
17/03/04 21:09:49 INFO deprecation: mapred.job.id is deprecated. Instead, use mapreduce.job.id
res2: Array[(String, Int)] = Array((hello,4), (scala,1), (wujiadong,1), (python,1), (java,1))
scala> result.sortBy(_._2,false).saveAsTextFile("hdfs://master:9000/wordcount_out")
17/03/04 21:11:03 INFO FileOutputCommitter: Saved output of task 'attempt_201703042111_0005_m_000000_4' to hdfs://master:9000/wordcount_out/_temporary/0/task_201703042111_0005_m_000000 查看运行的结果
hadoop@master:~$ hadoop fs -ls hdfs://master:9000/wordcount_out
17/03/04 21:12:28 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 2 items
-rw-r--r-- 3 hadoop supergroup 0 2017-03-04 21:11 hdfs://master:9000/wordcount_out/_SUCCESS
-rw-r--r-- 3 hadoop supergroup 54 2017-03-04 21:11 hdfs://master:9000/wordcount_out/part-00000
hadoop@master:~$ hadoop fs -text hdfs://master:9000/wordcount_out/part-00000
17/03/04 21:14:45 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
(hello,4)
(scala,1)
(wujiadong,1)
(python,1)
(java,1) 一行写完
scala> sc.textFile("hdfs://master:9000/student/2016113012/spark/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
res9: Array[(String, Int)] = Array((scala,1), (wujiadong,1), (python,1), (hello,4), (java,1))
//或者输出到hdfs
scala> sc.textFile("hdfs://master:9000/student/2016113012/spark/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortBy(_._2,false).saveAsTextFile("hdfs://master:9000/spark_out") 说明:
sc是SparkContext对象,该对象是提交spark程序的入口。spark shell中已经默认将SparkContext类初始化为对象sc,可以直接使用sc
textFile()是hdfs中读取数据
flatMap(_.spli" ")) 先map再压平
map((_,1))将单词和1构成元组
reduceByKey(_+_)按照key进行reduce,并将value累加
sortBy(_._2,false):按值进行排序
saveAsTextFile("")将结果写入到hdfs中

spark学习12(Wordcount程序之spark-shell)的更多相关文章

  1. Spark学习之wordcount程序

    实例代码: import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.ap ...

  2. Spark学习笔记1——第一个Spark程序:单词数统计

    Spark学习笔记1--第一个Spark程序:单词数统计 笔记摘抄自 [美] Holden Karau 等著的<Spark快速大数据分析> 添加依赖 通过 Maven 添加 Spark-c ...

  3. 大话Spark(3)-一图深入理解WordCount程序在Spark中的执行过程

    本文以WordCount为例, 画图说明spark程序的执行过程 WordCount就是统计一段数据中每个单词出现的次数, 例如hello spark hello you 这段文本中hello出现2次 ...

  4. WordCount程序【Spark Streaming版本】

    ~~ 前置 ~~ Spark Streaming 常常对接 :本地文件.HDFS.端口.flume.kafka package february.streaming import org.apache ...

  5. 50、Spark Streaming实时wordcount程序开发

    一.java版本 package cn.spark.study.streaming; import java.util.Arrays; import org.apache.spark.SparkCon ...

  6. Spark学习笔记1(初始spark

    1.什么是spark? spark是一个基于内存的,分布式的,大数据的计算框架,可以解决各种大数据领域的计算问题,提供了一站式的服务 Spark2009年诞生于伯克利大学的AMPLab实验室 2010 ...

  7. 在Spark上运行WordCount程序

    1.编写程序代码如下: Wordcount.scala package Wordcount import org.apache.spark.SparkConf import org.apache.sp ...

  8. spark学习12(spark架构原理)

    spark采用的是主从式的架构,主节点叫master,从节点是worker Driver 我们编写的spark就在Driver上,由driver进程执行. Driver是spark集群的节点之一,或你 ...

  9. Spark中的wordCount程序实现

    import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.s ...

随机推荐

  1. tsinsen A1333. 矩阵乘法

    题目链接:传送门 题目思路:整体二分(二分的是答案,附带的是操作) 把矩阵中的元素对应成插入操作,然后就有插入和询问操作. 然后根据插入操作对于答案的影响,询问操作所匹配的符合答案个数,将操作分为两段 ...

  2. NET Framework 4.5新特性 (三)64位平台支持大于2 GB大小的数组

    64位平台.NET Framework数组限制不能超过2GB大小.这种限制对于需要使用到大型矩阵和向量计算的工作人员来说,是一个非常大问题. 无论RAM容量有多大有多少,一旦你使用大型矩阵和向量计算工 ...

  3. java的static final和final的区别

    转自:https://www.cnblogs.com/EasonJim/p/7841990.html 说明:不一定准确,但是最快理解. final: final可以修饰:属性,方法,类,局部变量(方法 ...

  4. Python之实现简单计算器功能

    一,需求分析 要求计算一串包含数字+-*/()的类似于3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4)表达式的数值 二,知识点 正 ...

  5. Go语言的一些资料汇总

    1. 8分钟了解你为什么应该学习Go语言 https://www.bilibili.com/video/av45561733/ 2.手把手教你从零开始搭建Go语言开发环境 https://www.bi ...

  6. 设置EditText明文切换

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mingyue_1128/article/details/37651793 if (!isChecke ...

  7. Android学习八---OpenCV JAVA API

    OpenCV java API的文档说明在OpenCV-2.4.10-android-sdk/sdk/java/javadoc/index.html的文件夹下. 想用java API的方式进行Open ...

  8. New Moto X 2014 全版本官方解锁Bootloader图文教程

    ]秒后松开,手机就会进入fastboot模式. 如下图: <ignore_js_op> 接下来,手机连接电脑,打开刚刚的fastboot工具里面的命令提示符: <ignore_js_ ...

  9. C#多线程同步案例实操

    好久没有写博客了,为了养成学习的习惯,培养积极年轻的心态,又回到了博客园这个平台继续撸起时隔多年未光顾的空间. 项目需求: 实现一个简单的获取始发目的耗时.距离,将结果输出表格. 方案思路: 通过多线 ...

  10. 修改 item2 用户名

    首先在命令行输入 cd .oh-my-zsh/themes 如下图: 然后命令行输入 sudo vi agnoster.zsh-theme 如下图: 最后在编辑主题文件 在 prompt_segmen ...