大数据开发
文章平均质量分 88
大雄没有叮当猫
好好学习,天天向上
展开
-
Spark04:Spark基本概念和消息通信架构
公众号:数据挖掘与机器学习笔记1.Spark基本概念Application(应用程序):是指用户编写的Spark应用程序,包含驱动程序(Driver)和分布在集群中多个节点上运行的Executor代码,在执行过程中由一个或多个作业组成。Driver(驱动程序):Spark中的Driver即运行上述Application的main函数并且创建SparkContext,其中创建SparkContext的目的是为了准备Spark应用程序的运行环境。在Spark中由SparkContext负责与Cl原创 2020-10-21 22:04:24 · 234 阅读 · 0 评论 -
Spark02:RDD的实现
公众号:数据挖掘与机器学习笔记1.作业调度在执行转换操作的RDD时,调度器会根据RDD的“血统”来构建若干由stage组成的有向无环图(DAG),每个stage阶段包含若干个连续窄依赖转换。调度器按照DAG顺序进行计算得到最终的RDD。调度器向各节点分配任务采用延时调度机制并根据数据存储位置(数据本地性)来确定。如果一个任务需要处理的某个分区刚好存储在相应节点的内存中,则该任务会分配给该节点;如果在内存中不包含该分区,调度器会找到包含该RDD的较佳位置,并把任务分配给所在节点。对于宽依赖而言,Sp原创 2020-09-03 22:09:55 · 142 阅读 · 0 评论 -
Spark03:RDD编程接口
公众号:数据挖掘与机器学习笔记Spark中提供了通用接口来抽象每个RDD,包括:分区信息:数据集的最小分片依赖关系:指向其父RDD函数:基于父RDD的计算方法划分策略和数据位置的元数据1.RDD分区RDD的分区是一个逻辑概念,变换前后的新旧分区在物理上可能是同一块内存或存储,这种优化防止函数式不变性导致的内存需求无限扩张。在RDD操作中可以使用Partitions方法获取RDD划分的分区数,也可以设定分区数目。如果没有指定将使用默认值,而默认数值是该程序所分配到的CPU核数,如果是从HD原创 2020-09-03 22:06:41 · 232 阅读 · 0 评论 -
Spark01:RDD概述
1.1 背景计算机普及和移动互联网导致数据量爆发式增长当前的集群存在一些挑战并行化处理集群的容错-节点故障和慢节点问题多用户共享-动态扩展和缩减计算资源相应的解决方法(编程模式)MapReduce编程模式Storm流式处理系统Impala交互式SQL查询系统Bulk Synchronous Parallel(BSP)并行迭代图计算模型上述几个编程模型需要高效的数据共享;交互数据挖掘需要对同一数据子集进行多个特定的查询;流式应用则需要随时间对状态进行维护和共享。但是上原创 2020-08-25 22:15:25 · 131 阅读 · 0 评论 -
Spark05:SparkConf类源码
1. 简介 SparkConf类负责管理Spark的所有配置项,每个Spark程序都离不开SparkConf,基本上在Spark程序的开始都会进行一个参数的配置,如new SparkConf().setMaster(“local”).setAppName(“My app”)。这里主要讲下SparkConf类源码的基本内容。2.Spark配置2.1 SparkConf构造方法class SparkConf(loadDefaults: Boolean) extends Cloneable with原创 2020-08-22 10:29:27 · 279 阅读 · 0 评论 -
Hive CLI和Beeline的区别-Hive vs Beeline
Hive CLI和Beeline的区别-Hive vs Beeline Beeline主要是开发来与新服务器进行交互。Hive CLI是基于 Apache Thrift的客户端,而Beeline是基于SQLLine CLI的JDBC客户端。在本文中,我们将详细阐述Hive CLI和Beeline客户端之间的区别. 以下是Hive CLI和Beeline客户端之间的一些区别。如果您从旧的Hive CLI迁移到新的Beeline客户端,了解它们之间的区别将会对您有所帮助1.Server Connec原创 2020-08-21 22:23:24 · 5440 阅读 · 0 评论 -
Spark:RDD创建的四种方式
package com.cb.sparkimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}/** * spark创建RDD的四种方式 */object SparkRDD { def main(args: Array[String]): Unit = { val sparkConf=new SparkConf().setMaster("local[4]").setApp.原创 2020-08-16 22:04:32 · 1301 阅读 · 0 评论 -
Spark Mllib之集成算法:梯度提升树和随机森林
微信公众号:数据挖掘与分析学习集成算法是将其他基础模型进行组合的一中算法。spark.mllib支持两种主要的集成算法:GradientBoostedTrees和RandomForest。 两者都使用决策树作为基础模型。 1.梯度提升树和随机森林Gradient-Boosted Trees(GBTs)和Random Forest都是用于学习树集成的算法,但训练过程是不同的。 有几个...原创 2018-09-05 08:45:05 · 1815 阅读 · 0 评论 -
Spark Mllib之基本统计 - 基于RDD的API
1.概要统计(Summary statistics)我们通过Statistics中提供的函数colStats为RDD [Vector]提供列摘要统计信息。colStats()返回MultivariateStatisticalSummary的一个实例,其中包含列的max,min,mean,variance和非零数,以及总计数。 SparkConf conf = new SparkC...原创 2018-09-03 08:48:16 · 596 阅读 · 0 评论 -
Spark Mllib之数据类型 - 基于RDD的API
微信公众号:数据挖掘与分析学习MLlib支持存储在单个机器上的局部向量和矩阵,以及由一个或多个RDD支持的分布式矩阵。局部向量和局部矩阵是用作公共接口的简单数据模型。其底层线性代数运算由Breeze提供。在监督学习中使用的训练示例在MLlib中称为“labeled point”。1.局部向量(Local Vector)局部向量具有整数类型和基于0的索引和双精度浮点型,存储在单个机器上。...原创 2018-09-03 09:02:23 · 566 阅读 · 0 评论 -
Spark Mllib之线性回归
微信公众号:数据挖掘与分析学习1. 线性最小二乘,Lasso回归和岭回归线性最小二乘法是回归问题的最常见公式。损失函数如下:通过使用不同类型的正则化来导出各种相关的回归方法:普通最小二乘或线性最小二乘不使用正则化; 岭回归使用L2正则化; Lasso使用L1正则化。对于所有这些模型,平均损失或训练误差,被称为均方误差。MLlib的所有方法都使用Java友好类型,因此您可...原创 2018-09-06 08:54:45 · 1884 阅读 · 0 评论 -
Spark Mllib之决策树-分类与回归
微信公众号:数据挖掘与分析学习决策树及其集成算法是分类和回归的机器学习任务的流行方法。决策树被广泛使用,因为它们易于解释,处理分类特征,扩展到多类分类设置,不需要特征缩放,并且能够捕获非线性和特征交互。诸如随机森林和提升树集成算法是分类和回归任务中表现较好的算法。spark.mllib支持使用连续和分类特征进行二分类和多类分类以及回归的决策树。该实现按行分区数据,允许数百万个实例的分布式训...原创 2018-09-06 09:21:42 · 4124 阅读 · 0 评论 -
Spark Mllib之频繁模式挖掘--基于RDD
微信公众号:数据挖掘与分析学习挖掘频繁项,项集,子序列或其他子结构通常是分析大规模数据集的第一步,这是数据挖掘多年来一直活跃的研究课题。spark.mllib提供了FP-growth的并行实现,这是一种挖掘频繁项集的流行算法。1.FP-growth Han et al., Mining frequent patterns without candidate generation这篇论文...原创 2018-09-10 12:50:39 · 1032 阅读 · 0 评论 -
Spark Mllib之朴素贝叶斯 - 基于RDD
微信公众号:数据挖掘与分析学习朴素贝叶斯是一种简单的多类分类算法,假设每对特征之间具有独立性。朴素贝叶斯可以非常有效地训练。在训练数据的单次传递中,它计算给定标签的每个特征的条件概率分布,然后应用贝叶斯定理来计算给定观测值的标签的条件概率分布并将其用于预测。spark.mllib支持多项式朴素贝叶斯和伯努利朴素贝叶斯。这些模型通常用于文档分类。在该上下文中,每个观察是一个文档,每个特征代表...原创 2018-09-07 10:06:28 · 610 阅读 · 0 评论 -
Spark Mllib之聚类算法--基于RDD
微信公众号:数据挖掘与分析学习聚类是一种无监督的学习问题,目标是基于一些相似概念将实体的子集彼此分组。聚类通常用于探索性分析和/或作为分层监督学习管道的组成部分(其中针对每个聚类训练不同的分类器或回归模型)。spark.mllib 包支持下列模型:K-means Gaussian mixture1.K-meansK-means是最常用的聚类算法之一,它将数据点聚类为预定义数量的...原创 2018-09-07 10:08:34 · 1154 阅读 · 0 评论 -
Spark中的稀疏矩阵
SparkMLlib中的稀疏矩阵写法是这样的: Matrices.sparse(3,2,Array(0,1,3), Array(0,2,1), Array(9,6,8)) 或者写成这样:Matrices.sparse(3, 2, [0, 1, 3], [0, 2, 1], [9, 6, 8])这是一个3×2的即3行2列的矩阵写法 这个东西执行完结果是这样的:(0,0) 9....转载 2018-09-02 20:25:40 · 1352 阅读 · 1 评论 -
Spark Mllib之相关性计算和假设检验
Spark Mllib之相关性计算和假设检验原创: 小小虫一、皮尔逊相关性和斯皮尔曼相关性1.1 皮尔逊相关性要理解 Pearson 相关系数,首先要理解协方差(Covariance)。协方差表示两个变量 X,Y 间相互关系的数字特征,其计算公式为:Pearson 相关系数公式如下:由公式可知,Pearson 相关系数是用协方差除以两个变...原创 2018-09-02 16:28:35 · 2409 阅读 · 0 评论 -
Spark Mllib之线性SVM和逻辑回归
微信公众号:数据挖掘与分析学习1.Mathematical formulation许多标准机器学习方法可以被公式化为凸优化问题,即找到取决于具有d个条目的变量向量w(在代码中称为权重)的凸函数f的最小化的任务。形式上,我们可以将其写为优化问题,其中目标函数形式如下:这里向量xi∈Rd是训练数据的样本,对于1≤i≤n,yi∈R是它们对应的我们想要预测的标签。如果L(w; x,y)可以...原创 2018-09-04 09:14:46 · 1395 阅读 · 0 评论 -
SparkRDD之cartesian
计算两个RDD之间的笛卡尔积(即第一个RDD的每个项与第二个RDD的每个项连接)并将它们作为新的RDD返回。 (警告:使用此功能时要小心。!内存消耗很快就会成为问题!)java示例如下:package com.cb.spark.sparkrdd;import java.util.Arrays;import org.apache.spark.SparkConf;import or...原创 2018-08-14 07:55:11 · 2107 阅读 · 1 评论 -
SparkRDD之checkpoint
计算两个RDD之间的笛卡尔积(即第一个RDD的每个项与第二个RDD的每个项连接)并将它们作为新的RDD返回。 (警告:使用此功能时要小心。!内存消耗很快就会成为问题!)java示例如下:package com.cb.spark.sparkrdd;import java.util.Arrays;import org.apache.spark.SparkConf;import or...原创 2018-08-14 08:22:48 · 201 阅读 · 0 评论 -
SparkRDD之coalesce和repartition
def coalesce ( numPartitions : Int , shuffle : Boolean = false ): RDD [T]def repartition ( numPartitions : Int ): RDD [T]coalesce和repartition将关联数据合并到给定数量的分区中。 repartition对数据进行shufflejava代码如下:p...原创 2018-08-14 09:56:19 · 688 阅读 · 0 评论 -
SparkRDD之cogroup和groupWith
cogroup和groupWith是一组非常强大的功能,允许使用键将最多3个键值RDD组合在一起。示例如下:package com.cb.spark.sparkrdd;import java.util.Arrays;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;im...原创 2018-08-14 10:21:45 · 2113 阅读 · 0 评论 -
SparkRDD之collectAsMap
与collect类似,但适用于键值RDD并将它们转换为Map映射以保留其键值结构java示例如下:package com.cb.spark.sparkrdd;import java.util.Arrays;import java.util.Map;import org.apache.spark.SparkConf;import org.apache.spark.api.jav...原创 2018-08-15 08:51:13 · 4467 阅读 · 1 评论 -
SparkRDD之combineByKey
combineByKey是Spark中一个比较核心的高级函数,其他一些高阶键值对函数底层都是用它实现的。诸如 groupByKey,reduceByKey等等。combineByKey作用在键值对RDD上,根据键来对RDD进行合并。java示例:package com.cb.spark.sparkrdd;import java.util.ArrayList;import java....原创 2018-08-15 10:02:46 · 584 阅读 · 0 评论 -
SparkRDD之mapPartitions和mapPartitionsWithIndex
1.mapPartitionsmapPartition可以这么理解,先对RDD进行partition,再把每个partition进行map函数。下面的例子,将整数转为字符串:package com.cb.spark.sparkrdd;import java.util.ArrayList;import java.util.Arrays;import java.util.Iter...原创 2018-08-12 22:07:36 · 4452 阅读 · 0 评论 -
SparkRDD之aggregate
Spark 文档中对 aggregate的函数定义如下:def aggregate[U](zeroValue: U)(seqOp: (U, T) => U, combOp: (U, U) => U)(implicit arg0: ClassTag[U]): U注释:Aggregate the elements of each partition, and then ...原创 2018-08-13 15:30:56 · 803 阅读 · 0 评论 -
SparkRDD之countApproxDistinct和countApproxDistinctByKey
1.countApproxDistinctpackage com.latrobe.sparkimport org.apache.spark.{SparkConf, SparkContext}/** * countApproxDistinct : RDD的一个方法,作用是对RDD集合内容进行去重统计。 * 该统计是一个大约的统计,参数relativeSD控制统计的精确度。 * ...原创 2018-08-16 08:05:15 · 709 阅读 · 0 评论 -
SparkRDD之countByKey和countByValue
countByKey和countByValue都是对RDD中的元素进行统计,前者必须是键值对RDD,根据键统计。后者直接统计值。package com.cb.spark.sparkrdd;import java.util.Arrays;import java.util.function.BiConsumer;import org.apache.spark.SparkConf;im...原创 2018-08-17 08:47:55 · 1459 阅读 · 0 评论 -
Hive 2.3.0 MetaException(message:Version information not found in metastore. )
使用Hive 2.3.0 配置远程模式(Remote)时,执行hive --service metastore命令时出现MetaException(message:Version information not found in metastore. )错误。解决办法:The necessary tables required for the metastore are missing i...原创 2018-08-27 20:47:51 · 3534 阅读 · 0 评论 -
Hive 学习笔记之启动方式,内置服务
一、Hive介绍 Hive是基于Hadoop的一个数据仓库,Hive能够将SQL语句转化为MapReduce任务进行运行。 Hive架构图分为以下四部分。 1、用户接口 Hive有三个用户接口: 命令行接口(CLI):以命令行的形式输入SQL语句进行数据数据操作 Web界面:通过Web方式进行访问。 Hive的远程服务方式:通过JDBC...转载 2018-08-27 20:51:13 · 555 阅读 · 0 评论 -
SparkRDD之distinct和first
distinct:对RDD中的元素进行去重。first:返回RDD中第一个元素。package com.cb.spark.sparkrdd;import java.util.Arrays;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org.apache.sp...原创 2018-08-21 08:55:45 · 3502 阅读 · 0 评论 -
SparkRDD之filter、filterByRange
1.filter:使用一个布尔函数为RDD的每个数据项计算,并将函数返回true的项放入生成的RDD中。package com.cb.spark.sparkrdd;import java.util.Arrays;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaRDD;import org...原创 2018-08-21 09:07:08 · 4404 阅读 · 0 评论 -
SparkRDD之aggregateByKey
像aggregate函数一样工作,只不过aggregateByKey应用于具有相同键的值。 与聚合函数不同,初始值不应用于第二个reduce。示例如下:package com.cb.spark.sparkrdd;import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;import ...原创 2018-08-14 07:39:53 · 948 阅读 · 0 评论