Apache Spark

Spark 机器学习实践 :Iris数据集的分类

泄露秘密 提交于 2020-03-25 08:36:18
3 月,跳不动了?>>> 今天试用了一下Spark的机器学习,体验如下: 第一步,导入数据 我们使用Iris数据集,做一个分类,首先要把csv文件导入。这里用到了spark的csv包,不明白为什么这么常见的功能不是内置的,还需要额外加载。 --packages com.databricks:spark-csv_2.11:1.4.0 from pyspark.sql import SQLContext sqlContext = SQLContext(sc) df = sqlContext.read.format('com.databricks.spark.csv') .options(header='true', inferschema='true') .load('iris.csv') # Displays the content of the DataFrame to stdout df.show() 结果如下: +-----+------------+-----------+------------+-----------+-------+ |rowid|Sepal.Length|Sepal.Width|Petal.Length|Petal.Width|Species| +-----+------------+-----------+------------+---------

Spark MLlib LDA主题模型

好久不见. 提交于 2020-03-25 08:21:19
3 月,跳不动了?>>> Spark MLlib LDA主题模型(1) Spark MLlib LDA主题模型是Spark1.3开始加入的,具体介绍看以下文档: 官方编程指南: http://spark.apache.org/docs/latest/mllib-clustering.html#latent-dirichlet-allocation-lda Spark MLlib LDA 简介: http://blog.jobbole.com/86130/ 关于LDA主题模型的理论知识讲解放在下期。 1.1 LDA实例 实例步骤: 1)加载数据 返回的数据格式为:documents: RDD[(Long, Vector)],其中:Long为文章ID,Vector为文章分词后的词向量;用户可以读取指定目录下的数据,通过分词以及数据格式的转换,转换成RDD[(Long, Vector)]即可。 2)建立模型 模型参数设置说明: k: 主题数,或者聚类中心数 DocConcentration:文章分布的超参数(Dirichlet分布的参数),必需>1.0 TopicConcentration:主题分布的超参数(Dirichlet分布的参数),必需>1.0 MaxIterations:迭代次数 setSeed:随机种子 CheckpointInterval:迭代计算时检查点的间隔

【巨杉数据库SequoiaDB】巨杉Tech |巨杉数据库的HTAP场景实践

删除回忆录丶 提交于 2020-03-24 23:49:19
3 月,跳不动了?>>> 01 背景 由于业务形式的发展,越来越多的需求需要对交易数据进行实时分析,例如推荐、决策、监控等,传统的处理办法是使用ETL的方式把OLTP业务产生的数据同步到OLAP的数据数据库,导致了数据需要在不同的数据库之间流转,耗费时间成本的同时需要耗费人力成本运维多套数据库产品。 近年来业界开始兴起HTAP的概念,对于数据库,HTAP代表一个数据库既能支持OLTP(在线事务处理),又能支持OLAP(在线分析处理),从而满足大部分企业级应用的需求。相比传统使用多款数据库进行不同的业务处理方式,HTAP数据库能够避免传统复杂的ETL过程,省去数据在不同数据库之间的流转时间;同时避免维护多一套用于分析的数据库,从而节省人力和时间的成本,提高数据的价值。 SequoiaDB巨杉数据库采用“计算存储分离”架构,支持MySQL、PostgreSQL与SparkSQL三种关系型数据库实例、类MongoDB的JSON文档类数据库实例、以及S3对象存储与Posix文件系统的非结构化数据实例。在事务场景可以利用SDBAPI、MySQL和PGSQL实例对数据进行操作,在分析场景借助分布式计算框架Spark的并发计算性能,提高计算效率,从而实现HTAP功能 02 技术特性 巨杉数据库作为一款优秀的分布式数据库有着许多技术优势:分布式多节点、支持索引、基于代价的优化器

spark reparation和coalesce

