Apache Spark

关于learning Spark中文版翻译

依然范特西╮ 提交于 2020-04-28 06:25:00
  在网上找了很久中文版,感觉都是需要支付一定金币才能下载,索性自己翻译算了。因为对Spark有一定了解,而且书籍前面写道,对Spark了解可以直接从第三章阅读,就直接从第三章开始翻译了,应该没有什么影响。<br> tips:驱动程序就是写SparkRDD的main方法或者shell。(以后会慢慢补充tips)<br> 书籍代码的github地址 databricks/learning-spark ) 第三章--第一部分(RDD Basic到Passing Functions to Spark) <br> 第三章--第二部分(Common Transformations and Actions到章末) 第四章--第一部分(Motivation 到 Transformations on Pair RDDs) 第四章--第二部分(Actions Available on Pair RDDs 到 章末 第五章--第一部分(开头到Comma-Separated Values and Tab-Separated Values) 第五章--第二部分(SequenceFile到章末) 第六章--第一部分(开头到Broadcast Variables) 第六章--第一部分( Working on a Per-Partition Basis到最后) 有点难受,这本书有中文版的,顿时失去了翻译的欲望

【大数据】SparkCore学习笔记

风格不统一 提交于 2020-04-28 05:25:28
第 1 章 RDD 概述 1 .1 什么是 RDD RDD ( Resilient Distributed Dataset )叫做分布式数据集,是 Spark 中最基本的数据抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。 1 .2 RDD 的属性 1) 一组分区( Partition ),即数据集的基本组成单位 ; 2) 一个计算每个分区的函数 ; 3) RDD 之间的依赖关系 ; 4) 一个 Partitioner ,即 RDD 的分片函数 ; 5) 一个列表,存储存取每个 Partition 的优先位置( preferred location )。 1 .3 RDD 特点 RDD 表示只读的分区的数据集,对 RDD 进行改动,只能通过 RDD 的转换操作,由一个 RDD 得到一个新的 RDD ,新的 RDD 包含了从其他 RDD 衍生所必需的信息。 RDDs 之间存在依赖, RDD 的执行是按照血缘关系延时计算的。如果血缘关系较长,可以通过持久化 RDD 来切断血缘关系。 1 .3.1 分区 RDD 逻辑上是分区的,每个分区的数据是抽象存在的,计算的时候会通过一个 compute 函数得到每个分区的数据。如果 RDD 是通过已有的文件系统构建,则 compute 函数是读取指定文件系统中的数据,如果 RDD 是通过其他 RDD 转换而来,则

Learning Spark中文版--第六章--Spark高级编程(1)

