机器学习的工具链
机器学习的工具链好全啊
python链
数据链
尽管 Spark Steaming 现在和 Flink 相比优势不显,但它的生态更为丰富,除了 Streaming 还有 SQL、MLib、Graphx 等,同时目前 Spark 对 Kubernetes 云原生技术的原生支持更加到位。
Flink 比Spark好的地方: Stream给力,市面上最好的stream framework没有之一 Stream 近似 Batch没有硬伤(相反mini batch近似Stream会搞乱batch里的顺序)。相当于自带lambda architectureFlink不足的地方: 用户群没有Spark多,stackoverflow上能找到的Solution少 Documentation还在完善中,尤其scala部分 java比scala啰嗦…
对比
参考知乎: https://www.zhihu.com/question/26568496
- hardoop的处理方式, map/reduce很好理解, 就是矩阵计算, 大规模计算的并行处理.
- spark的dag(有向无环图), 将map/reduce更简单的组织起来.
感想
数据处理和机器学习的路径也可以类比于数据库:
- 迭代次序: 层次库->sql->nosql
- 背后理论: 山寨->数学->山寨(或者说更高层次的数学)
- 环境导致: 内存不足->硬盘存储, 网速增长->并行计算
大数据是机器学习的基础
- Google公司的经典论文:《MapReduce:Simplied Data Processing on Large Clusters》2000年, 他把大数据处理拆成了map/reduce, 简单的说就是基础的矩阵运算. 大学本科的基础数学: 线性代数的实际应用
- 想想阿里的处理方式, 去ibm/oracle/emc, 也就是去中心化.
- Google有三宝:MapReduce、GFS和BigTable
- MapReduce: Hadoop的MapReduce
- GFS: Hadoop的HDFS 分布式文件系统
- BigTable: HBase
- 框架
- apache hadoop 批处理框架
- apache storm 流处理框架
- apache samza
- kafka
- yarn
- samza api
- spark 混合处理框架
- RDD(Resilient Distributed Dataset,弹性分布式数据集)
- DAG
- 把流拆成批次处理
- flink
- 把批处理当做有界的流来处理