Apache Spark

数据处理能力相差 2.4 倍?Flink 使用 RocksDB 和 Gemini 的性能对比实验

爱⌒轻易说出口 提交于 2020-08-16 03:45:12
摘要: 在本篇文章中我们将对 RocksDB、Heap 和 Gemini 在相同场景下进行压测,并对其资源消耗进行对比。测试的 Flink 内核版本为 1.10.0。 微博机器学习平台使用 Flink 实现多流 join 来生成在线机器学习需要的样本。时间窗口内的数据会被缓存到 state 里,且 state 访问的延迟通常决定了作业的性能。开源 Flink 的状态存储主要包括 RocksDB 和 Heap 两种,而在去年的 Flink Forward 大会上我们了解到阿里云 VVP 产品自研了一款更高性能的状态存储插件 Gemini,并对其进行了测试和试用。 测试场景 我们使用真实的样本拼接业务作为测试场景,通过将多个流的数据 union后对指定key做聚合(keyby),在聚合函数里从各个流中获取相应的字段,并将需要的字段重新组合成一个新的对象存储到 value state 里。这里对每个新的对象都定义一个 timer,用 timer 功能来替代 TimeWindow,窗口结束时将数据发射到下游算子。使用 timer 功能的主要原因是 timer 更灵活,更方便用户自定义,在平台的实用性,可扩展性上表现更好。 MemoryStateBackend vs. RocksDBStateBackend 首先需要说明的是,MemoryStateBackend 不建议在线上使用

Spark:统一分布式大数据分析引擎

帅比萌擦擦* 提交于 2020-08-16 01:27:11
LearningSpark 今年早些时候Spark3.0发布,前几天看到Spark学习手册也发布了第二版涵盖Spark3.0功能,想起刚开始学习Spark时就是读的这本书,最近有空就直播读下Spark学习手册第2版这本书,若能帮助到一些人也是好的! 从2020年8月3号每天早上5:30读LearningSpark这本书,如果你想学习大数据学习Spark想早起就可以一起来 直播间 ,如果你错过了直播也可以看视频回放! 第一章 Spark简介:统一的分析引擎 Spark学习手册第二版 LearningSpark2.0 2020080301 LearningSpark之Spark缘起 2020080302 LearningSpark之Google名字的来历 2020080303 LearningSpark之大数据在Yahoo 2020080304 LearningSpark之Spark光芒初露 2020080401 LearningSpark之脱离了大数据的人工智能就是耍流氓 2020080402 LearningSpark之Spark的Speed 2020080403 LearningSpark之Spark的易用模块化易扩展 2020080404 LearningSpark之一统大数据分析 2020080501 LearningSpark之SparkSQL 2020080502

大数据学习笔记之一基本概念

社会主义新天地 提交于 2020-08-15 21:47:00
近年来,随着IT技术与大数据、机器学习、算法方向的不断发展,越来越多的企业都意识到了数据存在的价值,将数据作为自身宝贵的资产进行管理,利用大数据和机器学习能力去挖掘、识别、利用数据资产。 如果缺乏有效的数据整体架构设计或者部分能力缺失,会导致业务层难以直接利用大数据大数据,大数据和业务产生了巨大的鸿沟,这道鸿沟的出现导致企业在使用大数据的过程中出现数据不可知、需求难实现、数据难共享等一系列问题,本文介绍了一些数据平台设计思路来帮助业务减少数据开发中的痛点和难点 一大数据技术栈 大数据整体流程涉及很多模块,每一个模块都比较复杂,下图列出这些模块和组件以及他们的功能特性,后续会有专题去详细介绍相关模块领域知识,例如数据采集、数据传输、实时计算、离线计算、大数据储存等相关模块。 二、lambda架构和kappa架构 目前基本上所有的大数据架构都是基于lambda和kappa架构,不同公司在这两个架构模式上设计出符合该公司的数据体系架构。lambda 架构使开发人员能够构建大规模分布式数据处理系统。 它具有很好的灵活性和可扩展性,也对硬件故障和人为失误有很好的容错性,关于lambda架构可以在网上搜到很多相关文章。而kappa架构解决了lambda架构存在的两套数据加工体系,从而带来的各种成本问题,这也是目前流批一体化研究方向,很多企业已经开始使用这种更为先进的架构。 Lambda架构

14.DStream的output操作以及foreachRDD详解

