Apache Spark

使用 .NET 5 体验大数据和机器学习

守給你的承諾、 提交于 2020-12-19 02:43:29
翻译:精致码农-王亮 原文:http://dwz.win/XnM .NET 5 旨在提供统一的运行时和框架,使其在各平台都有统一的运行时行为和开发体验。微软发布了与 .NET 协作的大数据(.NET for Spark)和机器学习(ML.NET)工具,这些工具共同提供了富有成效的端到端体验。在本文中,我们将介绍 .NET for Spark、大数据、ML.NET 和机器学习的基础知识,我们将研究其 API 和功能,向你展示如何开始构建和消费你自己的 Spark 作业和 ML.NET 模型。 什么是大数据 大数据是一个几乎不言自明的行业术语。该术语指的是大型数据集,通常涉及 TB 甚至 PB 级的信息,这些数据集被用作分析的输入,以揭示数据中的模式和趋势。大数据与传统工作负载之间的关键区别在于,大数据往往过于庞大、复杂或多变,传统数据库和应用程序无法处理。一种流行的数据分类方式被称为 "3V"(译注:即3个V,Volume 容量、Velocity 速度、Variety 多样性)。 大数据解决方案是为适应高容量、处理复杂多样的数据结构而定制的,并通过批处理(静态)和流处理(动态)来管理速度。 大多数大数据解决方案都提供了在数据仓库中存储数据的方式,数据仓库通常是一个为快速检索和为并行处理而优化的分布式集群。处理大数据往往涉及多个步骤,如下图所示: .NET 5

大数据集群资源预估规划【适用于面试与工作集群规划】

落爺英雄遲暮 提交于 2020-12-18 14:02:10
问题导读 1.如何判断数据增量? 2.QPS如何计算? 3.存储空间需要考虑哪些因素? 4.内存估算和哪些因素有关? 我们在实际工作,或者面试中,经常会遇到这么一个问题,集群该如何规划,一台机器多少磁盘,多少内存,多少core等。 关于公司集群规模,有的几台,有的几百或有的则几千台,那么这几百几千台机器他们的配置是怎么样的? 这里先说下大概,对于大多数公司来说,集群有的10来台,而对于电信行业,一个地方的可能有几百台,对于一线互联网集群规模就比较大一些,上千台是比较常见的。 那么如果我们要搭建大数据平台,集群该如何规划?这是我们初步搭建集群的时候,首次遇到的问题。 对于需要多少台机器,其实这个问题,不能一刀切的回答,具体情况具体分析。虽然一开始我们不知道多少台机器,但是我们可以知道影响的关键因素? 那就是数据的增量是多少? 数据的增量,这里我们来说下数据增量: 其实数据的增量不同的公司,也是不一样的,有的公司数据增量也就是几个G,而有的公司数据增量1T以上,比如物联网大数据。除了数据增量,还有其它影响因素,比如使用的计算组件,使用MapReduce和Spark,Flink在内存的使用上,肯定是有区别的。再比如QPS也影响着系统的资源分配。 除了影响因素,那么我们预估集群包含哪些步骤? 1.判断计算数据增量大小 如何计算数据量得大小,这个其实很多企业已有相关得系统

记一次 Kafka Producer 性能调优实战

旧时模样 提交于 2020-12-17 01:28:14
最近,遇到某个集群的生产端发送延迟特别高,而且吞吐量上不去,检查集群负载却很低,且集群机器配置非常好,网络带宽也很大,于是使用 Kafka 压测脚本进行了压测。 昨天凌晨,在生产环境进行实战调优,经过不断参数改动,现将生产者相关参数设置为以下配置: linger.ms=50 batch.size=524288 compression.type=lz4 acks=1(用户要求消息至少要发送到分区 leader) max.request.size=5242880 buffer.memory=268435456 在生产环境的一台服务器上,使用以上参数对集群进行生产发送性能压测: 从上图可以看到,使用平均 4k 大小的消息体对集群进行压测, 单个 Producer 平均吞吐量达到 2000MB/s,50w/s+ ! 作为对比,我还是使用同一台服务器,将调优参数去掉,再压一遍: 可以看到,最高的吞吐量也不过 500M/s,最低已经来到 2M/s 了。 虽然说实际客户端环境比压测环境复杂很多,但是使用压测工具已经能够证明,该集群的负载目前现在还远远没有达到瓶颈,且生产端还有待优化。 以上参数调优思想是: 1、buffer.memory=268435456 由于发送端发送频率非常快,加上由于 Spark 客户端频繁断开连接导致生产端 Sender 线程发送延迟增高,这就会造成客户端发送速率 >

大数据时代,如何用数据驱动精准营销

