spark
文章平均质量分 87
syc0616
这个作者很懒,什么都没留下…
展开
-
Spark官方文档-SparkStreaming
概述Spark Streaming 是核心 Spark API 的扩展,它支持实时数据流的可扩展、高吞吐量、容错流处理。支持多个数据源操作,Kafka, Kinesis, or TCP sockets等;并且可以使用复杂算法来处理数据,像高级别功能表达map,reduce,join和window。在内部,它的工作原理如下。Spark Streaming 接收实时输入的数据流,并将数据分成批处理,然后由 Spark 引擎处理以批处理生成最终的结果流。Spark Streaming 提.原创 2021-06-22 21:01:32 · 224 阅读 · 0 评论 -
Spark官方文档-SparkCore
快速开始RDD1.Spark 的主要抽象是一个分布式弹性数据集(RDD),可以从 Hadoop InputFormats(例如 HDFS 文件)或通过转换其他RDD来创建RDD。val textFile = spark.read.textFile("README.md")2.可以通过调用某些操作直接从 RDD中获取值,或者转换RDD以获得新的值 textFile.count() textFile.first() // First item in this Dataset3.原创 2021-06-22 14:07:43 · 423 阅读 · 0 评论 -
Spark中关于购物篮的设计,以及优化
一:介绍1.购物篮的定义2.适用场景3.相关概念4.步骤5.编程实现6.步骤二:程序1.程序package com.ibeifeng.senior.mba.associationimport org.apache.hadoop.fs.{FileSystem, Path}import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}...原创 2021-06-15 20:46:47 · 297 阅读 · 2 评论 -
SparkSQL项目
YARN产生背景MapReduce1.X的问题:JobTracker的压力太大了;YARN的产生YARN的架构1个RM(ResourceManager)+N个(NodeManager)ResourceManager的职责:一个集群的active状态的RM只有一个,负责整个集群的资源管理和调度;1.处理客户端的请求(启动/杀死)任务;2.启动/监控ApplicationMaster(一个作业对应一个AM);3.监控NM;4.系统的资源分配和调度;N.原创 2021-06-15 07:22:42 · 737 阅读 · 1 评论 -
Spark内存分析
我们都知道Spark能够有效的利用内存并进行分布式计算,其内存管理模块在整个系统中扮演着非常重要的角色。为了更好地利用 Spark,深入地理解其内存管理模型具有非常重要的意义,这有助于我们对 Spark 进行更好的调优;在出现各种内存问题时,能够摸清头脑,找到哪块内存区域出现问题。下文介绍的内存模型全部指 Executor 端的内存模型, Driver 端的内存模型本文不做介绍。统一内存管理模块包括了堆内内存(On-heap Memory)和堆外内存(Off-heap Memory)两大区域,下面对这两..原创 2021-06-07 19:20:44 · 375 阅读 · 0 评论 -
Spark Streaming项目实战
初始实时流处理需求:统计主站每个(指定)课程访问的客户端、地域信息分布地域:ip转换, SparkSQL项目实战客户端:useragent获取, hadoop基础课程实现步骤: 课程编号、IP信息、useragent 进行相应的统计分析操作:MR/Spark项目框架: 日志收集: Flume 离线分析:MR/Spark 统计结果图形化展示问题: 小时级别 10分钟 ...原创 2021-06-04 07:15:37 · 1415 阅读 · 0 评论 -
Spark一些优化
一、优化1:数据本地化一、进程本地化级别1.PROCESS_LOCAL:进程本地化,代码和数据在同一个进程中,也就是在同一个executor中;计算数据的task由executor执行,数据在executor的BlockManager中;性能最好.2.NODE_LOCAL:节点本地化代码和数据在同一个节点中;比如说,数据作为一个HDFS block块,就在节点上,而task在节点上某个executor中运行;或者是,数据和task在一个节点上的不同executor中;数据需要在进程间进行原创 2021-05-31 16:48:24 · 366 阅读 · 0 评论 -
Spark 3.0如何提高SQL工作负载的性能
在几乎所有处理复杂数据的部门中,Spark很快已成为跨数据和分析生命周期的团队的事实上的分布式计算框架。新的Adaptive Query Execution框架(AQE)是Spark 3.0最令人期待的功能之一,它可以解决困扰许多Spark SQL工作负载的问题。英特尔和百度混合团队在2018年初的博客中记录了这些内容。要更深入地了解框架,请学习我们更新的Apache Spark Performance Tuning课程。我们在Workload XM方面的经验无疑证实了这些问题的现实性和严重性。A.原创 2021-05-29 21:43:50 · 242 阅读 · 0 评论 -
Spark报错与日志问题查询指南
一、各界面说明1.1、查看YARN页面的driver日志可以在右侧搜索框中填对应application号找到任务,然后点击对应的application号链接,如下图所示:这样会进入该application的信息界面,“FinalStatus”显示了该application的最后状态,点击下方的“logs”按钮也会进入到driver日志界面,如下图所示:对于driver日志而言,代码中的println()和show()等函数的输出,一般都在stdout里,大部分重要的报错信息都在stderr里。...原创 2021-05-29 21:27:35 · 1079 阅读 · 3 评论 -
spark一些
解决方案: 先创建sparkSession,然后再通过SparkSession去创建StreamingContext原创 2021-05-26 09:20:48 · 84 阅读 · 0 评论 -
Spark面试
1. Spark消费 Kafka,分布式的情况下,如何保证消息的顺序?Kafka 分布式的单位是 Partition。如何保证消息有序,需要分几个情况讨论。 同一个 Partition 用一个 write ahead log 组织,所以可以保证 FIFO 的顺序。 不同 Partition 之间不能保证顺序。但是绝大多数用户都可以通过 message key 来定义,因为同一个 key 的 message 可以保证只发送到同一个 Partition。比如说 key 是 user id,t原创 2021-05-25 21:58:07 · 182 阅读 · 0 评论 -
Spark运行原理
Spark运行原理Spark应用程序以进程集合为单位在分布式集群上运行,通过driver程序的main方法创建的SparkContext对象与集群交互。1、Spark通过SparkContext向Cluster manager(资源管理器)申请所需执行的资源(cpu、内存等)2、Cluster manager分配应用程序执行需要的资源,在Worker节点上创建Executor3、SparkContext 将程序代码(jar包或者python文件)和Task任务发送给Executor执行,并收原创 2021-05-25 21:21:38 · 220 阅读 · 0 评论 -
2021-04-16
Avro是一个数据序列化系统。它提供以下:1 丰富的数据结构类型2 快速可压缩的二进制数据形式3 存储持久数据的文件容器4 远程过程调用RPC5 简单的动态语言结合功能,Avro和动态语言结合后,读写数据文件和使用RPC协议都不需要生成代码,而代码生成作为一种可选的优化只值得在静态类型语言中实现。Avro依赖于模式(Schema)。Avro数据的读写操作是很频繁的,而这些操作都需要使用模式,这样就减少写入每个数据资料的开销,使得序列化快速而又轻巧。这种数据及其模式的自我描述方便于动态脚本语言的原创 2021-04-16 21:05:57 · 60 阅读 · 0 评论 -
Spark-Hbase 查询
要使用HBase-Spark Connector,用户需要定义在HBase和Spark表之间的映射关系的schema目录,准备数据,并且填充到HBase表中,然后加载HBase Dataframe。之后,用户可以使用SQL查询做集成查询和访问记录HBase的表。以下描述了这个的基本步骤:1、定义目录(Define catalog)2、保存DataFrame3、加载DataFrame4、SQL 查询1.定义目录Define catalogval catalog = s"""{...原创 2021-04-16 20:46:34 · 541 阅读 · 0 评论 -
Spark中的一些技巧
1.RDD去重之前一直用Distinct进行去重,可以只能处理一元元组;采用分组,只取一个的方法来实现去重filteredStartupLogDStream = filteredStartupLogDStream .map(log => (log.uid, log)) .groupByKey .flatMap { case (_, logIt) => logIt.toList.so...原创 2020-12-30 07:08:34 · 111 阅读 · 0 评论 -
Spark错误
1.guava包冲突java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from 解决1、 找到guava包位置,删除多余包2、 使用spark时,可能会遇上该问题,因为spark依赖低版本的guava,删除高版本,在Maven中添加低版本guava依赖:...原创 2020-12-02 23:04:35 · 174 阅读 · 0 评论 -
Spark转换算子
1.map对RDD中的每个元素执行一个函数,然后返回新的RDD;JavaSparkContext sc = new JavaSparkContext(conf);List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9,10);JavaRDD<Integer> intRDD = sc.parallelize(list);intRDD.map(x -> x+1).foreach(f-> System.out.pri原创 2020-09-08 19:48:07 · 115 阅读 · 0 评论 -
WorldCount
public class WordCount { public static void main(String[] args) { SparkConf conf = new SparkConf().setAppName("wordcount") .setMaster("local[*]"); JavaSparkContext sc = new JavaSparkContext(conf); Configuration .原创 2020-09-08 19:04:24 · 128 阅读 · 0 评论 -
创建RDD
1.创建RDDval stringRdd=sc.parallelize(Array("Java","Scala","Python","Ruby","JavaScript","Java"))过滤filter RDDval filteredRdd = stringRdd.filter(s =>s.startsWith("J"))收集RDDval list = filteredRdd.collect原创 2020-09-08 18:49:19 · 107 阅读 · 0 评论