首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spark 2.3.0 重要特性介绍

为了继续实现 Spark 更快,更轻松,更智能的目标,Spark 2.3 在许多模块都做了重要的更新,比如 Structured Streaming 引入了低延迟的持续处理;支持 stream-to-stream...除了这些比较具有里程碑的重要功能外,Spark 2.3 还有以下几个重要的更新: 引入 DataSource v2 APIs [SPARK-15689, SPARK-20928] 矢量化的 ORC reader...模型 [SPARK-13030, SPARK-22346, SPARK-23037] MLlib 增强 [SPARK-21866, SPARK-3181, SPARK-21087, SPARK-20199...] Spark SQL 增强 [SPARK-21485, SPARK-21975, SPARK-20331, SPARK-22510, SPARK-20236] 这篇文章将简单地介绍上面一些高级功能和改进...最后,Spark 2.3 带来了改进过的 Python API,用于开发自定义算法,包括 UnaryTransformer 以及用于保存和加载算法的自动化工具。

1.6K30

从Spark MLlib到美图机器学习框架实践

Transformer 继承自 Transformer 类,实现 transform 方法,通常是在输入的 DataFrame 上添加一列或多列。...对于单输入列,单输出列的 Transformer 可以继承自 UnaryTransformer 类,并实现其中的 createTransformFunc 方法,实现对输入列每一行的处理,并返回相应的输出...该组件主要用于训练样本的生产,实现了灵活高效的样本特征编码,可以实现将任意特征集合放在同一个空间进行编码,不同特征集合共享编码空间;为此我们提出了两个概念:第一个是「域」,用于定义共享相同建模过程的一组特征...Spark Feature 最终采用 TFRecords 作为训练样本的存储格式。 Bamboo:模型定义与训练 该组件主要为了实现可扩展、高效、简单快速的模型定义与训练。...目前这块工作还在进行中,具体实现方案细节,我们放到后面的专题文章介绍。 ? 以上就是美图自研机器学习框架的简要介绍,欢迎持续关注「美图数据技术团队」,后续将带来该平台的详细介绍。

