spark实践-ML-分类-RF+多元分类评估
大数据 , 笔记 / 2018年12月15日

场景&模型选择: 根据 花的几个特征, 预测花的种类, 属于多元分类问题 花有哪几个分类? — Iris Setosa — Iris Versicolour — Iris Virginica 需要哪几个特征参与模型学习? 1. sepal length in cm 2. sepal width in cm 3. petal length in cm 4….

Spark 实践–ML Pipelines& 自动调参
笔记 / 2018年12月13日

虽然 MLlib 已经足够简单易用,但是如果目标数据集结构复杂需要多次处理,或者是对新数据进行预测的时候需要结合多个已经训练好的单个模型进行综合预测,那么使用 MLlib 将会让程序结构复杂,难于理解和实现。 因此在 Spark 的生态系统里,出现一个可以用于构建复杂机器学习工作流应用的新库 ML Pipeline   原理: 先理解一下Spark ML中的相关概念: DataFrame…

spark 实践-ML-分类-使用随机森林做风控预测
大数据 , 笔记 / 2018年12月12日

这是一组信用风控的场景, 需要根据 个人信用度的数据集来预测; 需要预测什么? 某个人是否会按时还款? 来参与预测的特征有哪些? 申请人的基本信息和社会身份信息:职业,年龄,存款储蓄,婚姻状态等等…… 从这个场景看,这个是一个二元分类预测的问题, 可以使用Python  本地环境也可以是使用spark , 都支持随机森林的ML库; 下面是Spark ML 库+ SparkSQL + datafra…

如何发现Spark数据倾斜
大数据 , 笔记 / 2018年12月10日

现象 绝大多数task执行得都非常快,但个别task执行极慢。比如,总共有1000个task,993个task都在1分钟之内执行完了,但是剩余两7个task却要一两个小时。 原本能够正常执行的Spark作业,某天突然报出OOM(内存溢出)异常,观察异常栈,一般是业务代码造成的。这种情况比较少见。 原理 在进行shuffle的时候,会将各个节点上相同的key拉取到某个节点上的一个task来进行处理,…

spark 理解–存储管理系统
笔记 / 2018年12月8日

BlockManager是一个嵌入在 spark 中的 key-value型分布式存储系统,也是 Master-Slave 结构的, RDD-Cache、 Shuffle-output、broadcast 等的实现都是基于BlockManager来实现的: spark shuffle 的过程总用到了 BlockManager 作为数据的中转站 spark broadcast 调度 task 到多个…

spark简单实践—日志挖掘& SVM算法
笔记 / 2018年12月7日

一.  简单实践spark 日志挖掘: 1.  日志是通过flume读取并且保存在ES中的 , 所以需要从ES中读取,需要引入 elasticsearch_spark 的Jar包(Jar版本要和ES版本一致) 2. 日志所在索引内容简单分析: 统计分析 带有“RED”字符串的日志的产生日期和 IP地址个数 的Map关系   scala代码: import org.apache.spark…

spark 理解–网络通信系统
笔记 / 2018年12月4日

spark中网络通信无处不在,如下图standalone模式下和核心组件通信流程 例如: driver和master的通信,比如driver会向master发送RegisterApplication消息 master和worker的通信,比如worker会向master上报worker上运行Executor信息 executor和driver的的通信,executor运行在worker上,spar…

从spark 监控UI页面理解Spark计算框架
笔记 / 2018年12月3日

Spark计算框架的元素之间关系: Spark UI监控界面如何观察各元素的状态? Spark的概念非常多, 看懂监控页面才能方便定位性能问题, 下面主要是著名样例 workcount的执行监控结果样例: 1 代表job页面 在里面可以看到当前应用分析出来的所有Job,以及所有的excutors中action的执行时间。 第一部分event timeline展开后,可以看到executor创建的时…

spark context理解—TaskScheduler
笔记 / 2018年12月2日

  TaskScheduler作用是为创建它的SparkContext调度任务,即从DAGScheduler接受不同Stage的任务,并且向集群提交这些任务,并对未执行、特别慢的任务启动备份任务。主要由2部分组成: taskScheduler 任务调度:调度模式有FAIR和FIFO两种, 对应2种模式的队列存放taskset; SchedulerBackend: 是TaskSchedul…

spark 任务提交到集群执行的流程
笔记 / 2018年12月1日

Spark任务怎么提交到worker集群执行? Spark 应用程序从编写到提交、执行、输出的整个过程如下图所示,图中描述的步骤如下: 1)         用户使用SparkContext提供的API(常用的有textFile、sequenceFile、runJob、stop等)编写Driver application程序。程序先离线被打成Jar包存储起来等待被加载执行,存储的位置有3种: fi…