Apache Spark

计算压力倍增,携程度假起价引擎架构演变

三世轮回 提交于 2020-10-04 13:37:35
携程度假每个旅游线路在每期、每天的价格均有变化,而价格变化又受到多个因素影响。为尽快捕捉到价格变化,需要不断优化调整架构,使得价格调整灵敏度更高更准。这对被调服务及硬件产生了极大的压力,也带来了新的瓶颈。那么,携程是如何解决这一难题的呢?本文是携程高级研发经理陈少伟在「云加社区沙龙online」的分享整理,着重介绍了携程度假起价引擎架构不断演进的过程。 点击视频,查看完整直播回放 一、背景介绍 1. 什么是度假起价引擎? 首先,解释一下什么是度假起价引擎。度假每个旅游线路涉及到不同的出发地,不同的出发地下有不同可出发班期,每个班期都有对应的这一天的价格。旅游产品的价格由多个资源组成的,任何一个资源价格发生变化,都会影响到产品的价格。 为了尽快捕捉到价格变化,需要有一个专门的价格系统去监测不同资源的价格变化,这就是起价引擎。 2. 旅游电商和普通电商的区别是什么? 普通电商的商品基本都是标品,价格和库存都针对的是单个SKU(StockKeeping Unit 库存单元),而旅游打包类商品都是由多个SKU组成(静态和实时匹配),任意一个SKU的价格、库存发生变化,都会直接影响到它所关联的所有产品。正是由于变量太多,这也给定价带来了极大的挑战。 上图展示的是京东上一个商品截图,我们可以看到它涉及到两个SKU,基本上像这种情况,每个SKU的价格都是比较确定的。 3.

Apache Spark 2.2.0 官方文档中文版

本小妞迷上赌 提交于 2020-10-04 07:21:27
原文链接: http://www.apachecn.org/bigdata/spark/268.html Apache Spark™ 是一个快速的, 用于海量数据处理的通用引擎. 官方网址: http://spark.apache.org 中文文档: http://spark.apachecn.org 花了大概两周左右的时间,在原来 Spark 2.0.2 中文文档 版本的基础上,终于迭代出该 Spark 2.2.0 中文文档 的版本了。 衷心感谢每一位贡献者,感谢 ApacheCN 让我们聚在一起奋斗,我们一直在努力 。。。 网址: http://spark.apachecn.org/docs/cn/2.2.0 github: https://github.com/apachecn/spark-doc-zh (如果觉得不错,请各位大佬们给个 star ) 贡献者: https://github.com/apachecn/spark-doc-zh#贡献者 建议反馈: https://github.com/apachecn/spark-doc-zh#联系方式 以下是 Spark 2.2.0 中文文档 的目录索引: Apache Spark 2.2.0 官方文档中文版 概述 编程指南 快速入门 Spark 编程指南 Spark Streaming 编程指南 DataFrames,

5 SparkCore面试题

主宰稳场 提交于 2020-10-04 00:24:42
SparkCore面试题 1 RDD编程 1.1 RDD算子 RDD算子详解:https://blog.csdn.net/qq_38497133/article/details/107822343 一般来说, 转换算子 是对一个数据集里的所有记录执行某种函数,从而使记录发生改变; 而 执行算子 通常是运行某些计算或聚合操作,并将结果返回运行 SparkContext 的驱动程序。 ① 请列举 Spark 的 transformation (转换)算子(不少于 8 个),并简述功能 map(func) :返回一个新的 RDD ,该 RDD 由 每一个输入元素 经过 func 函数转 换后组成 .; mapPartitions(func) : 类似于 map ,但独立地在 RDD 的每一个 分片(分区) 上运行,因此 在类型为 T 的 RDD 上运行时, func 的函数类型必须是 Iterator[T] => Iterator[U] ; 假设有 N 个 元素,有 M 个分区,那么 map 的函数的将被调用 N 次 , 而 mapPartitions 被调用 M 次 , 一个 函数一次处理所有分区; flatMap : 将RDD中的每一项都进行 map操作 ,然后再进行flat 压平操作 (变成一个个的单词) ; reduceByKey :

Spark-shell的使用

