大数据分析
文章平均质量分 80
泛泛之素
君子不器
展开
-
spark进阶(十):使用MLlib进行协同过滤电影推荐
一、MLlib简介MLlib是一些常用的机器学习算法和库在Spark平台上的实现。MLlib是AMPLab的在研机器学习项目MLBase的底层组件。MLBase是一个机器学习平台,MLI是一个接口层,提供很多结构,MLlib是底层算法实现层。MLlib中包含分类与回归、聚类、协同过滤、数据降维组件以及底层的优化库。MLlib底层使用到了Scala书写的线性代数库Breeze,Breeze底层依赖netlib-java库。netlib-java底层依赖原生的Fortran routines。二、协同过原创 2021-10-14 15:58:19 · 1605 阅读 · 0 评论 -
spark进阶(九):GraphX使用
GraphX是Spark中的一个分布式图计算框架,是对Spark RDD的扩展。这里所说的图并不是图片,而是一个抽象的关系网。例如,社交应用微信、QQ、微博等用户之间的好友、关注等存在错综复杂的联系,这种联系构成了一张巨大的关系网,我们把这个关系网称为图。GraphX目前适用于微信、微博、社交网络、电子商务等类型的产品,也越来越多地应用于推荐领域的人群划分、年龄预测、标签推理等。Vertices、edges、triplets是Spark GraphX中3个最重要的概念。Vertices对应的RDD名原创 2021-10-11 19:29:27 · 1115 阅读 · 0 评论 -
spark进阶(八): spark streaming用法[下] Structured Streaming使用
Spark 2.0产生了一个新的流处理框架Structured Streaming(结构化流),它是一个可伸缩的、容错的流处理引擎,构建在Spark SQL引擎之上。使用StructuredStreaming可以在静态数据(Dataset/DataFrame)上像批处理计算一样进行流式计算。随着数据的不断到达,Spark SQL引擎会增量地、连续地对其进行处理,并更新最终结果。简单来讲就是DSteam是基于RDD的DSteam,Structured Streaming是基于Dataset(DataFram原创 2021-10-10 14:27:10 · 665 阅读 · 0 评论 -
spark进阶(七):spark streaming 用法[上]
Spark Streaming是Spark Core API(Spark RDD)的扩展,支持对实时数据流进行可伸缩、高吞吐量及容错处理。数据可以从Kafka、Flume、Kinesis或TCPSocket等多种来源获取,并且可以使用复杂的算法处理数据,这些算法由map()、reduce()、join()和window()等高级函数表示。Spark Streaming提供了一种高级抽象,称为DStream(Discretized Stream)。 在内部,对输入数据流拆分成的每个批次实际上是一个RDD,一原创 2021-10-09 19:48:00 · 316 阅读 · 0 评论 -
spark进阶(六):kafka安装
在Spark生态体系中,Kafka占有非常重要的位置。Kafka是一个使用Scala语言编写的基于ZooKeeper的高吞吐量低延迟的分布式发布与订阅消息系统,它可以实时处理大量消息数据以满足各种需求。在实际开发中,Kafka常常作为Spark Streaming的实时数据源,Spark Streaming从Kafka中读取实时消息进行处理,保证了数据的可靠性与实时性。一个典型的Kafka集群中包含若干生产者(数据可以是Web前端产生的页面内容或者服务器日志等)、若干Broker、若干消费者(可以是Had原创 2021-10-08 19:52:05 · 269 阅读 · 0 评论 -
spark进阶(五):DataFrame和DataSet使用
DataFrame是Spark SQL提供的一个编程抽象,与RDD类似,也是一个分布式的数据集合。但与RDD不同的是,DataFrame的数据都被组织到有名字的列中,就像关系型数据库中的表一样。此外,多种数据都可以转化为DataFrame,例如Spark计算过程中生成的RDD、结构化数据文件、Hive中的表、外部数据库等。在Spark中,一个DataFrame所代表的是一个元素类型为Row的Dataset,即DataFrame只是Dataset[Row]的一个类型别名。相对于RDD,Dataset提供了强原创 2021-10-07 14:03:55 · 1319 阅读 · 0 评论 -
spark进阶(四):RDD使用
Spark提供了一种对数据的核心抽象,称为弹性分布式数据集(ResilientDistributed Dataset,RDD)。这个数据集的全部或部分可以缓存在内存中,并且可以在多次计算时重用。RDD其实就是一个分布在多个节点上的数据集合。RDD的主要特征如下:RDD是不可变的,但可以将RDD转换成新的RDD进行操作。RDD是可分区的。RDD由很多分区组成,每个分区对应一个Task任务来执行(关于分区将在3.4节详细讲解)。对RDD进行操作,相当于对RDD的每个分区进行操作。RDD拥有一系列对分原创 2021-10-06 14:35:33 · 1095 阅读 · 0 评论 -
spark进阶(三):scala基础
spark进阶(三):scala基础Spark本身就是使用Scala语言开发的,spark和flink的底层通讯都是基于的高并发架构akka开发,然而akka是用scala开发的,Scala与Spark可以实现无缝结合,因此,Scala顺理成章地成为了开发Spark应用的首选语言,大多数spark教程都是基于scala编写,学习一下scala也是很必要的。这里只对scala在spark中使用的部分进行记录,不涉及一些复杂的scala使用,只保证能正常使用spark即可。对于scale的话,学过kotl原创 2021-10-05 14:21:51 · 1348 阅读 · 0 评论 -
spark进阶(二):Idea创建spark项目
环境:scala:2.12.0java:1.8spark:3.1.2一、Idea创建scala项目Idea新建一个新的项目,选择通过maven创建:给项目起个名字,设置版本:maven选项,如果有本地maven的话用本地的,没有的话建议下一个,不行用这个默认的也可以:设置maven源为aliyun,上面的setting目录创建对应的setting.xml文件:(base) [~/softwares]$ cat /home/ffzs/.m2/settings.xml <sett原创 2021-10-04 20:17:50 · 1214 阅读 · 0 评论 -
Spark进阶(一): 测试环境搭建
运行环境:操作系统:ubuntu 16JDK:1.8.0_261-b12hadoop: 3.2.2spark: 3.1.2一、hadoop单机模式下载安装安装包官网下载即可:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz然后解压缩到指定目录,我的目录为:/home/ffzs/softwares/hadoop-3.2.2设置免密码登录创建密钥,原创 2021-10-03 12:48:31 · 387 阅读 · 0 评论