多语言支持
说到MLlib,它最大的特点之一就是“不挑语言”。Ja va、Scala、Python、R,想用哪个就用哪个,团队协作时再也不必为了语言偏好争吵。MLlib深度嵌入了Spark生态,不光对JVM系语言原生友好,从Spark 0.9起就完美支持Python,Spark 1.5开始又加入了R语言,连NumPy的数据交互都打理得妥妥当当。数据源方面,HDFS、HBase、本地文件系统……随便接,跟已有的Hadoop工作流无缝配合,不用折腾额外配置。
卓越性能
性能有多夸张?这么说吧,同样是跑机器学习算法,MLlib的处理速度能比MapReduce快上百倍。这可不是吹的——Spark的迭代计算优化天然适合反复迭代的算法,而MLlib正是把这种优势发挥到了极致。更关键的是,它采用的迭代算法不光反赌,结果还更准。传统的单次近似方法往往为了速度牺牲精度,但MLlib的设计思路是:快,而且稳。这才是硬道理。
全场景部署
部署上MLlib也相当“百搭”。Hadoop集群、Apache Mesos、Kubernetes容器、各大云平台,全都能跑。你可以在独立集群模式下一键部署,也能在EC2、Hadoop YARN、Mesos或Kubernetes上灵活调度。存储方面更不用操心,HDFS、Apache Cassandra、HBase、Hive……数百种数据系统它都兼容,数据流动畅通无阻。一句话:不管你的基础设施长什么样,MLlib基本都能无缝嵌入。