浪尽此生 提交于 2020-10-03 10:07:40
spark-shell作为交互式本地调试spark程序的利器,非常有用。 看看怎么上手吧,首先下载最新版的spark,这里下载的是spark 3.0版本。 然后执行bin\spark-shell脚本,进入交互环境: scala> spark.range(1000*1000).count() 测试一下spark-shell是否正常工作,能显示出来就表示没问题。 接着看看怎么连mysql,这里我们尝试读取本地mysql数据库test库的people表。 首先设置链接参数: scala>val conf=Map("url" -> "jdbc:mysql://127.0.0.1:3306/test", "driver" -> "com.mysql.jdbc.Driver", "dbtable" -> "person", "user" -> "root", "password" -> "123456") 然后载入DataFrameReader: scala>val peopleDF=sparl.read.format("jdbc").options(conf).load() scala> peopleDF.show 显示这个,表示读取mysql成功了!! 来源: oschina 链接: https://my.oschina.net/u/778683/blog/4298722

pdf expert for windows_激活码_百度云_网盘下载(附安卓版)

爱⌒轻易说出口 提交于 2020-10-03 06:30:29
pdf expert for mac是Readdle开发团队推出了第一个最好用的PDF编辑器桌面端。就算你手机端用的再溜,工作起来还是使用桌面端更高效。PDF Expert是一个快速,美观的工具,可以增强您的PDF工作流程。 从您选择的第一个文档开始,PDF Expert将通过平滑滚动和快速搜索进行操作。 PDF即时打开,无论它们是小邮件附件还是2000页报告。刚开始使用PDF Expert,您不会感觉到陌生。您可以明显地发现,它的界面显示布局和系统原生的预览.app类似。不过,PDF Expert在预览.app的基础上,做了一些改进和优化。正常浏览模式下,将使用频率较高的按钮都放到界面顶部,左侧是导航栏,可分别切换显示书签、大纲、批注和缩略图。右侧是正文显示区域,当屏幕较窄时,点击左上角的边栏按钮隐藏左侧边栏,可给正文区域提供更多的显示空间。并且支持打开多个标签栏,避免窗口拥挤的同时又能提高工作效率。小编这里带来的是tnt破解版,需要的就来下载吧! pdf expert百度云破解版下载请添加链接描述 百度云 pan . baidu .com /HJDF78238JjkdIO 提取码:V7d2 pdf expert for mac功能特性 首先,它应该是一个 PDF 阅读器,无论是打开一个邮件附件,还是 6000 页的报告 ,PDF Expert for Mac

史上最简单的spark系列教程

三世轮回 提交于 2020-10-02 09:43:54
什么是spark? 网上有关spark的介绍一搜一大堆,这里就简单的说下它的优点: Apache Spark是一种包含流处理能力的下一代批处理框架。与Hadoop的MapReduce引擎基于各种相同原则开发而来的Spark主要侧重于通过完善的内存计算和处理优化机制加快批处理工作负载的运行速度 Spark可作为独立集群部署(需要相应存储层的配合),或可与Hadoop集成并取代MapReduce引擎 与MapReduce不同,Spark的数据处理工作全部在内存中进行,只在一开始将数据读入内存,以及将最终结果持久存储时需要与存储层交互。所有中间态的处理结果均存储在内存中 除了引擎自身的能力外,围绕Spark还建立了包含各种库的生态系统,可为机器学习、交互式查询等任务提供更好的支持。相比MapReduce,Spark任务易于编写 Spark的另一个重要优势在于多样性。该产品可作为独立集群部署,或与现有Hadoop集群集成。该产品可运行批处理和流处理,运行一个集群即可处理不同类型的任务 初级阶段: ----------------------------------------------------------------------------------------------------- 变量lines其实就是一个RDD,是从电脑上的本地文本文件创建出来的 在spark中

Spark原理详解

£可爱£侵袭症+ 提交于 2020-10-02 07:24:03
Hadoop存在缺陷: 基于磁盘,无论是MapReduce还是YARN都是将数据从磁盘中加载出来,经过DAG,然后重新写回到磁盘中 计算过程的中间数据又需要写入到HDFS的临时文件 这些都使得Hadoop在大数据运算上表现太“慢”,Spark应运而生。 Spark的架构设计: ClusterManager负责分配资源,有点像YARN中ResourceManager那个角色,大管家握有所有的干活的资源,属于乙方的总包。 WorkerNode是可以干活的节点,听大管家ClusterManager差遣,是真正有资源干活的主。 Executor是在WorkerNode上起的一个进程,相当于一个包工头,负责准备Task环境和执行Task,负责内存和磁盘的使用。 Task是施工项目里的每一个具体的任务。 Driver是统管Task的产生与发送给Executor的,是甲方的司令员。 SparkContext是与ClusterManager打交道的,负责给钱申请资源的,是甲方的接口人。 整个互动流程是这样的: 1 甲方来了个项目,创建了SparkContext,SparkContext去找ClusterManager申请资源同时给出报价,需要多少CPU和内存等资源。ClusterManager去找WorkerNode并启动Excutor,并介绍Excutor给Driver认识。 2

