![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
尘客.
大数据开发攻城狮
展开
-
Spark 底层网络模块
对于分布式系统来说,网络是最基本的一环,其设计的好坏直接影响到整个分布式系统的稳定性及可用性。为此,Spark专门独立出基础网络模块spark-network,为上层RPC、Shuffle数据传输、RDD Block同步以及资源文件传输等提供可靠的网络服务。在spark-1.6以前,RPC是单独通过akka实现,数据以及文件传输是通过netty实现,然而akka实质上底层也是采用netty实现,对...转载 2020-04-14 09:26:08 · 194 阅读 · 0 评论 -
Oracle Sql 转 Spark SQL开发实践中的思考与总结
实践背景:将一段存在五重子查询嵌套与数据转换计算的Oracle SP(Sql Procedure)用Spark SQL实现。并且采用Java进行开发(不能用最爱的Scala了。。。)这段SQL的核心逻辑接近千行代码,背后涉及到的关联表接近10个。没有文档,没有表ER图可供参考。我更愿将其定义为传统计算模型在大数据背景下的技术转型,或说是升级。在此将采用Spark SQL的sql开发模式,一般...原创 2020-03-23 20:41:26 · 1004 阅读 · 0 评论 -
Spark技术内幕: 如何解决Shuffle Write一定要落盘的问题?
抓发自阿里云社群:https://yq.aliyun.com/articles/2792在Spark 0.6和0.7时,Shuffle的结果都需要先存储到内存中(有可能要写入磁盘),因此对于大数据量的情况下,发生GC和OOM的概率非常大。因此在Spark 0.8的时候,Shuffle的每个record都会直接写入磁盘,并且为下游的每个Task都生成一个单独的文件。这样解决了Shuffle解决都...转载 2020-01-01 13:22:25 · 2444 阅读 · 2 评论 -
spark调优(四):shuffle调优
转发学习自美团技术团队:https://tech.meituan.comshuffle调优调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是,影响一个Spark作业性能的因素,主要还是代码开发、资源...转载 2019-12-17 20:56:34 · 127 阅读 · 0 评论 -
spark调优(三):数据倾斜调优
转发学习自美团技术团队:https://tech.meituan.com前言 继spark调优(一):开发调优、spark调优(二):资源调优讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。1.数据倾斜调优调优概述 有的时候,...转载 2019-12-15 17:02:31 · 187 阅读 · 0 评论 -
spark调优(二):资源调优
转发学习自美团技术团队:https://tech.meituan.com建议继续阅读之前先对这篇文章的内容有一定了解:Apache Spark 内存管理详解推荐阅读:spark调优(一):开发调优资源调优概述在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置...转载 2019-12-13 20:01:12 · 189 阅读 · 0 评论 -
spark调优(一):开发调优
转发学习自美团技术团队: https://tech.meituan.com文章总体概览优化开发原则:1、避免创建重复rdd2、尽可能复用rdd:避免重复计算3、合适的持久化策略:memory_only memory_only_ser memory_and_disk等4、尽量避免shuffle算子:如reduceByKey、join、disti...转载 2019-12-12 19:57:02 · 262 阅读 · 0 评论 -
sparkStreaming状态编程简单示例(对比学习reduceByKeyAndWindow、updateStateByKey)
在此以消费kafka数据进行wordCount,对比reduceByKeyAndWindow、updateStateByKey两个api的使用。代码如下:kafkaConsumer,采用kafka0.10 direct Api。 def getKafkaConsumerStream(ssc:StreamingContext,group:String,topic:String) ={ ...原创 2019-12-11 19:17:09 · 405 阅读 · 0 评论 -
[Spark性能调优] 第一章:性能调优的本质、Spark资源使用原理和调优要点分析
转发学习大佬博客:https://www.cnblogs.com/jcchoiling/p/6440709.html本課主題大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子引言我们谈大数据性能调优,到底在谈什么,它的本质是什么,以及 Spark 在性能调优部份的要点,这两点让在进入...转载 2019-12-10 11:09:27 · 292 阅读 · 0 评论 -
spark参数调优
转发大佬博客:https://www.cnblogs.com/arachis/p/spark_parameters.htmlspark参数调优摘要 1.num-executors 2.executor-memory 3.executor-cores 4.driver-memory 5.spark.default.parallelism 6.spar...转载 2019-11-21 08:43:25 · 255 阅读 · 0 评论 -
基于Spark的交互式大数据预处理系统设计与实现(二) 相关技术和理论基础
分享我的本科毕业论文,欢迎指教。第2章 相关技术和理论基础1. Spark简介Spark研发自伯克利大学AMP实验室,是一个基于内存迭代式运算且可用于海量数据环境下的通用数据处理平台,是Apache的顶级开源项目之一。Spark旨在于提供更快的数据处理速度,更高的程序开发效率,更好的程序构建体验。Spark有如下主要特性:运行速度快:Spark使用DAG执行引擎以支持循环数据...原创 2019-08-18 16:35:56 · 1198 阅读 · 0 评论 -
基于Spark的交互式大数据预处理系统设计与实现(三) 系统需求分析和总体设计
分享我的本科毕业论文,欢迎指教。第3章 系统需求分析和总体设计系统需求分析为满足数据处理系统的前端友好展示与交互操作、后端数据分析集群高可用、系统整体稳定性。在此采用B/S+集群架构[],或说是web+集群架构,即在数据处理平台上搭建集群进行数据采集、分析、存储,而后将最终数据ETL结果直接写入相关消息中间件。而在web系统中Server端可以从消息中间件中读取结果数据反馈至客户端...原创 2019-08-22 09:20:26 · 3010 阅读 · 0 评论 -
基于Spark的交互式大数据预处理系统设计与实现(四) 集群搭建
分享我的本科毕业论文,欢迎指教。第4章 集群搭建集群搭建概述在大数据背景下,像传统技术那样启用单台计算节点去存储运算显然不行。在可预见的未来,单台计算机的运算力及相关硬件条件发展速度已经远远被数据增长速度甩在身后,不得不承认摩尔定律在计算机硬件条件上现已不再适用。于是计算机引入了多核设计,多线程设计,既然在单个节点运算上无法胜任,那就以量取胜吧。同样的,随着分布式技术的提出,计算机集...原创 2019-08-27 20:07:16 · 633 阅读 · 0 评论 -
基于Spark的交互式大数据预处理系统设计与实现(五) 实验环境下的流数据模拟生成
分享我的本科毕业论文,欢迎指教。第五章 系统详细设计与实现流数据模拟生成概述本系统采用sparkStreaming进行数据流处理,结合kafka开发实时数据流的拟生成与采集。在此考虑到数据实时处理中的一个batch即相当于一个数据批处理模型,也就是说Spark批处理从某种程度上来说是sparkStreaming实时数据处理的一个子操作,另外考虑到本系统的实际运用场景及主题,故而在此...原创 2019-09-04 20:55:09 · 674 阅读 · 0 评论 -
基于Spark的交互式大数据预处理系统设计与实现(六) 集群流数据处理
分享我的本科毕业论文,欢迎指教。流数据处理概述在数据流模拟生并写入kafka(topic:resource,即kafka下自定义名为resource的topic,下同)后,接下来的工作便是从该数据源中获取数据及运用sparkStream进行数据流的一系列实时处理,并将数据处理结果实时写入到kafka(topic:dist)中进入下一阶段的运用。集群流数据处理是本系统的核心所在,在数据转...原创 2019-09-13 14:58:25 · 698 阅读 · 1 评论 -
基于Spark的交互式大数据预处理系统设计与实现(七) Web站点搭建(数据可视化)
分享我的本科毕业论文,欢迎指教。Web站点开发概述在web端主要负责从集群获取数据进行展示以及简单的数据图形化操作。获取数据沿用kafka工具实时从集群获取数据流处理结果,而后展示至web页面。为了快捷开发,本系统采用springboot为基础架构,实现的依旧是传统mvc模式,但基于springboot的架构省去了繁琐的配置文件编写及其他糅杂工作,因而大大加快了系统总体开发进程。为了更...原创 2019-09-13 15:57:05 · 1449 阅读 · 0 评论 -
基于Spark的交互式大数据预处理系统设计与实现(一) 概述
分享我的本科毕业论文,欢迎指教。摘 要大数据时代已经到来,面对呈几何倍增且来源多样的海量数据,企业需要运用各种数据处理分析技术从中获取需要的有价值的信息。而基于大数据的四V特性,相关机构从海量数据中提取信息面临着原始数据无规则、非结构化、不完整等各种问题。这些带有各种质量问题的数据无疑增加了企业准确获取信息的难度,进而导致一系列不必要的决策失误。若能在数据处理之前对这些数据进...原创 2019-08-16 21:32:22 · 3257 阅读 · 2 评论 -
Apache Spark 内存管理详解
转发IBM开发者社区大佬文章:https://www.ibm.com/developerworks/cn/analytics/library/ba-cn-apache-spark-memory-management/index.htmlSpark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色。理解 Spark 内存管理的基本原理,有助于更好地开发 Spark...转载 2019-11-09 16:07:41 · 132 阅读 · 0 评论 -
如何优雅的关闭spark streaming实时任务
在分布式实时数据处理任务运行中,需要更新相关业务逻辑时,如何优雅的停止对应任务?写个脚本将kill发送到对应任务运行节点上上。不。这太暴力了,容易导致数据丢失问题。这里讨论的是优雅的关闭,想要优雅的关闭分布式实时任务的运行有很多种方法。在此通过监控hdfs的某个目录是否存在作为判断任务停止的依据,在需要停止时创建hdfs对应目录即可。为了下一次启动能够正常运行小区,关闭的时候还需要将对应hdf...原创 2019-11-07 11:28:59 · 1483 阅读 · 0 评论 -
spark sql读写普通文件、mysql、hive数据简单示例 (scala)
1、引入mysql-connector依赖或jar包2、开启mysql服务3、代码如下一、普通文件读写//1 read/write 有两种写法val spark: SparkSession = SparkSession.builder().appName("readT").master("local[*]").getOrCreate()import spark.implicit...原创 2019-11-03 10:24:14 · 1079 阅读 · 0 评论 -
spark下自定义UDAF的简单示例与使用
自定义UDAF定义步骤如下:继承抽象类UserDefinedAggregateFunction重写如下八个部分:输入类型:inputSchema: StructType中间数据运算类型:bufferSchema: StructType输出类型: dataType: DataType设置输入输出数据类型是否一致:deterministic: Boolean初始运算值的初始化复...原创 2019-11-02 09:13:18 · 584 阅读 · 0 评论 -
Spark自定义分区器简单示例
继上一篇:Spark分区器探索(HashPartitioner、RangePartitioner),现来看看自定义分区器。继承 org.apache.spark.Partitioner 类并实现下面三个方法。(1)numPartitions: Int:设置分区数。(2)getPartition(key: Any): Int:返回给定key计算出的分区编号(0到numPartitions-1)...原创 2019-10-31 16:21:42 · 698 阅读 · 0 评论 -
Spark分区器探索(HashPartitioner、RangePartitioner)
以Spark2.X为例,其支持Hash、Range以及自定义分区器。分区器决定了rdd数据在分布式运算时的分区个数以及数据在shuffle中发往的分区号,而分区的个数决定了reduce的个数;同样的shuffle过程中若分区器定义或选择不合适将大大增加数据倾斜的概率。综上,分区器的重要性不言而喻。首先要知道(1)Key-Value类型RDD才有分区器,非Key-Value类型RDD的分区值是...原创 2019-10-31 16:20:12 · 1091 阅读 · 0 评论 -
spark集群HA配置
环境:spark2.1.1、zookeeper3.4.121、首先保证zookeeper集群正常安装并启动zookeeper安装配置笔记2、修改spark-env.sh文件做如下配置注释掉如下内容(若预先安装了spark集群standlone模式):#SPARK_MASTER_HOST=chdp11#SPARK_MASTER_PORT=7077添加上如下内容:#配置故障恢复模式为z...原创 2019-10-26 08:42:37 · 600 阅读 · 0 评论 -
spark历史服务器配置(standalone)
1、修改conf/spark-default.conf文件(mv spark-defaults.conf.template spark-defaults.conf)如下#open the log servicesspark.eventLog.enabled true#set the work directory of log serverspark.eventLog.d...原创 2019-10-26 08:10:39 · 434 阅读 · 0 评论 -
spark-shell下的一个简单word count案例
作为spark学习的经典案例,就像是第一次接触编程时的hello word。1、启动spark-shellbin/spark-shell –master spark://chdp11:7077 –executor-memory 1g –total-executor-cores 42、数据准备1.datascala spark hadoop javascala spark hado...原创 2019-10-24 17:07:41 · 460 阅读 · 0 评论 -
spark集群安装配置笔记(standalone模式)
环境:centos6.8+spark2.11+jdk8+hadoop2.7.21、解压改名tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /usr/spark-2.1.1mv spark-2.1.1-bin-hadoop2.7 spark-2.1.12、在conf目录下做如下修改mv slaves.template slavesmv spark-...原创 2019-10-24 16:57:38 · 248 阅读 · 0 评论