Spark 讨论内容及架构

Spark MapReduce

  1. 使用Spark transformations actions 操作构建代码
  2. 使用配置信息进行任务分发,不关注其具体调度过程

Jupyter 应该架于Spark集群上层,调用Spark完成MapReduce操作后返回结果

Spark 讨论内容及架构_第1张图片
IMG_20170627_1511021.jpg

goldersgreen 后端服务可以调用Spark

  1. MLlib: 机器学习库,提供大量机器学习工具
  2. SQL: 提供了查询结构化数据及计算结果等信息的接口
  3. Streaming: 实时数据流的处理

MLlib

  1. 特征的提取,转化和选择
    特征提取:TF-IDF,Word2Vec, CountVectorizer
    特征变换:Tokenizer, StopWordsRemover, n-gram,Binarizer
    特征选择: VectorSlicer, RFormula, ChiSqSelector
    局部敏感哈希:Locality Sensitive Hashing operations and alorithms
  2. 分类和回归
    分类:Logistic Regression, Decision tree classifier,Random forest classifier
    回归:Linear regression, Generalized linear regression,Decision tree regression
  3. 聚类
    k - means,Latent Dirichlet allocation,高斯混合模型(GMM)
  4. 协同过滤
  5. 超参数调整
    CrossValidator, TrainValidationSplit
    CrossValidator(本机示例程序)
设想

用户在机器学习是调用某个算法,通过jupyter连接到Spark完成该算法的分布式计算,反馈结果。 算法分布式计算需要预先写好Spark的python代码。

计划

研究关于超参数调整知识
实现超参数调整范例

Spark TensorFlow

  1. using Spark’s built-in broadcasting mechanism
    https://databricks.com/blog/2016/01/25/deep-learning-with-apache-spark-and-tensorflow.html
    自己构建代码实现,需要对Spark和机器学习算法有深度的理解才能实现。
    http://go.databricks.com/hubfs/notebooks/TensorFlow/Test_distributed_processing_of_images_using_TensorFlow.html
    演示了对于不同数量的神经元,绘制关于学习率的测试性能,代码实现较为复杂,可能自己Spark, tensorflow,机器学习不够了解

  2. TensorFlowOnSpark 雅虎今年2月份开源的框架
    https://github.com/yahoo/TensorFlowOnSpark
    提供了一个范例,通过部分代码替换,实现distributed MNIST training
    https://github.com/yahoo/TensorFlowOnSpark/wiki/GetStarted_standalone

sparkmagic

interactively working with remote Spark clusters through Livy, a Spark REST server, in Jupyter notebooks
通过jupyter 发送restful api 控制集群
结论: 暂时没有应用到我们项目的价值(优先级低)

具体计划

确定好架构后研究Spark RDD操作,将需要实现的model进行map reduce操作
同时研究MLlib机器学习库,提供额外的机器学习方法

你可能感兴趣的:(Spark 讨论内容及架构)