♀尐吖头ヾ 提交于 2020-04-28 05:16:44
Introduction(介绍) 本章介绍了之前章节没有涵盖的高级Spark编程特性。我们介绍两种类型的共享变量:用来聚合信息的累加器和能有效分配较大值的广播变量。基于对RDD现有的transformation(转换),我们针对构建成本高的任务引入批量操作,如查询数据库。为了扩展我们可使用工具的范围,我们介绍Spark与外部程序交互的方法,例如用R编写的脚本。<br> 在本章中,我们将以无线电台的通话记录作为输入构造一个示例。这些日志至少包括联系电台的呼号。呼号由国家分配,并且每个国家有自己的呼号范围,所以我们可以查询相关国家。一些呼叫日志也包含物理地址和使用者,可以用来确定距离。Example6-1中有个样例日志条目。本书的样本repo包括一系列呼号,以查找呼叫记录并处理结果。<br> Example 6-1. Sample call log entry in JSON, with some fields removed {"address":"address here", "band":"40m","callsign":"KK6JLK","city":"SUNNYVALE", "contactlat":"37.384733","contactlong":"-122.032164", "county":"Santa Clara","dxcc":"291","fullname":

SparkStreaming使用checkpoint存在的问题及解决方案

梦想与她 提交于 2020-04-28 03:31:17
sparkstreaming关于偏移量的管理 在 Direct DStream初始化的时候,需要指定一个包含每个topic的每个分区的offset用于让Direct DStream从指定位置读取数据。 offsets就是步骤4中所保存的offsets位置 读取并处理消息 处理完之后存储结果数据 用虚线圈存储和提交offset只是简单强调用户可能会执行一系列操作来满足他们更加严格的语义要求。这包括幂等操作和通过原子操作的方式存储offset。 最后,将offsets保存在外部持久化数据库如 HBase, Kafka, HDFS, and ZooKeeper中 SparkStreaming使用checkpoint存在的问题 SparkStreaming在处理kafka中的数据时,存在一个kafka offset的管理问题: 官方的解决方案是checkpoint: checkpoint是对sparkstreaming运行过程中的元数据和 每次rdds的数据状态保存到一个持久化系统中,当然这里面也包含了offset,一般是HDFS,S3,如果程序挂了,或者集群挂了,下次启动仍然能够从checkpoint中恢复,从而做到生产环境的7*24高可用。如果checkpoint存储做hdfs中,会带来小文件的问题。 但是checkpoint的最大的弊端在于,一旦你的流式程序代码或配置改变了

Kafuka面试(整合Kafka两种模式区别)

一世执手 提交于 2020-04-28 03:30:53
整合Kafka两种模式说明 ★面试题: Receiver & Direct 开发中我们经常会利用 SparkStreaming 实时地读取 kafka 中的数据然后进行处理,在 spark1.3 版本后, kafkaUtils 里面提供了两种创建 DStream 的方法 : 1.Receiver 接收方式: KafkaUtils.createDstream( 开发中不用,了解即可,但是面试可能会问 ) Receiver 作为常驻的 Task 运行在 Executor 等待数据,但是一个 Receiver 效率低,需要开启多个,再手动合并数据,再进行处理,很麻烦 Receiver 那台机器挂了,可能会丢失数据,所以需要开启 WAL( 预写日志 ) 保证数据安全,那么效率又会降低 ! Receiver 方式是通过 zookeeper 来连接 kafka 队列,调用 Kafka 高阶 API , offset 存储在 zookeeper ,由 Receiver 维护, spark 在消费的时候为了保证数据不丢也会在 Checkpoint 中存一份 offset ,可能会出现数据不一致 所以不管从何种角度来说, Receiver 模式都不适合在开发中使用 2.Direct 直连方式: KafkaUtils.createDirectStream( 开发中使用,要求掌握 ) Direct

[Spark]-Streaming-调优

懵懂的女人 提交于 2020-04-28 03:28:59
1.概述   Spark Streaming的主要应用方向是实时计算.这代表一个Spark Streaming应用必然是对执行性能和运行稳定性( 7 x 24 )有一定要求的 2.性能   在性能方面,主要是合理的利用的集群资源,设置正确的批处理大小( 提升并行度 )和减少每个批次的处理时间( 计算逻辑优化 ).以让数据流处理的能像接受一样快    2.1 调整Spark配置参数         2.2 数据接收优化     一个Spark Streaming 应用的开端便是数据接收,那么性能调优的第一步就是保证:数据不会在数据接收器端产生积压.      2.2.2 及时的处理数据以防止数据积压       如果批处理时间( batch processing time )超过批次间隔( batchinterval ), 那么显然数据会不断的积压( receiver 的内存将会开始填满 ) , 最终会抛出 exceptions( 最可能是 BlockNotFoundException ).       考虑提升并行度等方法,以加快批次处理速度.       适度加大批次间隔,如果这样能及时在下个批次触发之前将数据处理完      使用 SparkConf 配置 spark.streaming.receiver.maxRate ,可以限制receiver的接受速率      2.2

SparkStreaming消费kafka中数据的方式

主宰稳场 提交于 2020-04-28 02:55:58
有两种:Direct直连方式、Receiver方式 1、Receiver方式: (1)receiver内存溢出问题:   使用kafka高层次的consumer API来实现,使用receiver从kafka中获取的数据都保存在spark excutor的内存中,然后由Spark Streaming启动的job来处理数据。因此一旦数据量暴增,很容易造成内存溢出。 (2)数据丢失:   并且,在默认配置下,这种方式可能会因为底层失败而造成数据丢失,如果要启用高可靠机制,确保零数据丢失,要启用Spark Streaming的预写日志机制(Write Ahead Log,(已引入)在Spark 1.2)。该机制会同步地将接收到的Kafka数据保存到分布式文件系统(比如HDFS)上的预写日志中,以便底层节点在发生故障时也可以使用预写日志中的数据进行恢复。 (3)数据重复消费:   使用 Kafka 的高阶 API来在 ZooKeeper 中保存消费过的 offset的。这是消费 Kafka 数据的传统方式。这种方式配合着 WAL机制可以保证数据零丢失的高可靠性,但是却无法保证数据被处理一次且仅一次,可能会处理两次。因为 Spark和ZooKeeper之间可能是不同步的。 2、Direct直连方式:   这种新的不基于 Receiver 的直接方式,是在 Spark 1.3 中引入的

【Spark】SparkStreaming-输出到Kafka

只谈情不闲聊 提交于 2020-04-28 02:54:21
SparkStreaming-输出到Kafka sparkstreaming output kafka_百度搜索 SparkStreaming采用直连方式(Direct Approach)获取Kafka数据的研究心得 - Lin_wj1995的博客 - CSDN博客 spark/RecoverableNetworkWordCount.scala at master · apache/spark spark streaming 输出数据到kafka - CSDN博客 整合Kafka到Spark Streaming——代码示例和挑战 - stark_summer的专栏 - CSDN博客 kafka-storm-starter/PooledKafkaProducerAppFactory.scala at develop · miguno/kafka-storm-starter scala - How to write to Kafka from Spark Streaming - Stack Overflow spark-kafka-writer/SKRSpec.scala at master · BenFradet/spark-kafka-writer Spark and Kafka integration patterns · allegro.tech ProducerRecord

【Spark】Sparkstreaming-性能调优

你说的曾经没有我的故事 提交于 2020-04-28 02:53:58
Sparkstreaming-性能调优 Spark Master at spark://node-01:7077 sparkstreaming 线程 数量_百度搜索 streaming中partition里用线程池异步优化 - 曾晓森的博客 - CSDN博客 第116课: Spark Streaming性能优化:如何在毫秒内处理处理大吞吐量的和数据波动比较大 的程序 - CSDN博客 Spark(十二)--性能调优篇 - 蒋源德 - 博客园 转:spark通过合理设置spark.default.parallelism参数提高执行效率 - Feeling - BlogJava spark通过合理设置spark.default.parallelism参数提高执行效率 - CSDN博客 Spark的性能调优 Spark运行模式(一)-----Spark独立模式 - CSDN博客 spark spark.executor.cores 多个 线程_百度搜索 Spark并发度理解一 - lee的个人空间 spark executor - zyc920716的博客 - CSDN博客 spark 指定相关的参数配置 num-executor executor-memory executor-cores - 新际航 - 博客园 手把手教你 Spark 性能调优 - ImportNew

【Spark】SparkStreaming-Tasks-数量如何设置?

只谈情不闲聊 提交于 2020-04-28 02:53:39
SparkStreaming-Tasks-数量如何设置? sparkstreaming task 数量设置_百度搜索 spark内核揭秘-14-Spark性能优化的10大问题及其解决方案 - stark_summer - ITeye博客 如何在执行spark streaming 执行过程中,增加executor数量_百度知道 Spark reduce task数目设置,解决小任务过多slave挂掉 - CSDN博客 Spark中Task,Partition,RDD、节点数、Executor数、core数目的关系 – ZeZhi.net 大数据:Spark Core(二)Driver上的Task的生成、分配、调度 - 沧海一粟 - CSDN博客 Spark executor中task的数量与最大并发数 - 简书 spark分区数,task数目,core数,worker节点个数,excutor数量梳理 - hadoop_dev - 博客园 spark中tasks数量的设置 - CSDN博客 Spark Streaming性能调优详解 – 过往记忆 Spark Streaming 不同Batch任务可以并行计算么_百度知道 spark streaming并发低导致数据积压-大数据-about云开发 Spark之性能优化(重点:并行流数据接收) - CSDN博客 探索Spark源码