基于 Apache Iceberg 打造 T+0 实时数仓

人走茶凉 提交于 2020-10-02 05:17:43
大数据处理技术现今已广泛应用于各个行业,为业务解决海量存储和海量分析的需求。但数据量的爆发式增长,对数据处理能力提出了更大的挑战,同时对时效性也提出了更高的要求。业务通常已不再满足滞后的分析结果,希望看到更实时的数据,从而在第一时间做出判断和决策。典型的场景如电商大促和金融风控等,基于延迟数据的分析结果已经失去了价值。 如果想及时了解 Spark 、Hadoop或者HBase相关的文章,欢迎关注微信公众号: iteblog_hadoop 为了同时满足大数据量和高时效性的双重要求,实时数仓和在线交互式(ad-hoc)分析技术,及相应的基础组件应运而生,并快速发展。其中包括通用计算引擎(如 Spark 和 Flink ),交互式分析系统(如Presto,Druid和ClickHouse),数据湖框架(如Iceberg,Hudi和Delta Lake),和底层存储(如Ozone)。 本文主要介绍基于Iceberg的特性,通过Spark和 Flink ,如何打造T+0实时数仓,以及相应功能在Iceberg社区的进展。 文章目录 1 离线和实时数仓 2 基于Iceberg打造实时数仓 3 总体框架 4 ACID事务 5 Flink写入和读取Iceberg 6 基于Spark进行数据修正 7 增量消费Iceberg中的数据 8 数据和元数据的压缩合并 9 总结 10 参考 离线和实时数仓

大数据中台

点点圈 提交于 2020-10-02 04:18:10
数据中台的由来 数据中台最早是阿里提出的,但真正火起来是2018 年,我们能感受到行业文章谈论数据中台的越来越多。大量的互联网、非互联网公司都开始建设数据中台。为什么很多公司开始建设数据中台?尽管数据中台的文章很多,但是一千人眼里有一千个数据中台,到底什么是数据中台?数据中台包含什么? 当企业需要数据化转型、精细化运营,进而产生大规模数据应用需求的时候,就需要建设数据中台。数据中台是高质量、高效赋能数据前台的一系列数据系统和数据服务的组合。数据中台包含数仓体系、数据服务集和BI 平台。 1、是阿里拜访芬兰的一家公司—SupperCell,只有不到10个人,每个员工创造估值3.74亿 ​ 2、淘宝遇到的问题:淘宝和天猫是两套完全独立的两套系统,但是却都包含了商品、交易、评价、支付、物流 ​ 3、中台之前类似的思想 SOA(方法):面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构件在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。 电商系统的四个发展阶段 1、单一系统 2、分布式系统 3、平台化(服务业务,支撑作用) 4、中台化(驱动业务,中枢作用) 第一阶段:数据库节点:单一业务系统阶段 第二阶段

Spark Join Hints 简介及使用

為{幸葍}努か 提交于 2020-10-01 12:41:03
当前 Spark 计算引擎能够利用一些统计信息选择合适的 Join 策略(关于 Spark 支持的 Join 策略可以参见 每个 Spark 工程师都应该知道的五种 Join 策略 ),但是由于各种原因,比如统计信息缺失、统计信息不准确等原因,Spark 给我们选择的 Join 策略不是正确的,这时候我们就可以人为“干涉”,Spark 从 2.2.0 版本开始(参见 SPARK-16475 ),支持在 SQL 中指定 Join Hints 来指定我们选择的 Join 策略。 如果想及时了解Spark、Hadoop或者HBase相关的文章,欢迎关注微信公众号: iteblog_hadoop Join hints 允许用户为 Spark 指定 Join 策略( join strategy)。在 Spark 3.0 之前,只支持 BROADCAST Join Hint,到了 Spark 3.0 ,添加了 MERGE, SHUFFLE_HASH 以及 SHUFFLE_REPLICATE_NL Joint Hints(参见 SPARK-27225 、 这里 、 这里 )。当在 Join 的两端指定不同的 Join strategy hints 时,Spark 按照 BROADCAST -> MERGE -> SHUFFLE_HASH -> SHUFFLE_REPLICATE_NL