参考数据《spark核心源码分析与开发实战》
Spark注重打造自己的生态系统,不仅支持多种外部文件存储系统,还为了提升自己在实际生产中的运行效率提供了多种多样的集群运行模式。
spark部署在一台机器上:local本地模式 或 伪分布模式
分布式集群模式部署 : standalone(Spark自带模式) yarn (yarn-client, yarn-cluster) mesos模式
standalone 独立模式 只需要借助spark进行大数据的处理时,为最佳模式
同时需要多种计算框架时,需要引入外部的资源管理系统 yarn mesos
spark一开始就支持mesos
淘宝网大量使用yarn
各种运行模式的目的:在合适的位置安全可靠地根据用户的配置和job的需要运行和管理task
概念术语:
Application Driver Executor ClusterManager Worker Task Job Stage DAGScheduler TaskScheduler RDD
Spark的基本工作流程
Spark的运行机制:spark集群中的Spark Application的运行架构由两部分组成:包括了SparkContext的Driver Program(驱动程序)和在Executor中执行计算的程序。
Spark SQL:Spark SQL是Spark1.0.0版本中新加入的组件,是其生态系统中最活跃的组件之一。利用Spark进行结构化数据额存储和操作。
Hive-------Shark----------Spark SQL
Hive 【facebook开源】---建立在Hadoop上的数据仓库基础构架
spark streaming: 随着大数据技术的快速发展,人们对大数据的处理要求也越来越高,传统的Mapreduce等批处理框架在某些特定领域(如实时用户推荐、用户行为分析)已经无法满足人们对实时性的需求,需要流式数据处理框架。
批处理:https://blog.csdn.net/u013547284/article/details/72843867 离线
流式处理:https://www.jianshu.com/p/5cc07eae1a0c 在线
批处理就是写好了电脑去运行,交互式就是电脑偶尔要问你点什么比如说yesorno或者下一步之类的
源码是一切问题产生的根源和一切问题的答案所在!
有一个socket套接字单词计数的实例
Mlib:
机器学习有十分广泛地应用: 数据挖掘 计算机视觉 自然语言处理 生物特征识别 搜索引擎 医学诊断 检测信用卡欺诈 证券市场分析 DNA序列测序 语音和手写识别 战略游戏 和 机器人应用
监督
非监督(AP K-MEANS)关联规则的学习 聚类
半监督
强化学习
企业数据应用:监督和非监督
图像:半监督
系统控制:强化学习
机器学习的常用算法:
回归 基于实例的算法(KNN) 正则化(LASSO) 决策树 贝叶斯 基于核的算法 聚类K-MEANS EM 关联规则算法 人工神经网络 深度学习 降维 集成算法
MLIB是spark对常用的机器学习算法的实现库,同时包括了相关的测试和数据生成器,是spark的四大子框架之一。 优点:1.基于内存,迭代快 2.易用性 支持scala java python同时可以使用hadoop生态系统的文件系统和数据库作为数据的输入源(hdfs Hbase) 3.Mlib的API是在spark的RDD基础上建立起来的,作为spark的子系统,它完全可以与spark SQL 、spark Streaming Spark GraphX这些SPARK的子系统无缝连接,例如通过mlib和Spark Streaming 可以构建机器学习的在线训练模型。
MLIB的数据类型
MLIB的算法
k-means算法解析和实践
协同过滤算法分析和案例实践【电影推荐】