自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Spark RPC接口和Scala Actor简介

Spark1.6之前中使用的分布式多线程框架,是Akka。Akka也实现了类似Scala Actor的模型。spark1.4标准化这套接口为了能够实现基于其他技术的rpc方案,并且最终也是这么做的,在spark1.6版本中rpc的默认实现由基于akka的actor转变为基于netty,解决了实际项目中可能存在的akka版本问题。Scala的Actor类似于Java中的多线程编程。但是不同的是,Sc...

2018-06-12 21:00:30 921

原创 Task原理和源码

一、Executor原理1、Executor接收到LaunchTask消息后,会在TaskRunner中运行一些准备操作,比如反序列化Task、通过网络拉取需要的文件或jar包等;2、运行task的run方法或者说是runTask方法,这个方法内部最核心的就是调用RDD的iterator()方法,在这里,就会针对RDD的partition执行我们自定义的函数(算子)3、接下来分两种,Shuffle...

2018-06-11 22:55:30 801

原创 Executor原理

Master在接收到Application的注册请求后,会去资源调度,为这个Application,根据配置,在worker上启动相应的Executor。那么Executor怎么启动,在剖析worker的时候已经了解过,worker用了一个executorRunner把executor这个进程启动起来,这个时候Executor会立刻向Driver反向注册。worker的executorRunner...

2018-06-11 20:49:29 591

原创 TaskScheduler分配算法和源码

TaskScheduler是一个trait,这里以standalone模式下的TaskSchedulerImpl来分析。上面文章最后说,DAGScheduler把stage中的task封装成TaskSet,调用TaskSchedulerImpl的submitTasks方法。我们就从这个方法着手来分析TaskSchedulerImpl,这个方法可以理解为提交任务的入口。override def su...

2018-06-10 23:02:39 591

原创 DAGScheduler学习笔记

一、stage划分算法先介绍stage的划分算法,会从出发action操作的那个rdd开始往前倒推,首先会为最后一个rdd创建一个stage,然后往前倒推,如果发现某个rdd是宽依赖,那么就会将宽依赖的那个rdd创建一个新的stage,那个rdd就是新的stage的最后一个rdd,然后依次类推,根据宽依赖和窄依赖,进行stage划分,直至所有rdd遍历完。二、stage划分算法源码分析(非常重要)...

2018-06-10 22:13:57 211

原创 以wordCount程序分析job触发流程原理和源码

