确定hive的map和reduce的task的数量 Hive的底层查询原理,也是讲sql语句转化为map-reduce进行查询和计算的,所以设置正确的map和reduce的task的数量对查询效率有很重要的影响。1. 设置mapper的task数量 在分布式计算系统中,决定map数量的一个因素就是原始数据,在不加干预的情况下,原始数据有多少个块,就可能有多少个起始的task,因为每个task对应要去读取一个块的...
Spark源码分析-takeSample源码分析 1.参数说明 withReplacement:是否是有放回的抽样,就是普通的抽样,我们都是抽过的数据就不能在抽样了,有放回抽样就是可以继续抽以前抽取过的。 num:数据抽样的个数2.执行源码流程 执行流程主要是调用了RDD的takeSample方法,下面先贴上这个方法的代码:def takeSample( withReplacement: Boole...
Spark源码-sample计算流程分析 1.参数说明 Sample构造函数有三个参数,每个参数的含义如下: withReplacement:元素可以多次抽样(在抽样时替换) fraction:期望样本的大小作为RDD大小的一部分, 当withReplacement=false时:选择每个元素的概率;分数一定是[0,1] ; 当 withReplacement=true时:选择每个元素的期望次数; 分数...
Spark计算流程分析(map-reduce)过程 本文只是结合源码对spark的map和reduce过程做简单的总结,不是特别深入。主要是《深入理解Spark__核心思想与源码分析》一书中的内容和自己的一些理解。1.Shuffle 不管是hadoop的MapReduce还是spark的map-reduce过程,核心过程都叫做shuffle,MapReduce的shuffle过程,要对每个分区的数据进行排序,然后merge,完...
Spark源码分析-SortByKey源码 简单介绍SortByKey对<key, value>数据进行按照key进行排序,怎么个排法,我么先看一下spark源码中的一些注释: 两段注释的基本意思差不多:通过RDD的key进行排序,每一个分区包括在一个范围内排好序的元素,然后返回一个有序的list集合,或者按照该key以part-x的形式保存在文件系统上。大概的意思就是这样,就是按照partitio...
Spark源码分析-topN源码 介绍TopN算子是取RDD的前N个元素。取TopN元素,我们就一定要对其进行严格排序吗?非也,也正是如此,加大了此算子的效率。源码理解def top(num: Int): JList[T] = {val comp = com.google.common.collect.Ordering.natural().asInstanceOf[Comparator[T]]top(nu...
Spark数据倾斜的原因以及解决方案 转自:https://www.cnblogs.com/xiaodf/p/6055803.html数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能。数据倾斜发生时的现象绝大多数task执行得都非常快,但个别ta...
Spark中wordCount的常见写法 Spark的wordCount是入门级程序,下面我以Java为基础,分享3种基础的写法1.JavaRDD加reduceByKey写法SparkConf conf = new SparkConf();conf.setAppName("topN");conf.setMaster("local");JavaSparkContext jsc = new JavaSparkContext(c...
机器学习中数据预处理方法 在知乎上也看到了这个,不知道哪个是原创,这里粘上链接https://zhuanlan.zhihu.com/p/51131210前言数据预处理的重要性?熟悉数据挖掘和机器学习的小伙伴们都知道,数据处理相关的工作时间占据了整个项目的70%以上。数据的质量,直接决定了模型的预测和泛化能力的好坏。它涉及很多因素,包括:准确性、完整性、一致性、时效性、可信性和解释性。而在真实数据中,我们拿到...
JVM类加载过程 1. JVM类加载过程1.概述从类的生命周期而言,一个类包括如下阶段:加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序进行,而解析阶段则不一定,它在某些情况下可能在初始化阶段后在开始,因为java支持运行时绑定。2. 类加载时机加载(loading)阶段,java虚拟机规范中没有进行约...
JVM内存结构及原理 https://blog.csdn.net/rongtaoup/article/details/89142396https://www.jianshu.com/p/381b50f8853dhttps://blog.csdn.net/ligh_sqh/article/details/79481040
AUC,ROC理解 本来对AUC和ROC的理解有点模糊,网上看了以下下两篇博文,感觉更清楚了。https://blog.csdn.net/u013385925/article/details/80385873https://blog.csdn.net/qq_24753293/article/details/80942650...
Ambari_主机更换硬盘恢复组件 1.问题描述最近一台线上的主机硬盘完全坏掉,也就是说机器需要重新装了,这台主机安装的还有standby name节点,以及其他的组件。主机挂掉之后,Ambari上该主机对应的组件状态全部都为未知状态,所以也无法对其操作,最后能作的就是在该主机重新安装完系统之后,把原来安装的组件都恢复过来。2.问题解决 (1)主机重装系统之后,基本准备工作要做好,jdk、免密登陆、防火墙、...
机器学习缺失值处理方法 机器学习中的模型训练只是其中的一个步骤,有好的的数据才能得到好的模型。但是在现实情况下,数据往往是存在一些缺失值的,怎么取处理这些缺失值,使数据表现更完美也是一个特别重要的步骤。缺失值处理方法综述缺失值是指粗糙数据中由于缺少信息而造成的数据的聚类、分组、删失或截断。它指的是现有数据集中某个或某些属性的值是不完全的。缺失值的产生的原因多种多样,主要分为机械原因和人为原因。...
随机森林 1.随机森林介绍 随机森林是在建立在决策树之上的。只要明白了决策树的概念以及算法,那么随机森林就特别简单了。随机森林就是用多个决策树的结果来决定最终的结果,所以在训练过程中,我们会利用训练数据生成多个决策树。其算法的基本步骤如下: (1)原始训练集为N,应用bootstrap法有放回地随机抽取k个新的自助样本集,并由此构建k棵分类树,每次未被抽到的样本组成了k个袋外数...
SVD算法来简化数据 1.SVD简介SVD(Singular Value Decomposition),奇异值分解,也就是将一个矩阵进行分解,然后从分解后的矩阵上对数据进行分析。矩阵分解可以将原始矩阵表示成新的易于处理的形式,这种新的形式是两个或者多个矩阵的乘积,如下形式: 如式1,将原始矩阵分解为三个矩阵相乘的形...
PCA算法来简化数据 1.降维技术 在日常处理数据的时候,数据往往是好多维的,也就是一条数据往往有好多个特征,导致数据处理和分析起来比较麻烦,但是这些特征绝大部分都是非主要的,对数据的处理分析过程起到的作用特别少,但是却大大增加了数据处理的复杂度,所以我们就需要对数据进行降维处理,将多维度的数据减低到适当的低维度,从而达到对数据进行简化的目的。对数据进行简化有如下好处:使得数据集更易于使用; 降...
FP-growth算法来高效发现频繁集 FP-growth算法是一种高效发现频繁集的算法,比Apriori算法高效,但是不能用于发现关联规则。FP-growth算法只需要对数据即信两次扫描,而Apriori算法对于每个潜在的频繁项集都会扫描数据集判定给定模式是否是频繁,所以FP-growth更快。FP-growth算法主要分为两个过程:构建FP树; 从FP树中挖掘频繁项集。1.FP树介绍 FP代...
Apriori算法(频繁集发现以及关联分析) 我们在网上购物的时候都会收到一些相关产品的推荐,这些被推荐的东西是怎么来的呢?如果我们买了一个鱼竿,那么推荐鱼线,鱼饵什么的是很正常的,毕竟这些产品都是相关性比较大的,收到推荐也不足为奇;但是仅限于此吗?之前不是有个很出名的例子,啤酒和尿布的例子,在没被发现这个规律之前,谁能想到他们两个有一定的联系?所以除过去那些关联性特别明显的东西,还有许多隐藏的有相关性的关系被隐藏在大量的数据...
K-均值聚类(K-means)算法 聚类算法,是一种无监督的学习方法,他将相似的对象归到统一簇中,簇内的对象越相似,聚类效果也就越好,我们用簇识别表示给出聚类结果的含义。他有点像全自动分类,假定有一些数据,现在将相似数据归到一起,簇识别会告诉我们这些簇到底都是什么;聚类和分类的最大不同在于,分类的目标事先已知,而聚类则不一样。因为其产生的结果与分类相同,而只是类别没有预先定义,聚类有时也被称为无监督学习。 ...