Spark3000门徒第8课IDE中开发Spark实战总结

今晚听了王家林老师的第8课IDE中开发Spark实战,课后作业是:在Eclipse中编写广告点击排名的程序并测试,程序如下:

object WordCountCluster {
  def main(args: Array[String]){
    /**
     * 第一步:创建spark的配置对象SparkConf,设置Spark程序的运行时的配置信息
     */
    val conf = new SparkConf()  //创建SparkConf对象
    conf.setAppName("First App")    //设置应用程序名称,程序运行的监控界面可以看到名称

    val sc = new SparkContext(conf)  //通过传入SparkConf实例来定制Spark运行具体参数和配置信息来创建SparkContext对象

    /**
     * 通过具体数据来源来创建RDD
     * RDD创建三种方式:根据外部数据来源(hdfs),根据Scala集合(Range),由其他RDD操作产生
     * 数据会被RDD划分成为一系列的Partitions,分配到每个Partition的数据属于一个Task处理范畴
     */
    val lines = sc.textFile(args(0),1)   //读取一个hdfs文件

    /**
     * 第四部,对初始RDD进行Transformatation,例如map,filter等高阶函数编程,来进行具体计算
     * 4.1每一行字符拆分成单个的单词
     */

    val words = lines.flatMap{line => line.split(" ")}

    /**
     * 4.2 在单词拆分的基础上对每个单词实例计数为1,word => Tuple(word,1)
     */
    val pairs = words.map{ word => (word,1)}

    //4.3 统计每个单词在文件出现的总次数,对相同的key进行value的累加(包括local和reducer级别同时reduce),广告点击排名的倒排序处理
    val wordCounts = pairs.reduceByKey(_+_).map(pair => (pair._2, pair._1)).sortByKey(false,1).map(pair => (pair._2, pair._1))

    wordCounts.collect.foreach(wordNumberPair => println(wordNumberPair._1 + ":" + wordNumberPair._2))

    sc.stop()

  }

打包成jar文件放服务器上执行:

/usr/lib/spark/bin/spark-submit --master  yarn-client  --class com.dt.spark.WordCountCluster --executor-memory 2G --executor-cores  4 ~/spark/wc.jar  ./mydir/tmp.txt

很快就能得到结果。

后续课程可以参照新浪微博 王家林_DT大数据梦工厂:http://weibo.com/ilovepains

王家林  中国Spark第一人,微信公共号DT_Spark

时间: 2024-10-12 16:41:30

Spark3000门徒第8课IDE中开发Spark实战总结的相关文章

Spark3000门徒第9课IDEA中开发Spark实战总结

今晚听了王家林老师的第9课IDEA中开发Spark实战,课后作业是:在Idea中编写广告点击排名的程序并提交集群测试, IDEA社区版本就够用,Ultimate没必要还要钱 程序如下: object WordCountCluster { def main(args: Array[String]){ /** * 第一步:创建spark的配置对象SparkConf,设置Spark程序的运行时的配置信息 * */ val conf = new SparkConf() //创建SparkConf对象 c

Spark3000门徒第10课Java开发Spark实战总结

今晚听了王家林老师的第10课Java开发Spark实战,课后作业是:用Java方式采用Maven开发Spark的WordCount并运行在集群中 先配置pom.xml <groupId>com.dt.spark</groupId> <artifactId>SparkApps</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging

Scala 深入浅出实战经典 第49课 Scala中Variance代码实战(协变)

王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2 技术爱好者尤其是大数据爱好者 可以加DT大数据梦工厂的qq群 DT大数据梦工厂① :462923555 DT大数据梦工厂②:437123764 DT大数据梦工厂③

Spark3000门徒第15课RDD创建内幕彻底解密总结

今晚听了王家林老师的第15课RDD创建内幕彻底解密,课堂笔记如下: Spark driver中第一个RDD:代表了Spark应用程序输入数据的来源.后续通过Transformation来对RDD进行各种算子的转换实现算法 创建RDD的方法:1,使用程序中的集合创建RDD;2,使用本地文件系统创建RDD:3,使用HDFS创建RDD 4,基于DB创建RDD5,基于NoSQL,例如HBase 6,基于S3创建RDD 7,基于数据流创建RDD 不指定并行度,有多少core就用多少core,所以需要资源管

Spark3000门徒第12课Spark HA实战总结

今晚听了王家林老师的第12课Spark HA实战,课堂笔记以及作业如下: Spark HA需要安装zookeeper,推荐稳定版3.4.6. 1.下载zookeeper3.4.6,2.配置环境变量3.创建data logs4.vi conf/zoo.cfg5 data目录中创建myid spark-env.sh 配置HA : export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zo

Spark3000门徒第七课Spark运行原理及RDD解密总结

今晚听了王家林老师的第七课Spark运行原理及RDD解密,课后作业是:spark基本原理,我的总结如下: 1 spark是分布式 基于内存 特别适合于迭代计算的计算框架 2 mapReduce就两个阶段map和reduce,而spark是不断地迭代计算,更加灵活更加强大,容易构造复杂算法. 3 spark不能取代hive,hive做数据仓库存储,spark sql只是取代hive的计算引擎 4 spark中间数据可以在内存也可以在磁盘 5 partition是一个数据集合 6 注意:初学者执行多

Spark3000门徒第13课Spark内核架构解密总结

昨晚听了王家林老师的第13课Spark内核架构解密,课堂笔记如下: executor中线程池并发执行和复用,Spark executor, backed by a threadpool to run tasks. 默认一个work为一个Application只开启一个executor.一个worker里executor是多点好还是少点好,看具 体情况. Worker:管理当前Node机器资源,并接受Master的指令来分配具体的计算资源Executor(使用ExecutorRunner 在新的进

Spark3000门徒第14课spark RDD解密总结

今晚听了王家林老师的第14课spark RDD解密,课堂笔记如下: Spark是基于工作集的应用抽象,RDD:Resillient Distributed Dataset是基于工作集的,spark可以对结果重用. 位置感知:spark比hadoop更精致. RDD是lazy的,是分布式函数式编程的抽象,RDD可以看做一个只读的List或者Array.产生的中间结果怎么办? 不能让 他立即计算,采用Lazy级别,只对数据处理做标记.所以RDD操作是有向的,链式的,所以Stage有1000个步骤,不

Spark3000门徒第六课精通Spark集群搭建总结

今晚听了王家林老师的第六课精通Spark集群搭建和测试,课后作业是:搭建自己的spark环境并成功运行pi,我的总结如下: 1 硬件环境: 至少8GB内存,推荐金士顿内存,虚拟机推荐Ubuntu kylin版本,可以安装各种办公软件包括搜狗输入法.上网方式:Nat,root权限登录,避免权限问题 2.软件环境: RedHat 6.4  spark 1.6.0   hadoop 2.6.0   scala 2.11.8 3 /etc/hosts ip-hostname对应关系 spark.even