码农之家
royal007a
给大家带来的一篇关于Spark相关的电子书资源,介绍了关于Spark、Streaming、技术内幕、源码剖析方面的内容,本书是由清华大学出版社出版,格式为PDF,资源大小204 MB,王家林 夏阳编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.7,更多相关的学习资源可以参阅 程序设计电子书、等栏目。
本书以大数据处理引擎Spark的稳定版本1.6.x为基础,从应用案例、原理、源码、流程、调 优等多个角度剖析Spark上的实时计算框架Spark Streaming。在勾勒出Spark Streaming架构轮廓的 基础上,从基本源码开始进行剖析,由浅入深地引导已具有Spark和Spark Streaming基础技术知识 的读者进行Spark Streaming的进阶学习,理解Spark Streaming的原理和运行机制,为流数据处理 的决策和应用提供了技术参考;结合Spark Streaming的深入应用的需要,对Spark Streaming的性 能调优进行了分析,也对Spark Streaming功能的改造和扩展提供了指导。 本书适合大数据领域CTO、架构师、高级软件工程师,尤其是Spark领域已有Spark Streaming 基础知识的从业人员阅读,也可供需要深入学习Spark、Spark Streaming的高校研究生和高年级本科生参考。
上一篇:自己动手做iOS App:从设计开发到上架App Store 下一篇:DevOps:原理、方法与实践
展开 +
收起 -
1. Spark Streaming Spark Streaming是一个基于Spark Core之上的实时计算框架,可以从很多数据源消费数据并对数据进行处理 Spark Streaing中有一个最基本的抽象叫DStream(代理),本质上就是一系列连续的RDD,DStream其实就是对RDD的封装 DStream可以认为是一个RDD的工厂,该DStream里面生产都是相同业务逻辑的RDD,只不过是RDD里面要读取数据的不相同 在一个批次的处理时间间隔里, DStream只产生一个RDD DStream就相当于一个"模板", 我们可以根据这个"模板"来处理一段时间间隔之内产生的这个rdd,以此为依据来构建rdd的DAG 2. 当下比较流行的实时计算引擎 吞吐量 编程语言 处理速度 生态 Storm 较低 clojure 非常快(亚秒) 阿里(JStorm) Flink 较高 scala 较快(亚秒) 国内使用较少 Spark Streaming 非常高 scala 快(毫秒) 完善的生态圈 3. Spark Streaming处理网络数据 //创建StreamingContext 至少要有两个线程 一个线程用于接收数据 一个线程用于处理数据val conf = new SparkConf().setAppName("Ops1").setMaster("local[2]")val ssc = new StreamingContext(conf, Milliseconds(3000))val receiverDS: ReceiverInputDStream[String] = ssc.socketTextStream("uplooking01", 44444)val pairRetDS: DStream[(String, Int)] = receiverDS.flatMap(_.split(",")).map((_, 1)).reduceByKey(_ + _)pairRetDS.print()//开启流计算ssc.start()//优雅的关闭ssc.awaitTermination() 4. Spark Streaming接收数据的两种……
spark能跑Python么? spark是可以跑Python程序的。python编写好的算法,或者扩展库的,比如sklearn都可以在spark上跑。直接使用spark的mllib也是可以的,大部分算法都有。 Spark 是一个通用引擎,可用它来完成各种各样的运算,包括 SQL 查询、文本处理、机器学习等。 本次实验是搭有spark环境的linux下跑的,spark版本为1.6.1,相当于在在spark本地执行,spark文件放在/opt/moudles/spark-1.6.1/(代码中会看到) 编写python测试程序 #test.py文件# -*- coding:utf-8 -*-import osimport sys#配置环境变量并导入pysparkos.environ['SPARK_HOME'] = r'/opt/moudles/spark-1.6.1'sys.path.append(/opt/moudles/spark-1.6.1/python)sys.path.append(/opt/moudles/spark-1.6.1/python/lib/py4j-0.9-src.zip)from pyspark import SparkContext, SparkConfappName =spark_1 #应用程序名称master= spark://hadoop01:7077#hadoop01为主节点hostname,请换成自己的主节点主机名称conf = SparkConf().setAppName(appName).setMaster(master)sc = SparkContext(conf=conf)data = [1, 2, 3, 4, 5]distData = sc.parallelize(data)res = distData.reduce(lambda a, b: a + b)print(===========================================)print (res)print(===========================================) 执行python程序 执行如下命令 python test.py 执行与结果分别如下图所示: 以上就是spark能跑Python么的详细内容,更多请关注码农之家其它相关文章! ……
我们首先提出这样一个简单的需求: 现在要分析某网站的访问日志信息,统计来自不同IP的用户访问的次数,从而通过Geo信息来获得来访用户所在国家地区分布状况。这里我拿我网站的日志记录行示例,如下所示: 121.205.198.92 - - [21/Feb/2014:00:00:07 +0800] "GET /archives/417.html HTTP/1.1" 200 11465 "http://shiyanjun.cn/archives/417.html/" "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"121.205.198.92 - - [21/Feb/2014:00:00:11 +0800] "POST /wp-comments-post.php HTTP/1.1" 302 26 "http://shiyanjun.cn/archives/417.html/" "Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0"121.205.198.92 - - [21/Feb/2014:00:00:12 +0800] "GET /archives/417.html/ HTTP/1.1" 301 26 "http://shiyanjun.cn/archives/417.html/" "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"121.205.198.92 - - [21/Feb/2014:00:00:12 +0800] "GET /archives/417.html HTTP/1.1" 200 11465 "http://shiyanjun.cn/archives/417.html" "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"121.205.241.229 - - [21/Feb/2014:00:00:13 +0800] "GET /archives/526.html HTTP/1.1" 200 12080 "http://shiyanjun.cn/archives/526.html/" "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko/20100101 Firefox/11.0"121.205.241.229 - - [21/Feb/2014:00:00:15 +0800] "POST /wp-comments-post.php HTTP/1.1" 302 26 "http://shiyanjun.cn/archives/526.html/" "Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0" Java实现Spark应……
Copyright 2018-2020 xz577.com 码农之家
电子书资源由网友、会员提供上传,本站记录提供者的基本信息及资源来路
鸣谢: “ 码小辫 ” 公众号提供回调API服务、“ 脚本CDN ”提供网站加速(本站寻求更多赞助支持)
版权投诉 / 书籍推广 / 赞助:520161757@qq.com
上传资源(网友、会员均可提供)
Spark Streaming算子开发代码讲解
Spark Streaming算子开发实例 transform算子开发 transform操作应用在DStream上时,可以用于执行任意的RDD到RDD的转换操作,还可以用于实现DStream API中所没有提供的操作,比如说,DStreamAPI中并没有提供将一个DStream中的每个batch,与一个特定的RDD进行join的操作,DStream中的join算子只能join其他DStream,但是我们自己就可以使用transform操作来实现该功能。 实例:黑名单用户实时过滤 package StreamingDemoimport org.apache.log4j.{Level, Logger}import org.apache.spark.SparkConfimport org.apache.spark.streaming.{Seconds, StreamingContext}/** * 实时黑名单过滤 */object TransformDemo { def main(args: Array[String]): Unit = { //设置日志级别 Logger.getLogger(org).setLevel(Level.WARN) val conf = new SparkConf() .setAppName(this.getClass.getSimpleName) .setMaster(local[2]) val ssc = new StreamingContext(conf, Seconds(2)) //创建一个黑名单的RDD val blackRDD = ssc.sparkContext.parallelize(Array((zs, true), (lisi, true))) //通过socket从nc中获取数据 val linesDStream = ssc.socketTextStream(Hadoop01, 6666) /** * 过滤黑名单用户发言 * zs sb sb sb sb * lisi fuck fuck fuck * jack hello */ linesDStream .map(x = { val info = x.split( ) (info(0), info.toList.tail.mkString( )) }) .transform(rdd = { //transform是一个RDD-RDD的操作,所以返回值必须是RDD /** * 经过leftouterjoin操作之后,产生的结果如下: * (zs,(sb sb sb sb),Some(true))) * (l……