孤者浪人 提交于 2020-12-15 12:05:10
简介: 针对Yeahmobi在全球业务中需要统一治理数据资产和提供高并发、高弹性的存储服务需求,阿里云为Yeahmobi构建了一站式的数据湖解决方案。 Yeahmobi介绍 Yeahmobi是一家技术驱动发展的国际化智能营销服务公司,致力于为客户提供精准的全球营销推广服务,帮助企业在全球范围内高效地获取用户、提升品牌知名度、实现商业化变现。 作为全球领先的第三方独立广告服务商,Yeahmobi拥有丰富的全球媒体资源。平台数据覆盖全球200多个国家和地区。经过多年的不断积累,Yeahmobi目前与全球各大平台的头部与中长尾优质媒体建立了长期稳定的合作关系,构建起以优质头部流量、垂直领域细分流量、中长尾聚合流量的移动端媒体矩阵。 Yeahmobi业务场景介绍 由于Yeahmobi的投放业务覆盖全球,在执行过程中,发现来自全球各地、各行业广告主针对不同细分市场的需求。为了更好地实现精准营销落地,就需要从技术上打通上下游数据,完成跨Region的数据采集、管理,并最终有效地形成可持续优化的算法模型,最终反哺业务决策。 三大业务难点 在数字营销广告业务执行过程中,为了实现全球数字资产统一治理,Yeahmobi常常需要面对以下几个不同的挑战 原生数据本地化部署,统一收归治理成难题 由于服务的国家范围较广,为了实现服务质量的一致性,需要实现不同区域的本地化部署

腾讯云数据库MySQL高可用实践

允我心安 提交于 2020-12-13 10:20:55
主题: 腾讯云数据库MySQL高可用实践 大纲: 1. 给刚进入数据库行业新人的一些建议 2. 目前腾讯云RDS的可用性达到了99.9999%,需要做好哪些工作才能达到如此高的稳定性 3. 腾讯云RDS的性价比很高,请问都包含了哪些方面 4. TXSQL的好处 5. 腾讯云下关于MySQL高可用还需要使用者额外去监控哪些内容 听说3306π要搞事情了 是啊,马上要搞3306π深圳站了 啊,是吗?哪天啊,在哪里办,怎么报名? 12月19日 ,就在 深圳南山区海岸城 ,点文末的原文链接或者扫描二维码就可以报名了,一起来吹吹牛逼。 嘉宾自我介绍 杨杰 架构师 CDB/CynosDB数据库管控平台架构师,TXSQL内核源码贡献者,腾讯内部开源MySQL 无锁备份工具作者 01 很多小伙伴进入数据库行业,都会把进入腾讯作为目标,杨老师作为过来人可否给大家一些建议吗? 以我自身的经历来说,进入数据库行业也是偶然的机会。在腾讯数据库团队已经是第8个年头,最近几年招聘工作也比较多,算是有些心得吧。对于毕业生来说,我关注的是基础的技术能力、逻辑思维和技术热情。基础能力包括编程语言基础、数据结构和算法,这方面是硬实力,不可或缺但比较容易掌握,建议可以多刷题。 逻辑思维能力,即分析问题的能力,对所做的事情是有一个较全面的认识,对项目/技术有思考。 技术热情比较好理解,就不在赘述了。 对于已经在职同学来说

CentOS7安装CDH 第十二章:YARN的资源调优

情到浓时终转凉″ 提交于 2020-12-12 21:28:18
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 CentOS7安装CDH 第四章:CDH的版本选择和安装方式 CentOS7安装CDH 第五章:CDH的安装和部署-CDH5.7.0 CentOS7安装CDH 第六章:CDH的管理-CDH5.12 CentOS7安装CDH 第七章:CDH集群Hadoop的HA配置 CentOS7安装CDH 第八章:CDH中对服务和机器的添加与删除操作 CentOS7安装CDH 第九章:CDH中安装Kafka CentOS7安装CDH 第十章:CDH中安装Spark2 CentOS7安装CDH 第十一章:离线升级CDH版本 CentOS7安装CDH 第十二章:YARN的资源调优 CentOS7安装CDH 第十三章:CDH资源池配置 CentOS7安装CDH 第十四章:CDH的优化 1. memory调优 调优的本质就是对内存进行设置,使服务能够充分利用内存,从而速度更快,假设一台机器有32G内存,那应该怎么设置DataNode和Nodemanager的内存配置,从而是服务跑得更快。在Linux中,一般使用机器内存的百分之八十五用于服务,其他的百分之十五用于Linux本机自己的运行。所以机器32G内存

什么是spark(六)Spark中的对象

