spark
文章平均质量分 59
Running_Tiger
这个作者很懒,什么都没留下…
展开
-
Spark 任务调度
Spark 任务调度1. 任务调度流程图各个RDD之间存在着依赖关系,这些依赖关系就形成有向无环图DAG,DAGScheduler对这些依赖关系形成的DAG进行Stage划分,划分的规则很简单,从后往前回溯,遇到窄依赖加入本stage,遇见宽依赖进行Stage切分。完成了Stage的划分。DAGScheduler基于每个Stage生成TaskSet,并将TaskSet提交给TaskScheduler原创 2018-03-06 19:07:03 · 3447 阅读 · 0 评论 -
Spark-Shell编程
Spark-Shell编程spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下用scala编写spark程序。1. 运行spark-shell –master local[N] 读取本地文件单机模式:通过本地N个线程跑任务,只运行一个SparkSubmit进程。1.1 需求读取本地文件,实现文件内的单词计数。vi words.txthello c原创 2018-03-06 14:54:49 · 1918 阅读 · 0 评论 -
Spark 测试程序计算圆周率
Spark 测试程序计算圆周率1. 普通模式提交任务该算法是利用蒙特·卡罗算法求圆周率PI,通过计算机模拟大量的随机数,最终会计算出比较精确的π。bin/spark-submit \--class org.apache.spark.examples.SparkPi \--master spark://node-1:7077 \--executor-memory 1G \--total-exe原创 2018-03-06 14:27:22 · 2943 阅读 · 0 评论 -
Spark 集群部署
Spark 集群部署1. 下载安装包下载地址spark官网:http://spark.apache.org/downloads.html 这里使用 spark-2.0.2-bin-hadoop2.7版本.2. 解压tar -zxvf spark-2.0.2-bin-hadoop2.7.tgz3. 修改配置文件配置文件目录在 /export/servers/...原创 2018-03-06 11:40:45 · 251 阅读 · 0 评论 -
Spark RDD的缓存
Spark RDD的缓存Spark速度非常快的原因之一,就是在不同操作中可以在内存中持久化或者缓存数据集。当持久化某个RDD后,每一个节点都将把计算分区结果保存在内存中,对此RDD或衍生出的RDD进行的其他动作中重用。这使得后续的动作变得更加迅速。RDD相关的持久化和缓存,是Spark最重要的特征之一。可以说,缓存是Spark构建迭代式算法和快速交互式查询的关键。1. RDD缓存方式RDD通过per原创 2018-03-05 22:43:37 · 5850 阅读 · 0 评论 -
Spark RDD的依赖关系
RDD的依赖关系1. RDD的依赖关系RDD和它依赖的父RDD的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency)。2. 窄依赖窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用 总结:窄依赖我们形象的比喻为独生子女3. 宽依赖宽依赖指的是多个子RDD的Partition会依赖同一个父RDD的Par原创 2018-03-05 22:40:46 · 320 阅读 · 0 评论 -
RDD常用的算子操作
RDD常用的算子操作启动spark-shell 进行测试:spark-shell --master spark://node-1:7077 1. 练习1:map、filter//通过并行化生成rddval rdd1 = sc.parallelize(List(5, 6, 4, 7, 3, 8, 2, 9, 1, 10))//对rdd1里的每一个元素乘2然后排序val rdd2 = rdd1.m原创 2018-03-05 22:36:30 · 741 阅读 · 0 评论 -
Spark计算模型RDD
Spark计算模型RDD1. RDD概述1.1 什么是RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将数据缓存在内存中,后续的查询能够重用这些数据,这极大地提升了查询原创 2018-03-05 22:31:44 · 1942 阅读 · 0 评论 -
Spark角色介绍
Spark角色介绍Spark是基于内存计算的大数据并行计算框架。因为其基于内存计算,比Hadoop中MapReduce计算框架具有更高的实时性,同时保证了高效容错性和可伸缩性。从2009年诞生于AMPLab到现在已经成为Apache顶级开源项目,并成功应用于商业集群中,学习Spark就需要了解其架构。Spark架构图:Spark架构使用了分布式计算中master-slave模型,master是集群中原创 2018-03-05 22:20:06 · 1023 阅读 · 0 评论 -
Spark 使用IDEA测试集群环境
Spark 使用IDEA测试集群环境spark-shell仅在测试和验证我们的程序时使用的较多,在生产环境中,通常会在IDEA中编写程序,然后打成jar包,最后提交到集群。最常用的是创建一个Maven项目,利用Maven来管理jar包的依赖。1. 创建maven工程2. 配置pom.xml文件<properties> <scala.ve...原创 2018-03-06 15:21:13 · 589 阅读 · 2 评论 -
Spark RDD编程API
Spark RDD编程API1. RDD的算子分类Transformation(转换):根据数据集创建一个新的数据集,计算后返回一个新RDD;例如:一个rdd进行map操作后生了一个新的rdd。Action(动作):对rdd结果计算后返回一个数值value给驱动程序; 例如:collect算子将数据集的所有元素收集完成返回给驱动程序。2. TransformationRDD中的所有转换都是延原创 2018-03-06 16:16:23 · 536 阅读 · 0 评论 -
Spark MLlib协同过滤推荐算法实现
Spark MLlib协同过滤推荐算法实现一、算法概述一、算法概述原创 2019-05-06 15:22:06 · 6465 阅读 · 10 评论 -
Spark MLlib ALS交替最小二乘法算法实现
这Spark MLlib ALS交替最小二乘法算法实现一、训练数据二、实战代码三、运行结果ALS是交替最小二乘法(alternating least squares)的简称。在机器学习的上下文中,ALS特指使用交替最小二乘法求解的一个协同推荐算法。它通过观察到的所有用户给产品打分,来推断每个用户的喜好并向用户推荐适合的产品。一、训练数据数据格式:用户ID,物品ID,评分1,1,5.01,...原创 2019-05-05 16:39:52 · 1010 阅读 · 1 评论 -
Spark MLlib FPGrowth关联规则算法实现
Spark MLlib FPGrowth关联规则算法实现一、基本概念1、项与项集2、关联规则3、支持度4、置信度5、提升度二、FPGrowth算法1、构造FP树2、FP树的挖掘三、训练数据四、实战代码五、运行结果一、基本概念1、项与项集这是一个集合概念,在一个篮子商品中的一件消费品即一项(iten),若干项的集合为项集,如{啤酒,尿布}构成一个二元项集。2、关联规则关联规则用于表示数据内...原创 2019-04-26 11:11:18 · 1498 阅读 · 0 评论 -
Spark MLlib线性回归简单实现
Spark MLlib线性回归简单实现Spark MLlib线性回归简单实现一、训练数据二、实战代码三、线性回归预测及预测误差Spark MLlib线性回归简单实现一、训练数据普通标签数据,数据格式:“标签,特征值1 特征值2 特征值3…”训练数据lpsa.data如下:-0.4307829,-1.63735562648104 -2.00621178480549 -1.862425972...原创 2019-04-26 09:34:01 · 3463 阅读 · 1 评论 -
SparkSql常用操作
SparkSql常用操作一、数据库数据准备二、实战Spark SQL中的DataFrame类似于一张关系型数据表。在关系型数据库中对单表或进行的查询操作,在DataFrame中都可以通过调用Scala提供的DataFrame API来实现。一、数据库数据准备-- ------------------------------ Table structure for persion-- --...原创 2018-11-22 18:42:37 · 741 阅读 · 0 评论 -
Spark on Hive
Spark on Hive1、spark on hive介绍(1)就是通过sparksql,加载hive的配置文件,获取到hive的元数据信息(2)spark sql获取到hive的元数据信息之后就可以拿到hive的所有表的数据(3)接下来就可以通过spark sql来操作hive表中的数据2、spark on hive 配置(1)将hive安装目录下conf/hive-site.xml拷原创 2018-03-14 08:49:59 · 2192 阅读 · 0 评论 -
Running Spark on YARN
Running Spark on YARN1、官方文档官方文档:http://spark.apache.org/docs/latest/running-on-yarn.html2、配置安装安装hadoop:需要安装HDFS模块和YARN模块,HDFS必须安装,spark运行时要把jar包存放到HDFS上。安装Spark:解压Spark安装程序到一台服务器上,修改spark-env.sh配置文件,原创 2018-03-14 08:43:50 · 373 阅读 · 0 评论 -
Spark DAG的生成
Spark DAG的生成DAG概念 DAG(Directed Acyclic Graph)叫做有向无环图,原始的RDD通过一系列的转换就形成了DAG,根据RDD之间依赖关系的不同将DAG划分成不同的Stage(调度阶段)。对于窄依赖,partition的转换处理在一个Stage中完成计算。对于宽依赖,由于有Shuffle的存在,只能在parent RDD处理完成后,才能开始接下来的计算,因此宽依赖原创 2018-03-06 17:25:09 · 1806 阅读 · 0 评论 -
Spark HA高可用部署
Spark HA高可用部署1. 高可用部署说明Spark Standalone集群是Master-Slaves架构的集群模式,和大部分的Master-Slaves结构集群一样,存在着Master单点故障的问题。如何解决这个单点故障的问题,Spark提供了两种方案:基于文件系统的单点恢复(Single-Node Recovery with Local File System)。 主要用于开发或测试原创 2018-03-05 22:14:36 · 612 阅读 · 0 评论 -
Spark 特点
Spark 特点1. 快与Hadoop的MapReduce相比,Spark基于内存的运算要快100倍以上,基于硬盘的运算也要快10倍以上。Spark实现了高效的DAG执行引擎,可以通过基于内存来高效处理数据流。2.易用Spark支持Java、Python和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和...原创 2018-03-05 22:04:23 · 3299 阅读 · 0 评论 -
Spark SQL读取数据源创建DataFrame(一)
读取文本文件创建DataFrame在spark2.0之后,SparkSession 封装了 SparkContext,SqlContext,通过SparkSession可以获取到SparkConetxt,SqlContext对象。1、创建本地文件并上传hdfs有三列,分别是id、name、age,用空格分隔vi person.txt1 zhangsan 202 lisi 293 wangwu 2原创 2018-03-10 19:12:16 · 1496 阅读 · 0 评论 -
Spark DataFrame
Spark DataFrame1. DataFrame概念DataFrame的前身是SchemaRDD,从Spark 1.3.0开始SchemaRDD更名为DataFrame。与SchemaRDD的主要区别是:DataFrame不再直接继承自RDD,而是自己实现了RDD的绝大多数功能。你仍旧可以在DataFrame上调用rdd方法将其转换为一个RDD。在Spark中,DataFra...原创 2018-03-07 00:19:31 · 955 阅读 · 0 评论 -
Spark SQL特点
Spark SQL特点1.Spark SQL概念Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。 相比于Spark RDD API,Spark SQL包含了对结构化数据和在其上运算的更多信息,Spark SQL使用这些信息进行了额外的优化,使对结构化数据的操作更加高效和方便。 有多种方式去使用...原创 2018-03-07 00:17:56 · 2721 阅读 · 0 评论 -
RDD操作详解(三)Action操作
RDD操作详解(三)Action操作启动spark-shellspark-shell --master spark://node-1:7077 1. firstdef first(): Tfirst返回RDD中的第一个元素,不排序。scala> var rdd1 = sc.makeRDD(Array(("A","1"),("B","2"),("C","原创 2018-03-07 00:15:57 · 1733 阅读 · 1 评论 -
RDD操作详解(二)键值转换
RDD操作详解(二)键值转换启动spark-shellspark-shell --master spark://node-1:7077 1. partitionBydef partitionBy(partitioner: Partitioner): RDD[(K, V)] 该函数根据partitioner函数生成新的ShuffleRDD,将原RDD重新分区。sca...原创 2018-03-07 00:15:42 · 1677 阅读 · 0 评论 -
RDD操作详解(一)基本转换
RDD操作详解(一)基本转换启动spark-shellspark-shell --master spark://node-1:7077 1. mapmap是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD。 任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。 举例:scala> val a = sc.parallelize(1 to 9...原创 2018-03-06 19:49:12 · 18747 阅读 · 0 评论 -
Spark 运行架构
Spark 运行架构1. Spark运行基本流程构建Spark Application的运行环境(启动SparkContext),SparkContext向资源管理器(可以是Standalone、Mesos或YARN)注册并申请运行Executor资源;资源管理器分配Executor资源并启动Executor,Executor运行情况将随着心跳发送到资源管理器上;SparkContext构建成原创 2018-03-06 19:33:54 · 331 阅读 · 0 评论 -
Spark checkpoint容错机制
Spark checkpoint容错机制1. checkpoint概念Spark 在生产环境下经常会面临transformation的RDD非常多(例如一个Job中包含1万个RDD)或者具体transformation的RDD本身计算特别复杂或者耗时(例如计算时长超过1个小时),这个时候就要考虑对计算结果数据持久化保存;Spark是擅长多步骤迭代的,同时擅长基于Job的复用,这个时候如果能够对曾原创 2018-03-06 19:15:13 · 804 阅读 · 0 评论 -
Spark SQL读取数据源创建DataFrame(二)
读取json文件创建DataFrame1、数据准备使用spark安装包下的 /opt/bigdata/spark/examples/src/main/resources/people.json文件2、读取数据val jsonDF= spark.read.json("file:///export/servers/spark/examples/src/main/resources/people.jso原创 2018-03-10 19:18:30 · 342 阅读 · 0 评论 -
Spark SQL读取数据源创建DataFrame(三)
读取parquet列式存储格式文件创建DataFrame1、数据准备使用spark安装包下的 /opt/bigdata/spark/examples/src/main/resources/users.parquet文件2、读取数据val parquetDF=spark.read.parquet("file:///export/servers/spark/examples/src/main/reso原创 2018-03-10 19:31:17 · 354 阅读 · 0 评论 -
SparkSql将数据写入到MySQL
SparkSql将数据写入到MySQL1、通过IDEA编写SparkSql代码package cn.cheng.sqlimport java.util.Propertiesimport org.apache.spark.rdd.RDDimport org.apache.spark.sql.{DataFrame, Dataset, SaveMode, SparkSession}/** *原创 2018-03-11 13:39:39 · 17478 阅读 · 6 评论 -
SparkSql从MySQL加载数据
SparkSql从MySQL中加载数据Spark SQL可以通过JDBC从关系型数据库中读取数据的方式创建DataFrame,通过对DataFrame一系列的计算后,还可以将数据再写回关系型数据库中。1、通过IDEA编写SparkSql代码mysql建表iplocation语句create table `iplocation` ( `longitude` varchar (20),原创 2018-03-11 13:33:28 · 2256 阅读 · 0 评论 -
Spark SQL程序操作HiveContext
Spark SQL程序操作HiveContextHiveContext是对应spark-hive这个项目,与hive有部分耦合, 支持hql,是SqlContext的子类,也就是说兼容SqlContext;1、添加依赖<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2.11</artifa原创 2018-03-11 13:18:36 · 4063 阅读 · 2 评论 -
Spark SQL程序实现RDD转换DataFrame(二)
通过StructType直接指定Schema1、当case class不能提前定义时,可以通过以下三步创建DataFrame1、将RDD转为包含row对象的RDD1、基于structType类型创建schema,与第一步创建的RDD相匹配2、通过sparkSession的createDataFrame方法对第一步的RDD应用 schema创建DataFrame2、代码实现maven依赖同S原创 2018-03-11 13:15:22 · 654 阅读 · 0 评论 -
Spark SQL程序实现RDD转换DataFrame(一)
通过反射推断Schema在Spark SQL中有两种方式可以在DataFrame和RDD进行转换利用反射机制,推导包含某种类型的RDD,通过反射将其转换为指定类型的DataFrame,适用于提前知道RDD的schema。通过编程接口与RDD进行交互获取schema,并动态创建DataFrame,在运行时决定列及其类型。1、创建maven工程添加依赖 <properties>原创 2018-03-11 13:09:39 · 596 阅读 · 0 评论 -
SparkSQL DataSet
SparkSQL DataSet1、概念DataSet是分布式的数据集合。DataSet是在Spark1.6中添加的新的接口。它集中了RDD的优点(强类型和可以用强大lambda函数)以及Spark SQL优化的执行引擎。DataSet可以通过JVM的对象进行构建,可以用函数式的转换(map/flatmap/filter)进行多种操作。2、DataFrame、DataSet、RDD的区别假设RDD中原创 2018-03-10 20:18:30 · 1676 阅读 · 0 评论 -
SparkSQL DataFrame常用操作(二)
SQL风格语法DataFrame的一个强大之处就是可以将它看作是一个关系型数据表,然后可以通过在使用spark.sql() 来执行SQL查询,结果将作为一个DataFrame返回。 如果想使用SQL风格的语法,需要将DataFrame注册成表,采用如下的方式:personDF.registerTempTable("t_person")1、查询年龄最大的前两名spark.sql("select *原创 2018-03-10 20:05:16 · 359 阅读 · 0 评论 -
SparkSQL DataFrame常用操作(一)
DSL风格语法DataFrame提供了一个领域特定语言(DSL)以方便操作结构化数据。下面是一些使用示例1、查看DataFrame中的内容,通过调用show方法personDF.show2、查看DataFrame部分列中的内容查看name字段的数据personDF.select(personDF.col("name")).show查看name字段的另一种写法personDF.select("name原创 2018-03-10 19:43:46 · 6738 阅读 · 0 评论 -
Spark修改控制台日志级别
Spark修改控制台日志级别一、修改conf/log4j.properties二、重启集群INFO日志过多不易于观察错误和执行结果,需要调整日志输出级别。一、修改conf/log4j.propertiescp log4j.properties.template log4j.propertiesvi log4j.propertieslog4j.rootCategory=INFO, co...原创 2019-07-26 22:59:56 · 3108 阅读 · 0 评论