
Spark
文章平均质量分 78
淡淡的倔强
不怕千万人阻挡,只怕自己投降!
展开
-
Spark系列--SparkSQL(三)执行SparkSQL查询
一、Spark-Shell查询(1)启动Spark-Shell(本人是以Standlone模式启动Spark集群的) (2)创建测试JSON数据,注意每一行是一个JSON数据{"name":"Michael"} {"name":"Andy&amp原创 2018-07-23 11:32:34 · 9577 阅读 · 1 评论 -
Spark系列(一)集群搭建
前言Spark的部署模式有Local、Local-Cluster、Standalone、Yarn、Mesos,我们选择最具代表性的Standalone集群部署模式。一、集群角色从物理部署层面上来看,Spark主要分为两种类型的节点,Master节点和Worker节点,Master节点主要运行集群管理器的中心化部分,所承载的作用是分配Application到Worker节点,维护Wo...原创 2018-07-06 15:33:25 · 1670 阅读 · 0 评论 -
Spark系列--SparkSQL(二)RDD、DataFrame、DataSet
前言在SparkCore中我们知道数据抽象是RDD,在SparkSQL中Spark为我们提供了两个新的抽象,分别是DataFrame和DataSet。他们和RDD有什么区别呢?首先从版本的产生上来看: RDD (Spark1.0) —> Dataframe(Spark1.3) —> Dataset(Spark1.6) 如果同样的数据都给到这三个数据结构,他们分别计算之后,都会给出...原创 2018-07-20 19:24:11 · 1406 阅读 · 0 评论 -
Spark系列--Spark Streaming(一)Spark Streaming简介
一、简介Spark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强等特点。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map、reduce、join、window等...原创 2018-07-26 19:05:28 · 1900 阅读 · 0 评论 -
Spark系列--Spark Streaming(四)DStreams输入--高级数据源之Kafka
前言本篇主要介绍Spark Streaming如何集成Kafka,演示SparkStreaming如何从Kafka读取消息,如果通过连接池方法把消息处理完成后再写会Kafka。在工程中需要引入Maven工件来使用它。包内提供的 KafkaUtils 对象可以在 StreamingContext 和JavaStreamingContext 中以你的 Kafka 消息创建出 DStream...原创 2018-07-31 15:07:14 · 566 阅读 · 0 评论 -
Spark系列--Spark Streaming(五)DStreams输入--高级数据源之Flume
一般Spark Streaming从Kafka获取数据,进行实时计算,从Flume获取数据的项目还没接触过,在此Mark下,待需要时参考。Spark Streaming + Flume整合官网文档阅读及运行示例官方文档: http://spark.apache.org/docs/latest/streaming-flume-integration.html...转载 2018-07-31 16:55:09 · 282 阅读 · 0 评论 -
Spark系列--Spark Streaming(二)IDEA编写Spark Streaming--NetWordCount程序
前言前面介绍了Spark Streaming的相关概念,这里我们使用IDEA编写Spark Streaming基于Socket数据流进行的WordCount。一、IDEA编写NetWordCount在原有的SparkCore项目基础上,添加Spark Streaming项目依赖:<dependency> <groupId>org.apache.sp...原创 2018-07-27 17:37:17 · 523 阅读 · 0 评论 -
Spark系列--Spark Streaming(三)DStreams输入--基本数据源及自定义Receiver
前言Spark Streaming原生支持一些不同的数据源。一些“核心”数据源已经被打包到Spark Streaming 的 Maven 工件中,而其他的一些则可以通过 spark-streaming-kafka 等附加工件获取。每个接收器都以 Spark 执行器程序中一个长期运行的任务的形式运行,因此会占据分配给应用的 CPU 核心。此外,我们还需要有可用的 CPU 核心来处理数据。这意味着...原创 2018-07-27 18:36:53 · 1524 阅读 · 0 评论 -
Spark系列--Spark Streaming(六)DStreams转换
前言DStream上的原语与RDD的类似,分为Transformations(转换)和Output Operations(输出)两种,此外转换操作中还有一些比较特殊的原语,如:updateStateByKey()、transform()以及各种Window相关的原语。 Transformation Meaning map(func) 将源DStream中的每个元素...原创 2018-07-31 19:09:31 · 1775 阅读 · 0 评论 -
Spark系列--Spark Streaming(七)DStreams输出
前言输出操作指定了对流数据经转化操作得到的数据所要执行的操作(例如把结果推入外部数据库或输出到屏幕上)。与 RDD 中的惰性求值类似,如果一个 DStream 及其派生出的 DStream 都没有被执行输出操作,那么这些 DStream 就都不会被求值。如果 StreamingContext 中没有设定输出操作,整个 context 就都不会启动。 Tables Are...原创 2018-08-01 09:55:24 · 662 阅读 · 0 评论 -
Spark系列--Spark Streaming(八)累加器和广播变量
累加器(Accumulators)和广播变量(Broadcast variables)不能从Spark Streaming的检查点中恢复。如果你启用检查并也使用了累加器和广播变量,那么你必须创建累加器和广播变量的延迟单实例从而在驱动因失效重启后他们可以被重新实例化。如下例述:object WordBlacklist { @volatile private var instance: Br...原创 2018-08-01 11:00:10 · 1799 阅读 · 0 评论 -
Spark系列--Spark Streaming(九)SQL Operations and Caching
一、DataFrame and SQL Operations你可以很容易地在流数据上使用DataFrames和SQL。你必须使用SparkContext来创建StreamingContext要用的SQLContext。此外,这一过程可以在驱动失效后重启。我们通过创建一个实例化的SQLContext单实例来实现这个工作。如下例所示。我们对前例word count进行修改从而使用DataFrame...原创 2018-08-01 11:32:56 · 302 阅读 · 0 评论 -
Spark常用参数解释及建议值
spark的默认配置文件位于堡垒机上的这个位置: $SPARK_CONF_DIR/spark-defaults.conf,用户可以自行查看和理解。spark及依赖环境版本如下: spark 2.1.0, hadoop 2.7.1 , hive 1.2.1, scala 2.11.8, jdk7、jdk8均可需要注意的是,默认值优先级最低,用户如果提交任务时或者代码里明确指定配置,则以用户配...转载 2018-08-10 13:56:34 · 2319 阅读 · 0 评论 -
Spark系列--Spark调优
Spark调优有很多方面,下面转载别人的调优系列博客,在此Mark下,方便大家一起学习!Spark调优系列原创 2018-08-02 15:43:56 · 248 阅读 · 0 评论 -
Spark系列(二)执行Spark程序
一、执行第一个spark程序(standalone)该算法是利用蒙特·卡罗算法求PI/opt/module/spark-2.1.1-bin-hadoop2.7/bin/spark-submit \--class org.apache.spark.examples.SparkPi \--master spark://hadoop0:7077 \--executor-memory 1G ...原创 2018-07-06 18:10:26 · 1445 阅读 · 0 评论 -
Spark系列(三)Spark-yarn集群安装及执行
前言前面提到过,Spark的部署模式有Local、Local-Cluster、Standalone、Yarn、Mesos,在这里,mark下Yarn集群的安装部署及执行。Yarn集群的部署不依赖Standalone集群,不需要启动Spark,但需要安装Hadoop和Spark,本Yarn集群是在前面的Spark镜像基础上构建的,详细安装如下:一、Yarn集群安装1、修改Hado...原创 2018-07-10 18:16:17 · 2543 阅读 · 0 评论 -
Spark系列--SparkSQL(四)RDD、DataFrame、DataSet之间的转换
前言创建DataFrame主要有三种方式:从Spark数据源进行创建从RDD进行转换从Hive Table进行查询返回(后面讲述)一、RDD 和 DataFrame之间的转换准备测试RDD数据scala> val rdd=sc.makeRDD(List("Mina,19","Andy,30","Michael,29"))rdd: org.ap原创 2018-07-23 17:12:35 · 2920 阅读 · 0 评论 -
Spark系列--SparkSQL(五)用户自定义函数
一、用户自定义UDF函数通过spark.udf功能用户可以自定义函数。scala> val df = spark.read.json("/input/people.json")scala> spark.udf.register("addName",(x:String)=>"Nam原创 2018-07-23 18:34:37 · 3115 阅读 · 0 评论 -
Spark系列--SparkSQL(六)数据源
前言SparkSQL的数据源:结构化的文件(json,parquet),或者是Hive的表,或者是外部的数据库(mysql),也或者是已经存在的RDD。Spark SQL的DataFrame接口支持多种数据源的操作。一个DataFrame可以进行RDDs方式的操作,也可以被注册为临时表。把DataFrame注册为临时表之后,就可以对该DataFrame执行SQL查询。Spark SQL...原创 2018-07-24 12:25:14 · 4092 阅读 · 0 评论 -
Spark系列--SparkSQL(一)SparkSQL简介
一、SparkSQL简介1、简介Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所有Spark SQL的...原创 2018-07-20 18:37:05 · 786 阅读 · 0 评论 -
Spark系列--SparkCore(七)广播变量和累加器
一、广播变量 通常情况下,当一个RDD的很多操作都需要使用driver中定义的变量时,每次操作,driver都要把变量发送给worker节点一次,如果这个变量中的数据很大的话,会产生很高的传输负载,导致执行效率降低。 使用广播变量可以使程序高效地将一个很大的只读数据发送给多个worker节点,而且对每个worker节点只需要传输一次,每次操作时executor可以直接获取本地保存的数据...原创 2018-07-20 14:44:18 · 3336 阅读 · 0 评论 -
Spark系列--SparkCore(六)RDD分区详解
一、分区个数规则spark.default.parallelism:(默认的并发数)= 2当配置文件spark-default.conf中没有显示的配置,则按照如下规则取值:1、本地模式(不会启动executor,由SparkSubmit进程生成指定数量的线程数来并发):spark-shell spark.default.parallelism = 1spark-s...转载 2018-07-19 22:05:04 · 2267 阅读 · 1 评论 -
Spark系列--SparkCore(五)RDD容错性之cache、persist、checkpoint
一、RDD容错性理解RDD的容错性:RDD可以通过血统机制来进行RDD的恢复。在RDD进行转换和动作的时候,会形成RDD的Lineage依赖链,当某一个RDD失效的时候,可以通过重新计算上游的RDD来重新生成丢失的RDD数据。但是在spark计算里面,假如计算流程DAG特别长,服务器需要将整个DAG计算完成得出结果,但是如果在这很长的计算流程中突然中间算出的数据丢失了,spark又会根...原创 2018-07-19 17:57:26 · 1765 阅读 · 0 评论 -
Spark系列--SparkCore(四)RDD的依赖关系及运行规划
本篇以WordCount为例,去分析RDD的依赖关系和任务切分机制,分析样例如下:sc.textFile(“xx") .flatMap(_.split(" ")) .map((_,1)) .reduceByKey(_+_) .saveAsTextFile(“xx")一、RDD的依赖关系RDD的依赖分为两种:窄依赖、宽依赖窄依赖指的是每一...原创 2018-07-19 14:55:11 · 1674 阅读 · 0 评论 -
Spark系列--SparkCore(三)RDD基本操作
前言RDD的基本操作分为两种,一种是转换Transformation,一种是行动ActionRDD中的所有转换都是延迟加载的,也就是说,它们并不会直接计算结果。相反的,它们只是记住这些应用到基础数据集(例如一个文件)上的转换动作。只有当发生一个要求返回结果给Driver的动作时,这些转换才会真正运行。这种设计让Spark更加有效率地运行。一、常用的Transformation1...原创 2018-07-12 19:16:12 · 1899 阅读 · 0 评论 -
Spark系列--SparkCore(二)RDD创建方式
一、RDD的创建方式创建RDD的创建方式大概可以分为三种:从集合中创建RDD;从外部存储创建RDD;从其他RDD转换。1.1 从集合中创建RDD**从集合中创建RDD主要有下面两个方法:makeRDD和parallelizedef makeRDD[T: ClassTag](seq: Seq[T],numSlices: Int = defaultParallelism...原创 2018-07-12 18:03:19 · 1646 阅读 · 0 评论 -
Spark系列--SparkCore(一)RDD简介
前言RDD是Spark的基石,是实现Spark数据处理的核心抽象。那么RDD为什么会产生呢?Hadoop的MapReduce是一种基于数据集的工作模式,面向数据,这种工作模式一般是从存储上加载数据集,然后操作数据集,最后写入物理存储设备。数据更多面临的是一次性处理。MR的这种方式对数据领域两种常见的操作不是很高效。第一种是迭代式的算法。比如机器学习中ALS、凸优化梯度下降等。这些都需要...原创 2018-07-12 17:00:33 · 2036 阅读 · 0 评论 -
Spark系列(五)IDEA编写及调试Spark的WordCount程序
使用IDEA编写Spark程序的前提条件是IDEA已经配置好Scala的编写环境,可以参考Scala–IDEA配置及maven项目创建在这里,我们以hadoop的wordcount为例,编写Scala程序,以本地模式和Yarn模式分别测试程序。Spark程序在开发的时候,使用IDEA编写程序及调试过程如下:一、项目创建1、创建Scala的Maven项目,pom.xml文件如下所示:...原创 2018-07-12 15:17:24 · 2483 阅读 · 0 评论 -
Spark系列(四)Spark集群模式详解
前言Spark的部署模式有Local、Local-Cluster、Standalone、Yarn、Mesos,其中Yarn和Mesos是类似的,都不需要额外部署Spark集群,其中Yarn也是有Yarn-Client,Yarn-Cluster两种模式。Mesos和Yarn差不多,在这就不详细说明了。一、Local模式Local模式分为Local本地模式和Local-Cluster本地伪...原创 2018-07-10 19:20:28 · 2147 阅读 · 0 评论 -
Spark系列--Spark On YARN 动态资源
spark的默认配置文件位于堡垒机上的这个位置: $SPARK_CONF_DIR/spark-defaults.conf,用户可以自行查看和理解。spark及依赖环境版本如下: spark 2.1.0, hadoop 2.7.1 , hive 1.2.1, scala 2.11.8, jdk7、jdk8均可需要注意的是,默认值优先级最低,用户如果提交任务时或者代码里明确指定配置,则以用户配...原创 2018-08-02 19:23:16 · 1946 阅读 · 0 评论