廉价感情. 提交于 2020-08-15 20:37:06
output操作概览 Output Meaning print 打印每个batch中的前10个元素,主要用于测试,或者是不需要执行什么output操作时,用于简单触发一下job。 saveAsTextFile(prefix, [suffix]) 将每个batch的数据保存到文件中。每个batch的文件的命名格式为:prefix-TIME_IN_MS[.suffix] saveAsObjectFile 同上,但是将每个batch的数据以序列化对象的方式,保存到SequenceFile中。 saveAsHadoopFile 同上,将数据保存到Hadoop文件中 foreachRDD 最常用的output操作,遍历DStream中的每个产生的RDD,进行处理。可以将每个RDD中的数据写入外部存储,比如文件、数据库、缓存等。通常在其中,是针对RDD执行action操作的,比如foreach。 output操作 DStream中的所有计算,都是由output操作触发的,比如print()。如果没有任何output操作,那么,压根儿就不会执行定义的计算逻辑。 此外,即使你使用了foreachRDDoutput操作,也必须在里面对RDD执行action操作,才能触发对每一个batch的计算逻辑。否则,光有foreachRDD output操作,在里面没有对RDD执行action操作

Java字节码角度分析判断结果 ——提升硬实力5

↘锁芯ラ 提交于 2020-08-15 16:26:09
在前面的文章中,有详细地介绍java字节码相关的知识,有兴趣的可以提前了解一下。 1. Java字节码的一段旅行经历——提升硬实力1 2. Java字节码角度分析a++ ——提升硬实力2 3. Java字节码角度分析条件判断指令 ——提升硬实力3 4. Java字节码角度分析循环控制 ——提升硬实力4 下面我们将以字节码的视角来分析判断结果 // 从字节码角度来分析:判断结果 public class T08_ByteAnalyseJudgeResult { public static void main(String[] args) { int i = 0 ; int x = 0; while (i < 10) { x = x++; i++; } System.out.println(x); // 结果是0 } } T08_ByteAnalyseJudgeResult 字节码:使用javap -v T08_ByteAnalyseJudgeResult.class,将java程序对应的字节码如下,并做了执行的注释。 0: iconst_0 // int型常量值0进栈 1: istore_1 // 将栈顶int型数值存入第二个局部变量,从0开始计数 (1号槽位 i) 2: iconst_0 // int型常量值0进栈 3: istore_2 // 将栈顶元素存入第三个本地变量

Java字节码角度分析循环控制 ——提升硬实力4

情到浓时终转凉″ 提交于 2020-08-15 16:25:54
在前面的文章中,有详细地介绍java字节码相关的知识,有兴趣的可以提前了解一下。 1. Java字节码的一段旅行经历——提升硬实力1 2. Java字节码角度分析a++ ——提升硬实力2 3. Java字节码角度分析条件判断指令 ——提升硬实力3 下面我们将以字节码的视角来分析循环控制指令 循环控制指令: 其实循环控制还是前面介绍的那些指令,例如while循环: // 从字节码角度来分析:循环控制指令 public class T05_ByteAnalyseWhile { public static void main(String[] args) { int a = 0; while (a < 10) { a++; } } } T05_ByteAnalyseWhile 字节码:使用javap -v T05_ByteAnalyseWhile.class,将java程序对应的字节码如下,并做了执行的注释。 0: iconst_0 // int型常量值0进栈 1: istore_1 // 将栈顶int型数值存入第二个局部变量,从0开始计数 2: iload_1 // 第二个int型局部变量进栈,从0开始计数 3: bipush 10 // 将一个byte型常量值推送至栈顶 5: if_icmpge 14 // 比较栈顶两int型数值大小,当结果大于等于0时跳转到14行 8: iinc

自定义Python环境创建spark任务

↘锁芯ラ 提交于 2020-08-15 12:26:47
说明: spark2.1.0(含)以下的版本不支持Python3.6 安装注意版本,请先检查版本 步骤 1. 创建虚拟python环境 这个不多介绍了,不管是通过annaconda还是virtualenv,创建好你自己的python环境。如果你也碰到了离线的平台,建议自己用docker做一个和服务器一样的系统版本,在上面完成虚拟的环境的创建,再将其拷贝出来; 2. 打包虚拟环境并将其上传hdfs 创建好环境后,进入到环境所在的文件夹,例如你的环境是 ***/***/py35, cd到py35下,使用打包命令将当前目录下的文件打包 zip -r py35.zip ./* 在当前文件夹下,将其上传至hdfs hadoop fs -put ***/***/py35.zip hdfs://***/***/***/env/ 3. 使用spark-submit命令引用 client模式下 --conf spark.yarn.dist.archives=hdfs://***/***/***/env/py35.zip#py35\ --conf spark.pyspark.driver.python=./py35/bin/python \ --conf spark.pyspark.python=./py35/bin/python \ 注意 archivs命令后的#是必须的