先粘上wordCount代码:val lines = sc.textFile()val words = lines.flatMap(line => line.split(" "))val pairs = words.map(word => (word, 1))val counts = pairs.reduceByKey(_ + _)counts.foreach(count => ...

2018-06-10 20:41:07 416

原创 Worker启动Driver和Executor原理

2018-06-10 14:54:20 410

原创 资源调度机制源码分析(schedule方法,两种调度算法)

sparkContext初始化后会注册Application,然后会调用schedule方法,如何为Application在worker上启动Executor,Executor启动后,DAGScheduler和TaskScheduler才能分配task给Executor来进行计算。所以schedule是把整个流程窜起来的重点。private def schedule(): Unit = { /...

2018-06-10 14:46:44 1422

原创 Master注册机制笔记

Driver Application Worker三者需要向Master注册。Worker在启动后,就会主动向Master注册Master收到后,将状态为DEAD的Worker过滤掉,对于状态UnKnown的Worker,清理掉旧信息,替换为新的Worker信息把Worker加入内存缓存中(HashMap)用持久化引擎,将worker信息持久化(文件系统或zookeeper)调用schedule(...

2018-06-10 13:57:57 239

原创 SparkContext源码阅读笔记

SparkContext初始化主要就干了三件事:创建TaskScheduler、DAGSCheduler、SparkUI,看看源码中是怎样实现的。一、TaskScheduler结合上编blog,TaskScheduler初始化主要涉及三个组件或对象,TaskSchedulerImpl、StandaloneScheduleBackend、SchedulePool。1、从主构造函数中可以看到,调用了c...

2018-06-10 13:25:19 200

原创 SparkContext初始化原理剖析

SparkContext初始化主要就干了三件事:创建TaskScheduler、DAGSCheduler、SparkUI一、TaskScheduler的初始化机制1、首先创建TaskScheduler,调createTaskScheduler()2、这里会做三件事情:1、创建TaskSchedulerImpl(这个就是我们平时说的TaskScheduler)2、创建SparkDeploySched...

2018-06-10 10:20:29 510

原创 yarn-cluster和yarn-client模式剖析

之前以standalone模式剖析过spark程序的执行流程,这里来剖析下其他两种模式(yarn-cluster和yarn-client)的区别。一般yarn-client用于测试环境调试程序;yarn-cluster用于生产环境。看完下面的剖析就明白为什么。一、yarn-cluster与standalone模式不同,yarn-cluster是基于yarn集群,yarn集群上有ResourceMa...

2018-06-09 22:17:12 13469 3

原创 宽依赖与窄依赖

1、宽依赖英文全名:ShuffleDependency。本质如其名,就是Shuffle。每一个父RDD的partition中的数据,都可能会传输一部分,到下一个RDD的partition中,此时会出现,父RDD和子RDD的partition之间,具有交错复杂的关系。那么这两个RDD之间就是宽依赖,他们之间发生的操作是Shuffle。以wordCount程序为例子,就是reduceBykey(_+_...

2018-06-09 21:18:09 1188

原创 spark内核架构剖析--Application执行过程

spark内核架构剖析--Application执行过程

2018-06-09 13:50:21 617

转载 RDD是什么

作者:JohneyQ链接:https://www.zhihu.com/question/37437257/answer/139975355来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。这个问题曾经也困扰我很久,我现在以我的理解来阐述RDD.如果你熟悉数据库,那么RDD从表现形式上讲最类似于数据库的视图(View)去除这个RDD在物理结构上的特色,单从逻辑上的表现来说...

2018-05-27 10:05:46 1463 1

原创 Hive 基本使用

创建表CREAT TABLE table_name [(col_nem date_type [COMMENT col_comment])]creat table hive_wordcount(context string)在mysql中:select* fromTBLSselect*fromCOLUMNS_V2加载数据到hive表LOAD DATA LOCA

2018-02-04 17:44:59 234

原创 Hive环境搭建

(1)Hive下载 :http://archive.cloudera.com/cdh5/cdh/5/ wget http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0.tar.gz(2)解压 tar -zxvf hive-1.1.0-cdh5.7.0.tar.gz -C ~/app/(3)配置 系统环境变量  e

2018-02-04 17:13:45 173

原创 YARN环境搭建

1)mapred-site.xml    mapreduce.framework.name    yarn2)yarn-site.xml    yarn.nodemanager.aux-services    mapreduce_shuffle/etc/hadoop/slaves 配置的是从节点3) 启动YARN相关的进程sbin

2018-01-31 22:15:19 600

转载 YARN基础

YARN产生背景 Hadoop1.x中的MapReduce构成图如下:在Hadoop1.x中MapReduce是Master/Slave结构,在集群中的表现形式为:1个JobTracker带多个TaskTracker;JobTracker:负责资源管理和作业调度;TaskTracker:定期向JobTracker汇报本节点的健康状况、资源使用情况以及

2018-01-31 21:56:03 505

原创 YARN架构

1 RM(ResourceManager)+N NM(NodeManager)ResourceManager的职责:一个集群active状态的RM只有一个,负责整个集群的资源管理和调度(1)处理客户端的请求(启动/杀死)(2)启动/监控ApplicationMaster(一个作业对应一个AM)(3)监控NM(4)系统的资源分配和调度NodeManager的职责:整个集群中有

2018-01-31 21:55:09 227

原创 Hadoop伪分布式安装步骤

Hadoop伪分布式安装步骤1)jdk安装解压:tar -zxvf jdk-7u79-linux-x64.tar.gz -C ~/app添加到系统环境变量: ~/.bash_profileexport JAVA_HOME=/home/hadoop/app/jdk1.7.0_79export PATH=$JAVA_HOME/bin:$PATH使得环境变量生效: source

2018-01-27 16:06:32 377

原创 分布式文件系统HDFS

一、什么是HDFS Hadoop实现了一个分布式文件系统,源自于Google的GFS论文二、HDFS的设计目标 非常巨大的分布式文件系统运行在普通廉价的硬件上易扩展、为用户提供性能不错的文件存储服务三、HDFS的架构1、Master(NameNode) 带N个Slaves(DataNode)NameNode管理文件系统的spaces和客户端访问DataNode管理数

2018-01-27 14:57:47 209

原创 环境搭建以及一些命令的记录

1、在CRT 上传文件只需在shell终端仿真器中输入命令“rz”,即可从弹出的对话框中选择本地磁盘上的文件,利用Zmodem上传到服务器当前路径下。下载文件只需在shell终端仿真器中输入命令“sz 文件名”,即可利用Zmodem将文件下载到本地某目录下。2、解压:tar -zxvf jdk-7u79-linux-x64.tar.gz -C ~/app3、启动hdfs,启动yarn,启动

2018-01-24 23:58:58 193

原创 【流水】启动hdfs的报错ssh: connect to host master port 22: Connection timed out

报错如下:[hadoop@hadoop000 sbin]$ ./start-dfs.sh18/01/24 22:46:38 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicableSta

2018-01-24 23:07:45 6102 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除