最近半个月开始研究Spark的机器学习算法,由于工作原因,其实现在还没有真正开始机器学习算法的研究,只是做了前期大量的准备,现在把早年学习的,正在学习的和将要学习的一起做个梳理,整理一个Spark机器学习完整流程。本文推荐的书籍注重通俗和实战。
基础知识
Linux基础知识和实战
网络知识
在集群运维时,尤其是生产环境下,各个节点之间的网络问题,至关重要,推荐《鸟哥的Linux私房菜》服务器篇和《Wireshark网络分析就这么简单》,后者的作者是EMC网络存储部门的主任工程师,主要以自己工作中遇到的各种难题,通过调侃的方式,介绍了网络的基础知识(很遗憾,我还没有读完)。
Hadoop基础知识和原理
Hadoop的学习我早年看的书是《Hadoop权威指南》,这本书不推荐,因为确实不好啃,翻译的水平有限,对于初学者来说,容易放弃,我开始学习Hadoop时,应该是1.0时代,这时的三架马车是HDFS和MapReduce,HBase,这几年随着Hadoop的在业界的迅速发展,进入了2.0时代,集成进了雅虎的Yarn资源管理器。当然不管如何发展,HDFS和MapReduce还是Hadoop的核心,最好动手去搭建Hadoop集群(前面Linux的学习在这里就能发挥作用了)。
Spark基础知识和原理
开发语言
在机器学习领域的语言,一定是一门函数式编程语言,其次有强大的第三方科学计算库。
Python
在科学计算领域,Python无疑是第一语言,Spark也是支持Python的,Python的第三方库有NumPy(数值处理库)、SciPy(数学符号计算库)、matplotlib等。
Scala
理论知识
线性代数
如果不熟悉线性代数的概念,要去学习自然科学,现在看来就和文盲差不多 ————瑞典数学家Lars Garding