1.1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    从Spark MLlib到美图机器学习框架实践

    Transformer 继承自 Transformer 类,实现 transform 方法,通常是在输入的 DataFrame 上添加一列或多列。...对于单输入列,单输出列的 Transformer 可以继承自 UnaryTransformer 类,并实现其中的 createTransformFunc 方法,实现对输入列每一行的处理,并返回相应的输出...该组件主要用于训练样本的生产,实现了灵活高效的样本特征编码,可以实现将任意特征集合放在同一个空间进行编码,不同特征集合共享编码空间;为此我们提出了两个概念:第一个是「域」,用于定义共享相同建模过程的一组特征...Spark Feature 最终采用 TFRecords 作为训练样本的存储格式。 Bamboo:模型定义与训练 该组件主要为了实现可扩展、高效、简单快速的模型定义与训练。...目前这块工作还在进行中,具体实现方案细节,我们放到后面的专题文章介绍。 ?

    93810

    Apache Spark:来自Facebook的60 TB +生产用例

    为了实现更新的特征数据并提高可管理性,选取了一个现有的管道并尝试将其迁移到Spark。...使 PipedRDD对fetch失败更有鲁棒性(SPARK-13793):PipedRDD 以前的实现不够强大,无法处理由于节点重启而导致的获取失败,并且只要出现获取失败,该作业就会失败。...可配置的最大获取失败次数(SPARK-13369):对于这种长时间运行的作业,由于机器重启而引起的获取失败概率显着增加。...最重要的是,我们在Spark driver中实现了一项功能,以便能够暂停任务的调度,以便由于群集重新启动导致过多的任务失败不会导致job失败。...修复由于fetch失败导致的重复任务运行问题 (SPARK-14649):Spark driver在发生fetch失败时重新提交已在运行的任务,从而导致性能不佳。

    1.3K20

    spark任务之Task失败监控

    需求 spark应用程序中,只要task失败就发送邮件,并携带错误原因。...背景 在spark程序中,task有失败重试机制(根据 spark.task.maxFailures 配置,默认是4次),当task执行失败时,并不会直接导致整个应用程序down掉,只有在重试了 spark.task.maxFailures...即使spark程序task失败4次后,受yarn控制重启后在第4次执行成功了,一切都好像没有发生,我们只有通过spark的监控UI去看是否有失败的task,若有还得去查找看是哪个task由于什么原因失败了...由于代码繁琐,列出了关键的几行代码,嵌套调用关系,这里最后向eventProcessLoop发送了CompletionEvent事件; taskResultGetter.enqueueFailedTask....monitor.streaming.I4SparkAppListener") 总结 这里只是实现了一个小demo,可以做的更完善使之更通用,比如加上应用程序的名字、host、stageid、taskid

    2.8K30

    0645-6.2.0-为什么我在CDH6上使用Spark2.4 Thrift失败了

    从Spark2.2开始到最新的Spark2.4,因为变化较大,不能够采用上述两种办法直接替换jar包的方式实现,更多的依赖问题导致需要重新编译或者修改更多的东西才能在CDH5中使用最新的Spark2.4...在CDH5基于网易开源的工具Kyuubi实现的Spark2.4 Thrift功能,参考《0644-5.16.1-如何在CDH5中使用Spark2.4 Thrift》。...3.总结 通过使用Spark原生的Thrift包在CDH5.16.1和CDH6.1.1环境下部署均失败了,由于原生Thrift包与C5和C6中hive包的兼容性导致无法部署成功。...总结:由于CDH5和CDH6和编译时Spark Thrift依赖的Hive版本有差异导致无法Thrift服务无法正常运行。...总结:由于Spark的版本与CDH5中Spark2版本的包冲突问题导致,进行count或查询有数据的表是异常。

    3.4K30

    Firestorm - 腾讯自研Remote Shuffle Service在Spark云原生场景的实践

    针对不同的分布式框架,shuffle有几种实现形态: 基于文件的pull based shuffle,如MapReduce、Spark。...由于实现的是基于文件的shuffle方案,因此失败重跑时只须重跑失败的task、stage,而无须重跑整个job。 基于管道的push based shuffle,比如Flink、Storm等。...基于管道的push based shuffle的实现方式多用于Flink、Storm等流式框架,或是一些MPP框架,如Presto、Greenplum等,它的特点是具有较低的延迟和较高的性能,但是比较大的问题是由于没有将...Spark在生产环境的挑战 当前分布式计算平台上大多数的批处理作业是Spark作业,少量是MR作业,相比于MR作业,Spark作业的稳定性较差,而稳定性的问题中至少有一半是由于shuffle的失败造成的...总结 Firestorm 本文介绍了现有Spark Shuffle实现的各类问题及业界的应对方式,结合腾讯公司内部的Spark任务实际运行状况,介绍了我们自研的Firestorm的架构,设计,性能,应用等

    3.3K30

    Spark Streaming 在数据平台日志解析功能的应用

    2.2 根据调度类型进行划分 由于不同的调度类型在存储的时候目录信息不同,并且日志的开始、结束、失败等等标识不同,这些可以解析出来,标记任务的运行情况。...三、功能实现 1. 实现资源统计 可以一目了然的看到,任务的运行情况,可以让用户一目了然的查看自己任务的运行情况,查看当天失败、成功、重试的数量以及统计。 ? 2....针对失败的任务和重试的任务进行集中的关注,进而实现 task 级别的优化,同时简化用户的操作成本,再这个页面就可以集中查看。 ? 3....由于 Spark standalone 模式只支持简单的资源分配策略,每个任务按照固定的 core 数分配资源,不够时会出现资源等待的情况,这种简单的模式并不适用于多用户的场景,而 Yarn 的动态分配策略可以很好的解决这个问题...,可以实现资源的动态共享以及更加灵活的调度策略,所以公司也是采用 Spark on Yarn 的模式。

    67100

    论Spark Streaming的数据可靠性和一致性

    本文将重点分析Spark Streaming是如何设计可靠性机制并实现数据一致性的。...可靠的上下游IO系统 流计算主要通过网络socket通信来实现与外部IO系统的数据交互。由于网络通信的不可靠特点,发送端与接收端需要通过一定的协议来保证数据包的接收确认、和失败重发机制。...由于Receiver任务存在宕机风险,因此Spark提供了一个高级的可靠接收器-ReliableKafkaReceiver类型来实现可靠的数据收取,它利用了Spark 1.2提供的WAL(Write Ahead...但由于其outbound端的一致性实现还未完善,因此Exact once语义仍然不能端到端保证。...Spark Streaming社区已经在跟进这个特性的实现(SPARK-4122),预计很快将合入trunk发布。

    1.6K80

    为什么 Spark Streaming + Kafka 无法保证 exactly once?

    ---- 另一种会导致数据重复消费的情况主要是由于 Spark 处理的数据单位是 partition 引起的。...比如在处理某 partition 的数据到一半的时候,由于数据内容或格式会引起抛异常,此时 task 失败,Spark 会调度另一个同样的 task 执行,那么此时引起 task 失败的那条数据之前的该...partition 数据就会被重复处理,虽然这个 task 被再次调度依然会失败。...如果可以容忍,那就没必要非实现 exactly once 不可 即使重复处理极小部分数据会不会对最终结果产生影响。...若不会,那重复处理就重复吧,比如排重统计 若一定要保证 exactly once,应该考虑将对 partition 处理和 checkpoint或自己实现类似 checkpoint 功能的操作做成原子的操作

    76810

    spark scheduler_scheduledthreadpool

    DagScheduler:DagScheduler是一个高级的scheduler 层,他实现了基于stage的调度,他为每一个job都计算stage,跟踪哪一个rdd和stage的输出被物化(固化),以及寻找到执行...而且,他会在shuffle的输出出现错误(比如输出文件丢失)的时候处理失败,这时,之前老的stage就需要被重做。...对于并不是由于shuffle file的丢失而造成的stage的失败,这中失败由TaskScheduler,此时TaskScheduler会在取消整个stage之前重试几次task,若重试的几次都失败了...并且在tasks失败的时候,重试,然后会将运行task,重试task的事件返回给DAGScheduler。...在Spark内部TaskScheduler的种类: 1.TaskSchedulerImpl(该调度器,实现基于moses、local、local-cluster、simr的调度)。

    30120

    Spark Scheduler 内部原理剖析

    通过文章“【Spark教程】核心概念RDD”我们知道,Spark的核心是根据RDD来实现的,Spark任务调度则为Spark核心实现的重要一环。...分布式运行框架 Spark可以部署在多种资源管理平台,例如Yarn、Mesos等,Spark本身也实现了一个简易的资源管理机制,称之为Standalone模式。...由于工作中接触较多的是Saprk on Yarn,不做特别说明,以下所述均表示Spark on Yarn。...Fetch失败才需要重新提交失败的Stage以调度运行失败的任务,其他类型的Task失败会在TaskScheduler的调度过程中重试。...了解Spark Schedule有助于帮助我们清楚地认识Spark应用程序的运行轨迹,同时在我们实现其他系统时,也可以借鉴Spark的实现。

    3.9K40

    必读:再讲Spark与kafka 0.8.2.1+整合

    Receiver是使用kafka的高级消费者API来实现的。所有的Receiver从kafka里面接受数据,然后存储于Executors,spark Streaming再生成任务来处理数据。...然而,默认配置的情况,这种方式在失败的情况下有可能丢失数据,为了确保零数据丢失,可以配置预写日志(WAL,从spark1.2引入)。...但是direct 方式偏移不会提交到Zookeeper,是spark streaming在driver使用内存变量加Checkpoint进行追踪的,所以尽管会存在任务失败,但是仍然能保证消费的一次处理。...注意,由于direct方式不会提交偏移到Zookeeper,所以,基于Zookeeper的kafka监控工具就不能监控到spark streaming的消费情况。...内部实现了一个控制器,基于PID,具体PID的概念是啥,请自行百度。

    1.1K70

    SparkSQL在有赞大数据的实践(二)

    由于 Spark 自身实现任务调度和资源分配,可以通过它已有的功能针对不同优先级的任务配置不同的资源配额。...4.2 spark.blacklist.enabled Spark 针对 Task 失败有重试机制,但是当一个 Task 在某一台 host上的 一个 Spark Executor 实例执行失败,下一次重试调度因为考虑...如果失败是因为 机器坏盘引起的,那重试还是会失败,重试次数达到最大后那最终整个 Job 失败。...adaptive 功能在 Spark 1.6 版本就已经支持,但是我们目前 yz-spark 版本合入是Intel 实现的增强版本(该版本还实现了另两个功能:动态调整执行计划和 动态处理数据倾斜),目前官方版本还没有合入...由于它的低效可能会长时间占用 executor 资源,同时 subquery 结果数据量比较大的情况下,broadcast 可能带来 driver 的 OOM 风险。 ?

    99710
    领券