吃可爱长大的小学妹 提交于 2020-12-12 15:52:43
Spark中的对象   Spark的Conf,极简化的场景,可以设置一个空conf给sparkContext,在执行spark-submit的时候,系统会默认给sparkContext赋一个SparkConf;   Application是顶级的,每个spark-submit就是一个application;官网说明:User program built on Spark. Consists of a driver program and executors on the cluster.   每个action(函数)是一个job,action是两个job的分界点;注意,每个action都是会发生一次shuffle,action就相当于map-reduce里面的reduce,会产生一次汇总,也即shuffle;所以可以理解action是一次大的shuffle,这个对应下面的stage,stage也是以shuffle,只不过这个shuffle可能并不是reduce,只是数据因为partition,groupby等导致数据物理位置迁移(重组)等操作,发生了数据转移而已;所以讲,job和stage都是以shuffle为分界点,只不过类型不同而已;官网说明:A parallel computation consisting of multiple tasks that gets

剖析Spark数据分区之Spark streaming&TiSpark

青春壹個敷衍的年華 提交于 2020-12-12 15:52:24
本文是《剖析Spark数据分区》系列文章的第三篇,本篇我们将分析Spark streaming,TiSpark中的数据分区。 系列一: 剖析Spark数据分区之Hadoop分片 系列二: 剖析Spark数据分区之Spark RDD分区 1. Kafka +Spark Streaming 图 1 Spark Streaming从Kafka接收数据,转换为Spark Streaming中的数据结构DStream即离散数据流。 数据接收方式有两种: 1)使用Receiver接收的旧方法; 2)使用Direct拉取的新方法 (Spark 1.3引入) ; 1)Receiver方式 当前spark已经 不支持 该模式。 图 2 receiver模式的 并行度 由spark.streaming.blockInterval决定,默认是200ms。 receiver模式接收block.batch数据后会封装到RDD中,这里的block对应RDD中的partition。 batchInterval一定的情况 下: 减少 spark.streaming.Interval参数值,会 增大 DStream中的partition个数。 建议spark.streaming.Interval 最低不能低于50ms 。 2)Direct方式 图 3 Spark会创建跟Kafka partition一样多的RDD

Spark(十一)Spark分区

≡放荡痞女 提交于 2020-12-12 15:51:58
一、分区的概念   分区是RDD内部并行计算的一个计算单元,RDD的数据集在逻辑上被划分为多个分片,每一个分片称为分区,分区的格式决定了并行计算的粒度,而每个分区的数值计算都是在一个任务中进行的,因此任务的个数,也是由RDD(准确来说是作业最后一个RDD)的分区数决定。 二、为什么要进行分区   数据分区,在分布式集群里,网络通信的代价很大,减少网络传输可以极大提升性能。mapreduce框架的性能开支主要在io和网络传输,io因为要大量读写文件,它是不可避免的,但是网络传输是可以避免的,把大文件压缩变小文件, 从而减少网络传输,但是增加了cpu的计算负载。   Spark 里面io也是不可避免的,但是网络传输spark里面进行了优化:   Spark把rdd进行分区(分片),放在集群上并行计算。同一个rdd分片100个,10个节点,平均一个节点10个分区,当进行sum型的计算的时候,先进行每个分区的sum,然后把sum值shuffle传输到主程序进行全局sum,所以进行sum型计算对网络传输非常小。但对于进行join型的计算的时候,需要把数据本身进行shuffle,网络开销很大。 spark是如何优化这个问题的呢?   Spark把key-value rdd通过key的hashcode进行分区,而且保证相同的key存储在同一个节点上,这样对改rdd进行key聚合时

什么是spark(一) 分区以及和MR的区别

久未见 提交于 2020-12-12 15:29:04
  什么是spark,是一个 分布式计算平台,或者说是分布式计算引擎 ,他的职责就是将指定的数据读入到各个node的内存中,然后计算。所以spark是具有泛化性质的, 只要数据源是可读入的,读到内存里面之后,处理就和数据源没有关系了 ,你是HBASE,kudu,还是parquet都无所谓了。   什么是RDD,弹性分布式数据集,其实RDD是一个抽象概念,因为RDD本身不包含数据, 它只包含数据描述以及对于数据的算法 ,比如一个sparkSQL返回的RDD其实就是一个对数据的描述,告诉各个节点的executor要处理那些数据,那么map就是算法,map里面的函数体就是算法,所以map又叫做算子。   什么是spark分区,“ 需要把相同 key 的元素聚集到同一个 partition 下,所以造成了数据在内存中的重新分布,即 shuffle 操作 ”,简单讲就是设置数据分布, 将相同key的数据分布到同一台机器 ;为什么要分区?首先明白分区的目的好处就是:   1)减少了网络开销;   2)提高并行计算度;   前者的实现是通过将join算子和hive参数放置到同一台机器,然后让发起join的表数据推送到spark的分区节点进行运算;至于后者,每个分区都有独立的线程(每个线程执行的逻辑称之为Task);可以保持彼此独立,并行进行计算,这个也是spark的机制所在。