Spark3.0分布,Structured Streaming UI登场

自作多情 提交于 2020-08-15 10:50:05
近日,在Spark开源十周年之际,Spark3.0发布了,这个版本大家也是期盼已久。登录Spark官网,最新的版本已经是3.0。而且不出意外,对于Structured Streaming进行了再一次的加强,这样Spark和Flink在实时计算领域的竞争,恐怕会愈演愈烈。 Spark 3.0 主要的新特性如下: 相比于Spark2.4,性能提升了2倍,主要体现在自适应查询执行,动态分区修剪等方面。 Pandas API改动,包括Python类型的提示和UDF函数。 对于PySpark的异常处理进行了增强。 新的Structured Streaming UI页面。 而且解决了大量Jira问题。 Structured Streaming最初于Spark 2.0引入,并且停止了SparkStreaming的更新,很明显Structured Streaming的出现是为了在实时计算领域可以与对水印,窗口等支持更好的Flink一战。 3.0版本添加Structured Streaming的专用UI,可以方便的查看流作业的执行信息。 虽然与Flink比起来,Structured Streaming还有很长的路要走,但是可以期待Spark 3.0版本对于Structured Streaming的持续加强。 更多实时数据分析相关博文与科技资讯,欢迎关注 “实时流式计算” 来源: oschina 链接

阿里云 MaxCompute 2020-6 月刊

此生再无相见时 提交于 2020-08-15 08:40:48
导读 【6月新发布功能】 【6月新发布文档】 【6月精选技术文章】 【7月精选活动预告】 【6月新发布功能】 1. MaxCompute备份与恢复功能(公测)发布 MaxCompute备份与恢复功能提供持续备份用户修改/删除历史数据,支持快速恢复,持续保护数据安全。 适用客户 对数据保护有强需求客户/担心数据误删除的客户/担心数据被恶意删除的客户,适合广泛的企业级客户。 发布功能 MaxCompute提供数据备份与恢复功能,系统会自动备份数据的历史版本(例如被删除或修改前的数据)并保留一定时间,您可以对保留周期内的数据进行快速恢复,避免因误操作丢失数据。备份与恢复功能具备以下特点: 默认开启,不需要手动开通 -- 该功能不依赖外部存储,系统默认为所有MaxCompute项目开放的数据保留周期为1天,备份和存储免费。 自动持续备份 -- 系统自动对发生变更的数据进行备份,多次变更时将备份多个数据版本,相比固定周期性的备份策略,可以有效避免因误操作丢失数据。 恢复快速,操作简单 -- MaxCompute具备先进的元数据和多数据版本管理能力,备份和恢复操作不占用额外的计算资源,您可以通过命令快速恢复不同规模的数据。 查看文档 >> 2. MaxCompute通过DataWorks管控平台新建项目支持选择数据类型 适用客户 中国Region使用DataWorks管控台的客户 发布功能

第一讲:毕业设计题目的设计

こ雲淡風輕ζ 提交于 2020-08-15 08:13:51
本讲用于讲解如何做毕业设计的题目设定。 一、态度上的重视 我每次参加新员工面试的时候,如果是应届生,首先看的就是简历上毕业设计的描述,然后再到简历上的项目栏,因为毕业设计是大学生在大学期间所学核心技能的体现,所以毕业设计是简历上的一个非常重要的闪光点。面试官没有那么多时间看你的资料的,如果你的毕业设计题目很普通,基本上你的简历被忽视的概率非常大。你自己把别人发现你的成本垒高了的话,吃亏的还是你自己,毕竟,社会上不缺乏人才。 所以,要提高对毕业设计的重视态度。不要为了毕业设计而设计,而是要静下心来思考自己的未来就业方向。尽可能让自己的毕业设计所需要的技能符合未来就业岗位所需要的技能。并且尽可能让毕业设计贴近实战(真是可以长期运行的项目),这样的作品才有意义,才能出众。 二、毕业设计作品所需技能预估 未来所需要岗位的技能,最简单的就是去招聘网站查询,比如智联招聘或广西人才网,下面就是广西人才网的一条招聘信息,如果你期待的工作是大数据分析师: 我对上面的图的某些部分进行了下划线标注,我们分析下: 1、“熟练掌握Java或python”,那你的毕业设计最好是Java语言或python语言作为主要的编程语言。 2、“熟练掌握mysql数据库”,那么你的毕业设计最好是采用MySQL数据库作为数据库。“熟练使用SQL”,那么你的设计里面可以加入一些SQL函数或存储过程或事务等的设计