![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
iteye_6622
这个作者很懒,什么都没留下…
展开
-
spark总体概况
1. spark vs hadoopPS:Databricks团队特别说明,为了和Hadoop对比,这次用于排序的Spark集群没有使用它们的内存缓存机制,他们也是用硬盘存储的中间结果! http://tieba.yunxunmi.com/mtieba-hadoop-kz-58b9e430a78747f7fb1ea9f9e6374597.html 但是我们要明白,spark的目标是与h...2015-05-27 14:55:37 · 102 阅读 · 0 评论 -
Spark API编程动手实战-05-spark文件操作和debug
这次 我们以指定executor-memory参数的方式来启动spark-shell:启动成功了 在命令行中我们指定了spark-shell运行暂用的每个机器上的executor的内存为1g大小,启动成功后参看web页面: 从hdfs上读取文件: 在命令行中返回的MappedRDD,使用toDebugString,可以查看其lineage的关系:...2015-02-02 20:10:30 · 72 阅读 · 0 评论 -
Spark API编程动手实战-04-以在Spark 1.2版本实现对union、groupByKey、join、reduce、lookup等操作实践...
下面看下union的使用:使用collect操作查看一下执行结果:再看下groupByKey的使用:执行结果: join操作就是一个笛卡尔积操作的过程,如下示例: 对rdd3和rdd4执行join操作: 使用collect查看执行结果:可以看出join操作完全就是一个笛卡尔积的操作;reduce本身在RDD操作中属于...2015-01-30 16:36:12 · 84 阅读 · 0 评论 -
Spark API编程动手实战-03-以在Spark 1.2版本实现对Job输出结果进行排序
从前一篇文章中的wordcount的输出结果可以看出来结果是未经排序的,如何对spark的输出结果进行排序呢?先对reduceByKey的结果进行key,value位置置换(数字,字符),然后再进行数字排序,再将key,value位置置换后就是排序后的结果了,最终将结果存储到HDFS中 可以发现我们成功对输出结果进行排序!...2015-01-29 13:21:34 · 68 阅读 · 0 评论 -
Spark API编程动手实战-01-以本地模式进行Spark API实战map、filter和collect
首先以spark的本地模式测试spark API,以local的方式运行spark-shell:先从parallelize入手吧:map操作后结果: 下面看下 filter操作:filter执行结果:我们用最正宗的scala函数式编程的风格:执行结果:从结果 可以看出来,与之前那种分步奏方式结果是一样的但采用这种方式,即是复...2015-01-27 15:16:02 · 92 阅读 · 0 评论 -
spark内核揭秘-14-Spark性能优化的10大问题及其解决方案
问题1:reduce task数目不合适解决方案:需要根据实际情况调整默认配置,调整方式是修改参数spark.default.parallelism。通常的,reduce数目设置为core数目的2-3倍。数量太大,造成很多小任务,增加启动任务的开销;数目太小,任务运行缓慢。所以要合理修改reduce的task数目即spark.default.parallelism问题2:shuffl...2015-01-26 11:29:45 · 78 阅读 · 0 评论 -
spark内核揭秘-13-Worker中Executor启动过程源码分析
进入Worker类源码: 可以看出Worker本身是Akka中的一个Actor。 进入Worker类的LaunchExecutor:从源代码可以看出Worker节点上要分配CPU和Memory给新的Executor,首先需要创建一个ExecutorRunner:ExecutorRunner是用于维护executor进程的: 1、进入Executo...2015-01-23 16:34:05 · 143 阅读 · 0 评论 -
spark内核揭秘-12-AppClient注册Masters
注册Master有两种,一种是registerWithMaster方法,一种是tryRegisterAllMasters方法,前者是单Master的情况,后者是多Master,一般情况下是满足HA机制,我们看一下registerWithMaster方法:此时会调用tryRegisterAllMasters方法:此时通过Akka通过消息机制发送消息给Master来注册程序,Regi...2015-01-23 10:10:54 · 121 阅读 · 0 评论 -
spark内核揭秘-11-Driver中AppClient源码分析
首先从SparkContext中TaskScheduler实例的创建开始:进入taskScheduler.start()方法内部:进入其实现者TaskSchedulerImpl内部: 可以发现在start具体实现的内部首先是有个backend.start方法:其最终具体的实现类为:从代码中可以看出,我们把CoarseGrainedExecu...2015-01-21 18:45:39 · 82 阅读 · 0 评论 -
Spark API编程动手实战-06-对搜狗日志文件深入实战操作
本节中所用到的内容是来自搜狗实验室,网址为:http://www.sogou.com/labs/dl/q.html我们使用的是迷你版本的tar.gz格式的文件,其大小为87K,下载后如下所示:上传到服务器后,解压并查看: 查看Sogou文件内容:该文件的格式如下所示:访问时间 \t 用户ID \t 查询词 \t 该URL在返回结果中的排名 \ t用户点击...2015-02-04 11:05:21 · 108 阅读 · 0 评论 -
Spark API编程动手实战-07-join操作深入实战
我们在hdfs的/data/join创建两个文件:上传第一个文件名称为1.txt内容第一列是日期,第二列uid(普通用户id) 上传第二个文件名称为2.txt内容第一列是日期,第二列uid(普通用户id)执行上传到hdfs:hdfs命令行查询:web控制台管理查询:首先在命令行中设置日期格式:然后声明两个case class:R...2015-02-05 14:39:36 · 91 阅读 · 0 评论 -
基于spark1.3.1的spark-sql实战-02
Hive Tables将HIVE_HOME/conf/hive-site.xml 文件copy到SPARK_HOME/conf/下 When not configured by the hive-site.xml, the context automatically creates metastore_db and warehouse in the current directory....2015-05-20 14:45:51 · 77 阅读 · 0 评论 -
基于spark1.3.1的spark-sql实战-01
sqlContext总的一个过程如下图所示:SQL语句经过SqlParse解析成UnresolvedLogicalPlan;使用analyzer结合数据数据字典(catalog)进行绑定,生成resolvedLogicalPlan;使用optimizer对resolvedLogicalPlan进行优化,生成optimizedLogicalPlan;使用Sp...2015-05-19 13:51:21 · 94 阅读 · 0 评论 -
Spark 性能相关参数配置详解-任务调度篇
随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化。 由于篇幅较长,所以在这里分篇组织,如果要看最新完整的网页版内容,可以戳这里:http://spark-config.readthedocs.org/,主要是便于更新内容 schedu...2015-03-05 18:31:16 · 88 阅读 · 0 评论 -
整合Kafka到Spark Streaming——代码示例和挑战
作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管。本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中。 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2...2015-03-03 15:01:17 · 58 阅读 · 0 评论 -
spark SQL编程动手实战-01
首先创建SparkContext上下文:接着引入隐身转换,用于把RDD转成SchemaRDD:接下来定义一个case class 来用于描述和存储SQL表中的每一行数据:接下来要加载数据,这里的测试数据是user.txt文件:我们创建好use.txt增加内容并上传到hdfs中:web控制台查询:hdfs命令查询: 加载数据:验证数据...2015-03-02 18:28:37 · 83 阅读 · 0 评论 -
Spark API编程动手实战-08-基于IDEA使用Spark API开发Spark程序-02
接下来进行打包,使用Project Structure的Artifacts:使用From modules with dependencies:选择Main Class: 点击“OK”:把名称改为SparkDemoJar:因为每台机器上都安装了Scala和Spark,所以可以把Scala和Spark相关的jar文件都删除掉:接下来进行Bui...2015-02-12 13:04:38 · 70 阅读 · 0 评论 -
Spark API编程动手实战-08-基于IDEA使用Spark API开发Spark程序-01
创建一个Scala IDEA工程:点击“Next”:点击“Finish”完成工程的创建:修改项目的属性: 首先修改Modules选项: 在src下创建两个文件夹,并把其属性改为source:再修改Libraries:因为要开发Spark程序,所以需要把Spark的开发需要的jar包导进来: 导入包完成后,在工程的scal...2015-02-10 13:10:41 · 65 阅读 · 0 评论 -
spark1.2.0版本搭建伪分布式环境
、下载scala2.11.5版本,下载地址为:http://www.scala-lang.org/download/2.11.5.html2、安装和配置scala:第一步:上传scala安装包 并解压第二步 配置SCALA_HOME环境变量到bash_profile第三步 source 使配置环境变量生效:第四步 验证scala:3、下载spark 1...2015-02-09 11:18:09 · 60 阅读 · 0 评论 -
spark内核揭秘-10-RDD源码分析
RDD的核心方法:首先看一下getPartitions方法的源码:getPartitions返回的是一系列partitions的集合,即一个Partition类型的数组我们就想进入HadoopRDD实现:1、getJobConf():用来获取job Configuration,获取配置方式有clone和非clone方式,但是clone方式 是not t...2015-01-21 15:35:21 · 87 阅读 · 0 评论 -
spark内核揭秘-09-RDD的count操作 触发Job全生命周期-02
接着上一篇文章继续分析代码:3.1.3.3.3.1、进入TaskSet 方法:3.1.3.3.3.2、进入taskScheduler.submitTasks(new TaskSet(tasks.toArray, stage.id, stage.newAttemptId(), stage.jobId, properties)) 方法:从源代码中可以看出DAGSchedule...2015-01-20 18:02:41 · 112 阅读 · 0 评论 -
spark内核揭秘-09-RDD的count操作 触发Job全生命周期-01
RDD源码的count方法:从上面代码可以看出来,count方法触发SparkContext的runJob方法的调用:进入 runJob(rdd, func, 0 until rdd.partitions.size, false)方法:进一步跟踪runJob(rdd, (context: TaskContext, iter: Iterator[T]) => fun...2015-01-20 16:13:21 · 89 阅读 · 0 评论 -
spark-1.2.0 集群环境搭建
1、下载scala2.11.4版本 下载地址为:http://www.scala-lang.org/download/2.11.4.html ,也可以使用wget http://downloads.typesafe.com/scala/2.11.4/scala-2.11.4.tgz?_ga=1.248348352.61371242.1418807768 2、解压和安装: 解压 :[spark...2015-01-06 17:19:34 · 68 阅读 · 0 评论 -
hive on spark 编译
前置条件说明Hive on Spark是Hive跑在Spark上,用的是Spark执行引擎,而不是MapReduce,和Hive on Tez的道理一样。 从Hive 1.1版本开始,Hive on Spark已经成为Hive代码的一部分了,并且在spark分支上面,可以看这里https://github.com/apache/hive/tree/spark,并会定期的移到master分支...2015-09-30 17:27:07 · 578 阅读 · 0 评论 -
sparksql与hive整合
hive配置编辑 $HIVE_HOME/conf/hive-site.xml,增加如下内容:<property> <name>hive.metastore.uris</name> <value>thrift://master:9083</value> <description>Thrift uri for...2015-09-22 15:19:34 · 330 阅读 · 0 评论 -
tachyon与hdfs,以及spark整合
Tachyon 0.7.1伪分布式集群安装与测试: http://blog.csdn.net/stark_summer/article/details/48321605 从官方文档得知,Spark 1.4.x和Tachyon 0.6.4版本兼容,而最新版的Tachyon 0.7.1和Spark 1.5.x兼容,目前所用的Spark为1.4.1,tachyon为 0.7.1tachyon 与 ...2015-09-22 15:16:44 · 248 阅读 · 0 评论 -
Apache Spark 1.5.0正式发布
Spark 1.5.0是1.x线上的第6个发行版。这个版本共处理了来自230+contributors和80+机构的1400+个patches。Spark 1.5的许多改变都是围绕在提升Spark的性能、可用性以及操作稳定性。Spark 1.5.0焦点在Tungsten项目,它主要是通过对低层次的组建进行优化从而提升Spark的性能。Spark 1.5版本为Streaming增加了operati...2015-09-09 18:07:09 · 337 阅读 · 0 评论 -
在 Databricks 可获得 Spark 1.5 预览版
我们兴奋地宣布,从今天开始,Apache Spark1.5.0的预览数据砖是可用的。我们的用户现在可以选择提供集群与Spark 1.5或先前的火花版本准备好几个点击。正式,Spark 1.5预计将在数周内公布,和社区所做的QA测试的版本。鉴于火花的快节奏发展,我们觉得这是很重要的,使我们的用户尽快开发和利用新特性。与传统的本地软件部署,它可以需要几个月,甚至几年,从供应商收到软件更新。数据...2015-08-25 14:02:01 · 96 阅读 · 0 评论 -
spark implementation hadoop setup,cleanup
写道 def main(args: Array[String]) { val sc = new SparkContext("local", "xxx") val inputData = sc.textFile("hdfs://master:8020/data/spark/user-history-data") val lines = inputData.map(line =>...2015-08-11 16:38:39 · 106 阅读 · 0 评论 -
Spark的日志配置
在测试spark计算时,将作业提交到yarn(模式–master yarn-cluster)上,想查看print到控制台这是imposible的,因为作业是提交到yarn的集群上,so 去yarn集群上看日志是很麻烦的,但有特别想看下print的信息,方便调试或者别的目的在Spark的conf目录下,把log4j.properties.template修改为log4j.properties...2015-08-03 17:20:46 · 270 阅读 · 0 评论 -
本地开发spark代码上传spark集群服务并运行(基于spark官网文档)
打开IDEA 在src下的main下的scala下右击创建一个scala类 名字为SimpleApp ,内容如下 import org.apache.spark.SparkContextimport org.apache.spark.SparkContext._import org.apache.spark.SparkConfobject SimpleApp { def...2015-01-08 18:50:41 · 295 阅读 · 0 评论 -
hadoop&spark mapreduce对比 & 框架设计和理解
Hadoop MapReduce:MapReduce在每次执行的时候都要从磁盘读数据,计算完毕后都要把数据放到磁盘spark map reduce: RDD is everything for dev:Basic Concepts:Graph RDD:Spark Runtime:schedule:Depen...2015-01-16 15:17:45 · 78 阅读 · 0 评论 -
spark内核揭秘-08-spark的Web监控页面
在SparkContext中可以看到初始化UI代码: // Initialize the Spark UIprivate[spark] val ui: Option[SparkUI] = if (conf.getBoolean("spark.ui.enabled", true)) { Some(SparkUI.createLiveUI(this, conf, list...2015-01-20 13:15:07 · 153 阅读 · 0 评论 -
spark内核揭秘-06-TaskSceduler启动源码解析初体验
TaskScheduler实例对象启动源代码如下所示:从上面代码可以看出来,taskScheduler的启动是在SparkContext找到TaskSchedulerImpl实现类中的start方法实现:1、从上代码看到,先启动CoarseGrainedSchedulerBackend,从上面CoarseGrainedSchedulerBackend类的代码,可以...2015-01-19 18:21:01 · 91 阅读 · 0 评论 -
spark内核揭秘-05-SparkContext核心源码解析初体验
SparkContext在获得了一系列的初始化信息后开始创建并启动TaskScheduler实例:进入createTaskScheduler方法:我们看一下其Standalone的方式:在上述代码中首先实例化一个TaskSchedulerImpl:然后构建出了masterUrls:接着创建出关键的backend:进入SparkDeploySchedul...2015-01-19 15:09:39 · 94 阅读 · 0 评论 -
spark内核揭秘-04-spark任务调度系统个人理解
spark的任务调度系统如下所示: 从上图中可以看出来由RDD Objects产生DAG,然后进入了DAGScheduler阶段,DAGScheduler是面向state的高层次的调度器,DAGScheduler把DAG拆分成很多的tasks,每组的tasks都是一个state,每当遇到shuffle就会产生新的state,可以看出上图一共有三个state;DAGScheduler需...2015-01-18 21:26:19 · 70 阅读 · 0 评论 -
spark内核揭秘-03-spark核心组件
spark核心组件如下所示: 在SparkContext初始化的时候,会初始化一系列内容:查看内存使用情况: 创建和启动scheduler: 集群核心组件中的Block tracker是用于block和partition对应关系的管理。集群核心组件中的shuffle tracker是用于记录shuffle操作的过程细节。从集群中也可...2015-01-18 09:48:46 · 67 阅读 · 0 评论 -
spark内核揭秘-02-spark集群概览
Spark集群预览:官方文档对spark集群的初步描述如下,这是一个典型的主从结构:官方文档对spark集群中的一些关键点给出详细的指导:其Worker的定义如下所示:需要注意的是Spark Driver所在的集群需要和Spark集群最好位于同一个网络环境中,因为Driver中的SparkContext实例需发送任务给不同Worker Node的Executor并接受...2015-01-18 09:17:39 · 46 阅读 · 0 评论 -
spark内核揭秘-01-spark内核核心术语解析
Application:Application是创建了SparkContext实例对象的spark用户,包含了Driver程序:Spark-shell是一个应用程序,因为spark-shell在启动的时候创建了一个SparkContext对象,其名称为sc:Job:和Spark的action相对应,每一个action例如count、saveAsTextFile等都会对应一个j...2015-01-18 09:09:49 · 88 阅读 · 0 评论 -
spark架构设计&编程模型-01
RDD操作例子:RDD的依赖和运行时深入RDD: 另一种Partitioner是RangePartitioner:以NewHadoopRDD为例,其诶不的信息如下所示:以WholeTextFileRDD为例,其内部的信息如下:...2015-01-16 17:28:21 · 120 阅读 · 0 评论