原文地址:http://blog.csdn.net/cklsoft/article/details/25568621

1、首先利用http://dongxicheng.org/framework-on-yarn/spark-eclipse-ide/搭建好的Eclipse(Scala)开发平台编写scala文件。内容例如以下:

  1. import org.apache.spark.SparkContext
  2. import org.apache.spark.SparkContext._
  3. object HdfsWordCount {
  4.   def main(args: Array[String]) {
  5.     val sc = new SparkContext(args(0)/*"yarn-standalone"*/,"myWordCount",System.getenv("SPARK_HOME"),SparkContext.jarOfClass(this.getClass))
  6.                                                         //List("lib/spark-assembly_2.10-0.9.0-incubating-hadoop1.0.4.jar")
  7.     val logFile = sc.textFile(args(1))//"hdfs://master:9101/user/root/spam.data") // Should be some file on your system
  8.   //  val file = sc.textFile("D:\\test.txt")
  9.     val counts = logFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _)
  10.  //   println(counts)
  11.     counts.saveAsTextFile(args(2)/*"hdfs://master:9101/user/root/out"*/)
  12.   }
  13. }

2、利用Eclipse的Export Jar File功能将Scala源文件编译成class文件并打包成sc.jar

3、运行run_wc.sh脚本:

  1. #! /bin/bash
  2. SPARK_JAR=assembly/target/scala-2.10/spark-assembly_2.10-1.0.0-SNAPSHOT-hadoop2.2.0.jar
  3. ./bin/spark-class org.apache.spark.deploy.yarn.Client \
  4. --jar /root/spark/sh.jar \
  5. --class sh.HdfsWordCount \
  6. --args yarn-standalone \
  7. --args hdfs://master:9101/user/root/hsd.txt \
  8. --args hdfs://master:9101/user/root/outs \
  9. --num-executors 1 \
  10. --driver-memory 512m \
  11. --executor-memory 512m \
  12. --executor-cores 1

附:

TopK(选出出现频率最高的前k个)代码:

  1. package sc
  2. import org.apache.spark.SparkContext
  3. import org.apache.spark.SparkContext._
  4. object TopK {
  5. def main(args: Array[String]) {
  6. //yarn-standalone hdfs://master:9101/user/root/spam.data 5
  7. val sc = new SparkContext(args(0)/*"yarn-standalone"*/,"myWordCount",System.getenv("SPARK_HOME"),SparkContext.jarOfClass(this.getClass))
  8. //List("lib/spark-assembly_2.10-0.9.0-incubating-hadoop1.0.4.jar")
  9. val logFile = sc.textFile(args(1))//"hdfs://master:9101/user/root/spam.data") // Should be some file on your system
  10. val counts = logFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_ + _)
  11. val sorted=counts.map{
  12. case(key,val0) => (val0,key)
  13. }.sortByKey(true,1)
  14. val topK=sorted.top(args(2).toInt)
  15. topK.foreach(println)
  16. }
  17. }