試著忘記壹切 提交于 2020-03-24 08:45:30
3 月,跳不动了?>>> repartition(numPartitions:Int):RDD[T]和coalesce(numPartitions:Int,shuffle:Boolean=false):RDD[T] 他们两个都是RDD的分区进行重新划分,repartition只是coalesce接口中shuffle为true的简易实现,(假设RDD有N个分区,需要重新划分成M个分区) 1、N小于M 一般情况下N个分区有数据分布不均匀的状况,利用HashPartitioner函数将数据重新分区为M个,这时需要将shuffle设置为true。 2、N大于M且和M相差不多 假如N是1000,M是100)那么就可以将N个分区中的若干个分区合并成一个新的分区,最终合并为M个分区,这时可以将shuff设置为false,在shuffl为false的情况下,如果M>N时,coalesce为无效的,不进行shuffle过程,父RDD和子RDD之间是窄依赖关系。 3、N大于M且和M相差悬殊 这时如果将shuffle设置为false,父子RDD是窄依赖关系,他们同处在一个Stage中,就可能造成Spark程序的并行度不够,从而影响性能,如果在M为1的时候,为了使coalesce之前的操作有更好的并行度,可以讲shuffle设置为true。 总之:如果shuff为false时

开源数据湖方案选型:Hudi、Delta、Iceberg深度对比

不想你离开。 提交于 2020-03-23 23:03:36
3 月,跳不动了?>>> 目前市面上流行的三大开源数据湖方案分别为: delta、Apache Iceberg和Apache Hudi。 其中,由于Apache Spark在商业化上取得巨大成功,所以由其背后商业公司Databricks推出的delta也显得格外亮眼。 Apache Hudi是由Uber的工程师为满足其内部数据分析的需求而设计的数据湖项目,它提供的fast upsert/delete以及compaction等功能可以说是精准命中广大人民群众的痛点,加上项目各成员积极地社区建设,包括技术细节分享、国内社区推广等等,也在逐步地吸引潜在用户的目光。 Apache Iceberg目前看则会显得相对平庸一些,简单说社区关注度暂时比不上delta,功能也不如Hudi丰富,但却是一个野心勃勃的项目,因为它具有高度抽象和非常优雅的设计,为成为一个通用的数据湖方案奠定了良好基础。 很多用户会想,看着三大项目异彩纷呈,到底应该在什么样的场景下,选择合适数据湖方案呢?今天我们就来解构数据湖的核心需求,深度对比三大产品,帮助用户更好地针对自身场景来做数据湖方案选型。 首先,我们来逐一分析为何各技术公司要推出他们的开源数据湖解决方案,他们碰到的问题是什么,提出的方案又是如何解决问题的。我们希望客观地分析业务场景,来理性判断到底哪些功能才是客户的痛点和刚需。 Databricks和Delta

Flink基本原理及应用场景

最后都变了- 提交于 2020-03-21 03:05:13
3 月,跳不动了?>>> Flink简介 Apache Flink是一个开源的 分布式、高性能、高可用 的流处理框架。 主要有Java代码实现,支持scala和java API。 支持 实时流(stream)处理 和 批(batch)处理 ,批数据只是流数据的一个极限特例。 Flink原生支持了 迭代计算 、 内存管理 和 程序优化 。 Flink、Spark和Storm对比 Flink、Spark Streaming、Storm、Storm Trient都可以进行实时计算,但各有特点。 在大数据处理领域,批处理任务和流处理任务一般被认为是两种不同的任务,一个大数据框架一般会被设计为只能处理其中一种任务    *   例如Storm只支持流处理任务,而MapReduce、Spark只支持批处理任务。Spark Streaming是采用了一种micro-batch的架构,即把输入的数据流且分为细粒度的batch,并为每一个batch数据提交一个批处理的Spark任务,所以Spark Streaming本质上还是基于Spark批处理系统对流式数据进行处理,和Storm等完全流式的数据处理方式完全不同。   *  Flink通过灵活的执行引擎,能够同时支持批处理任务和流处理任务      在执行引擎这一层,流处理系统与批处理系统最大的不同在于节点间的数据传输方式。    

2、Spark-Streaming的原理

烂漫一生 提交于 2020-03-21 01:53:28
3 月,跳不动了?>>> 一:sparkRDD如何变成了sparkStreaming? Spark底层是通过Driver端构建SparkRDD来处理数据的,但是SparkRDD处理完成后就退出了。 那么如何才能够让集群中一直有SparkRDD在运行,处理实时发送过来的kafka数据? Spark提供了一个很简单粗暴的方式 Driver端根据DAG每隔一段时间,不断地往集群中循环发送task,不断的读取kafka对应offset的数据,这样集群中就会不断的有新的SparkRDD在运行,从而形成流式 二:图解 所有的Spark模块都是基于SparkRDD的 他们最终都是转化为RDD生成DAG,然后通过DAGScheduler切分stage,最后调用Tasksheduler将stage作为task发送到executor执行。 来源: oschina 链接: https://my.oschina.net/u/3062408/blog/795541

