且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Scala机器学习》一一第3章 使用Spark和MLlib

更新时间:2022-06-28 02:55:09

第3章 使用Spark和MLlib

上一章介绍了在全局数据驱动的企业架构中的什么地方以及如何利用统计和机器学习来处理知识,但接下来不会介绍Spark和MLlib的具体实现,MLlib是Spark顶层的机器学习库。Spark是大数据生态系统中相对较新的成员,它基于内存使用而不是磁盘来进行优化。数据仍然可以根据需要转储到磁盘上,但Spark只有在明确指示这样做或活动数据集不适合内存时才会执行转储。如果节点出现故障或由于某些原因从内存中擦除信息,Spark会利用存储的信息来重新计算活动数据集。这与传统的MapReduce方法不同,传统的MapReduce方法会将每个map或reduce的数据保留到磁盘上。
Spark特别适合于在分布式节点集上的迭代或统计机器学习算法,并且可以对其进行扩展。对于Spark,唯一的问题是节点中可用的总内存空间和磁盘空间,以及网络速度。本章将介绍Spark架构和实现的基础知识。
可简单修改配置参数来管理Spark在单个节点上或跨一组节点执行数据管道。当然,这种灵活性以稍微复杂的框架和更长的设置时间为代价,但框架的并行性非常好。由于目前大多数笔记本电脑已经是多线程且足够强大,因此这样的配置通常不会有大问题。
本章将介绍以下主题:
安装和配置Spark
Spark架构的基础知识,并解释为什么它会绑定Scala语言
为什么Spark是继顺序编程和Hadoop MapReduce之后的下一代技术
Spark组件
Scala和Spark中单词计数程序的实现
基于流的单词计数程序的实现
如何从分布式文件或分布式数据库中创建Spark的数据框(DataFrame)
Spark性能调整