Spark MLlib介绍

Spark之所以在机器学习方面具有得天独厚的优势,有以下几点原因:

(1)机器学习算法一般都有很多个步骤迭代计算的过程,机器学习的计算需要在多次迭代后获得足够小的误差或者足够收敛才会停止,迭代时如果使用Hadoop的MapReduce计算框架,每次计算都要读/写磁盘以及任务的启动等工作,这回导致非常大的I/O和CPU消耗。而Spark基于内存的计算模型天生就擅长迭代计算,多个步骤计算直接在内存中完成,只有在必要时才会操作磁盘和网络,所以说Spark正是机器学习的理想的平台。

(2)从通信的角度讲,如果使用Hadoop的MapReduce计算框架,JobTracker和TaskTracker之间由于是通过heartbeat的方式来进行的通信和传递数据,会导致非常慢的执行速度,而Spark具有出色而高效的Akka和Netty通信系统,通信效率极高。

MLlib(Machine Learnig lib) 是Spark对常用的机器学习算法的实现库,同时包括相关的测试和数据生成器。Spark的设计初衷就是为了支持一些迭代的Job, 这正好符合很多机器学习算法的特点。在Spark官方首页中展示了Logistic Regression算法在Spark和Hadoop中运行的性能比较,如图下图所示。

可以看出在Logistic Regression的运算场景下,Spark比Hadoop快了100倍以上!

MLlib目前支持4种常见的机器学习问题: 分类、回归、聚类和协同过滤,MLlib在Spark整个生态系统中的位置如图下图所示。

MLlib基于RDD,天生就可以与Spark SQL、GraphX、Spark Streaming无缝集成,以RDD为基石,4个子框架可联手构建大数据计算中心!

MLlib是MLBase一部分,其中MLBase分为四部分:MLlib、MLI、ML Optimizer和MLRuntime。

l  ML Optimizer会选择它认为最适合的已经在内部实现好了的机器学习算法和相关参数,来处理用户输入的数据,并返回模型或别的帮助分析的结果;

l  MLI 是一个进行特征抽取和高级ML编程抽象的算法实现的API或平台;

l  MLlib是Spark实现一些常见的机器学习算法和实用程序,包括分类、回归、聚类、协同过滤、降维以及底层优化,该算法可以进行可扩充; MLRuntime 基于Spark计算框架,将Spark的分布式计算应用到机器学习领域。

3.2 MLlib的算法库分析

下图是MLlib算法库的核心内容。

最新文章

  1. [转]Struts2.3.16.1+Hibernate4.3.4+Spring4.0.2 框架整合
  2. Garbage Collection C++
  3. Python缩小图像
  4. Linux文件目录权限浅谈
  5. 3.IP地址分类_规划_子网掩码
  6. Bootstrap配套的js框架
  7. DP走方格型
  8. 使用ADO.net中的链接字符串
  9. 监控-CPU使用率
  10. 关于sass与VScode 一些配置 学习记录
  11. Node js redis
  12. 检测 web项目 404 500 状态的 页面
  13. 每天学点SpringCloud(五):如何使用高可用的Eureka
  14. Day12 Python基础之生成器、迭代器(高级函数)(十)
  15. QML学习笔记(六)- 简单计时器和定时器
  16. UVA 1592 DataBase
  17. javaweb开发.页面中文乱码问题
  18. BZOJ4455 ZJOI2016小星星(容斥原理+树形dp)
  19. mysql 日志清理
  20. 前端面试问题js汇总

热门文章

  1. SQlserver 当输入参数为可选条件
  2. python--6、re模块
  3. jqurey事件 ready方法用法
  4. Sql语句优化-查询两表不同行NOT IN、NOT EXISTS、连接查询Left Join
  5. Python之first script
  6. dubbo之本地调用
  7. Ubuntu安装中文语言包
  8. 团体程序设计天梯赛-练习集-L1-033. 出生年
  9. centos7关闭防火墙以及查看防火墙状态
  10. java IO框架分析