开源数据湖方案选型:Hudi、Delta、Iceberg深度对比

送分小仙女□ 提交于 2020-03-21 01:11:07
3 月,跳不动了?>>> 目前市面上流行的三大开源数据湖方案分别为: delta、Apache Iceberg和Apache Hudi。 其中,由于Apache Spark在商业化上取得巨大成功,所以由其背后商业公司Databricks推出的delta也显得格外亮眼。 Apache Hudi是由Uber的工程师为满足其内部数据分析的需求而设计的数据湖项目,它提供的fast upsert/delete以及compaction等功能可以说是精准命中广大人民群众的痛点,加上项目各成员积极地社区建设,包括技术细节分享、国内社区推广等等,也在逐步地吸引潜在用户的目光。 Apache Iceberg目前看则会显得相对平庸一些,简单说社区关注度暂时比不上delta,功能也不如Hudi丰富,但却是一个野心勃勃的项目,因为它具有高度抽象和非常优雅的设计,为成为一个通用的数据湖方案奠定了良好基础。 很多用户会想,看着三大项目异彩纷呈,到底应该在什么样的场景下,选择合适数据湖方案呢?今天我们就来解构数据湖的核心需求,深度对比三大产品,帮助用户更好地针对自身场景来做数据湖方案选型。 首先,我们来逐一分析为何各技术公司要推出他们的开源数据湖解决方案,他们碰到的问题是什么,提出的方案又是如何解决问题的。我们希望客观地分析业务场景,来理性判断到底哪些功能才是客户的痛点和刚需。 Databricks和Delta

Kafka:大数据开发最火的核心技术

孤街浪徒 提交于 2020-03-20 09:45:09
3 月,跳不动了?>>> 大数据时代来临,如果你还不知道Kafka那你就真的out了!据统计,有三分之一的世界财富500强企业正在使用Kafka,包括所有TOP10旅游公司,7家TOP10银行,8家TOP10保险公司,9家TOP10电信公司等等。 LinkedIn,Microsoft和Netflix每天都用Kafka处理万亿级的信息。Kafka主要应用于实时信息流的大数据收集或者实时分析(或者两者兼有)。Kafka既可以为内存微服务提供持久性服务,也可以用于向复杂事件流系统和IoT/IFTTT式自动化系统反馈事件。 为什么是Kafka? Kafka常用于实时流数据结构的实时分析。由于Kafka是一种快速、可扩展、可持久和高容错的发布-订阅消息系统(publish-subscribe messaging system),所以Kafka对于一些Use Case(有大数据量和高响应需求)的支持远好于JMS、RabbitMQ和AMQP。相比于那些工具,Kafka支持更高的吞吐量,更高的稳定性和副本(replication)特性。这使得它比传统的MOM更加适合跟踪服务调用(可以跟踪每次调用)或跟踪IoT传感器数据。 Kafka可以与Flume/Flafka、Spark Streaming、Storm、HBase、Flink以及Spark配合使用,用于实时获取、分析和处理流数据

Kafka:大数据开发最火的核心技术

拟墨画扇 提交于 2020-03-20 09:36:43
3 月,跳不动了?>>> 大数据时代来临,如果你还不知道Kafka那你就真的out了!据统计,有三分之一的世界财富500强企业正在使用Kafka,包括所有TOP10旅游公司,7家TOP10银行,8家TOP10保险公司,9家TOP10电信公司等等。 LinkedIn,Microsoft和Netflix每天都用Kafka处理万亿级的信息。Kafka主要应用于实时信息流的大数据收集或者实时分析(或者两者兼有)。Kafka既可以为内存微服务提供持久性服务,也可以用于向复杂事件流系统和IoT/IFTTT式自动化系统反馈事件。 为什么是Kafka? Kafka常用于实时流数据结构的实时分析。由于Kafka是一种快速、可扩展、可持久和高容错的发布-订阅消息系统(publish-subscribe messaging system),所以Kafka对于一些Use Case(有大数据量和高响应需求)的支持远好于JMS、RabbitMQ和AMQP。相比于那些工具,Kafka支持更高的吞吐量,更高的稳定性和副本(replication)特性。这使得它比传统的MOM更加适合跟踪服务调用(可以跟踪每次调用)或跟踪IoT传感器数据。 Kafka可以与Flume/Flafka、Spark Streaming、Storm、HBase、Flink以及Spark配合使用,用于实时获取、分析和处理流数据