附录2 join操作(题意详见:http://dongxicheng.org/framework-on-yarn/spark-scala-writing-application/):

  1. package sc
  2. import org.apache.spark.SparkContext
  3. import org.apache.spark.SparkContext._
  4. object SparkJoinTest {
  5. def main(args: Array[String]) {
  6. val sc = new SparkContext(args(0)/*"yarn-standalone"*/,"SparkJoinTest",System.getenv("SPARK_HOME"),SparkContext.jarOfClass(this.getClass))
  7. //List("lib/spark-assembly_2.10-0.9.0-incubating-hadoop1.0.4.jar")
  8. val txtFile = sc.textFile(args(1))//"hdfs://master:9101/user/root/spam.data") // Should be some file on your system
  9. val rating=txtFile.map(line =>{
  10. val fileds=line.split("::")
  11. (fileds(1).toInt,fileds(2).toDouble)
  12. }
  13. )//大括号内以最后一个表达式为值
  14. val movieScores=rating.groupByKey().map(
  15. data=>{
  16. val avg=data._2.sum/data._2.size
  17. // if (avg>4.0)
  18. (data._1,avg)
  19. }
  20. )
  21. val moviesFile=sc.textFile(args(2))
  22. val moviesKey=moviesFile.map(line =>{
  23. val fileds=line.split("::")
  24. (fileds(0).toInt,fileds(1))
  25. }
  26. ).keyBy(tuple=>tuple._1)//设置健
  27. val res=movieScores.keyBy(tuple=>tuple._1).join(moviesKey)// (<k,v>,<k,w>=><k,<v,w>>)
  28. .filter(f=>f._2._1._2>4.0)
  29. .map(f=>(f._1,f._2._1._2,f._2._2._2))
  30. res.saveAsTextFile(args(3))
  31. }
  32. }

Spark on YARN--WordCount、TopK的更多相关文章

  1. 006 Spark中的wordcount以及TopK的程序编写

    1.启动 启动HDFS 启动spark的local模式./spark-shell 2.知识点 textFile: def textFile( path: String, minPartitions: ...

  2. Spark On Yarn搭建及各运行模式说明

    之前记录Yarn:Hadoop2.0之YARN组件,这次使用Docker搭建Spark On  Yarn 一.各运行模式 1.单机模式 该模式被称为Local[N]模式,是用单机的多个线程来模拟Spa ...

  3. Spark on YARN简介与运行wordcount(master、slave1和slave2)(博主推荐)

    前期博客 Spark on YARN模式的安装(spark-1.6.1-bin-hadoop2.6.tgz +hadoop-2.6.0.tar.gz)(master.slave1和slave2)(博主 ...

  4. Spark on YARN模式的安装(spark-1.6.1-bin-hadoop2.6.tgz + hadoop-2.6.0.tar.gz)(master、slave1和slave2)(博主推荐)

    说白了 Spark on YARN模式的安装,它是非常的简单,只需要下载编译好Spark安装包,在一台带有Hadoop YARN客户端的的机器上运行即可.  Spark on YARN简介与运行wor ...

  5. Spark部署三种方式介绍:YARN模式、Standalone模式、HA模式

    参考自:Spark部署三种方式介绍:YARN模式.Standalone模式.HA模式http://www.aboutyun.com/forum.php?mod=viewthread&tid=7 ...

  6. Spark On Yarn:提交Spark应用程序到Yarn

    转载自:http://lxw1234.com/archives/2015/07/416.htm 关键字:Spark On Yarn.Spark Yarn Cluster.Spark Yarn Clie ...

  7. spark on yarn详解

    1.参考文档: spark-1.3.0:http://spark.apache.org/docs/1.3.0/running-on-yarn.html spark-1.6.0:http://spark ...

  8. Spark(十二) -- Spark On Yarn & Spark as a Service & Spark On Tachyon

    Spark On Yarn: 从0.6.0版本其,就可以在在Yarn上运行Spark 通过Yarn进行统一的资源管理和调度 进而可以实现不止Spark,多种处理框架并存工作的场景 部署Spark On ...

  9. spark on yarn模式下内存资源管理(笔记1)

    问题:1. spark中yarn集群资源管理器,container资源容器与集群各节点node,spark应用(application),spark作业(job),阶段(stage),任务(task) ...

随机推荐

  1. 一步一步学Vue(九) 路由元数据

    一步一步学Vue(九):https://www.cnblogs.com/Johnzhang/p/7260888.html

  2. 【置顶】CSP/S 2019退役祭

    标题没错,今年就是我的最后一年了. 才高一啊,真不甘心啊. DAY1(之前的看前几篇博客吧) T1 现在没挂 T2 貌似是树形DP,跑到80000的深度时挂了,于是特判了链的情况,大样例过了,现在没挂 ...

  3. SpringBoot-技术专区-配置文件加密

    工程中的配置文件如果把数据库的用户名密码写成明文的话是一件很危险的事情,之前也看见网上说可以对密码进行加密,用的时候再解密,因此今天我就尝试如何在spring boot 中的项目中实现关键信息的加密解 ...

  4. ubuntu16.04安装jdk1.8(java1.8)

    使用ppa方式安装 1.添加ppa $sudo add-apt-repository ppa:webupd8team/java $sudo apt-get update 2.安装oracle-java ...

  5. db2重组所有表和更新表统计信息

    1.构建db2admin模式下的所有表的重组语句: select ' reorg table '||TABLE_NAME||';' from sysibm.tables where  TABLE_SC ...

  6. css字体的样式与分类用法总结

    字体的样式 color 设置文本的颜色(前景色) ,它会应用到元素的所有边框,除非被 border-color 或另外某个边框颜色属性覆盖. <style> .box1 { color: ...

  7. Es学习第二课, ES安装和客户端使用

    Elasticsearch安装依赖于jdk,所以大家先保证自己电脑安装好Java环境(JDK7或更高版本),并配置好环境变量:这块的配置我就不细讲了,不管是Linux还是Windows,这块的安装和配 ...

  8. ReactNative 遇到的问题汇总

    1.react-native 启动项目出现如下报错 解决方法: nvm install v9.0.0 nvm alias default v9.0.0

  9. python3.x 匿名函数lambda_扩展sort

    #匿名函数lambda 参数: 表达式关键字 lambda 说明它是一个匿名函数,冒号 : 前面的变量是该匿名函数的参数,冒号后面是函数的返回值,注意这里不需使用 return 关键字. ambda只 ...

  10. double中首字母大写与小写的区别

    Double 是类 double是基础数据类型.Double类型是double的包装类.Double 和double之间的相互转化称为自动拆箱和自动装箱.如果从对象角度理解,那么Double就是对象, ...