executor

java并发编程之Executor线程池

落爺英雄遲暮 提交于 2020-02-10 10:55:01
java并发编程之Executor线程池 1 线程&多线程&进程 a、线程: 线程是进程的一个实体,是 CPU 调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。 b、多线程: 多线程指在单个程序中可以同时运行多个不同的线程执行不同的任务。多线程编程的目的,其实就是“最大限度地利用 cpu 资源”,当某一线程的处理不需要占用 cpu 而只和 io 等资源打交道时,让需要占用 Cpu 的其他线程有其他机会获得 cpu 资源。从根本上说,这就是多线程编程的最终目的。 c、线程与进程的区别 进程是操作系统分配资源的最小单元,线程是操作系统调度的最小单元。 一个程序至少有一个进程,一个进程至少有一个线程。 2 线程的实现方式 继承Thread类,重写run方法 public class ThreadDemo extends Thread { private static final Logger logger = LoggerFactory . getLogger ( ThreadDemo . class ) ; public static void main ( String [ ] args ) { ThreadDemo

Java实现多线程的4种方式

巧了我就是萌 提交于 2020-02-09 18:21:02
Java多线程实现的方式有4种: 1. 继承Thread类,重写run方法。 2. 实现Runnable接口,实现run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target。 3. 通过线程池创建线程,即Executor。 4. 实现Callable线程接口(有返回值)。 - 前面3种可以归结为一类:无返回值,原因很简单,通过重写run方法,run方式的返回值是void,所以没有办法返回结果。 - ”实现Callable线程接口“这个方式可以归结成一类:有返回值,实现Callable接口,就要实现call方法,这个方法的返回值可由泛型指定。 1 继承Thread类,重写run方法 1、Thread类位于java.lang包中,Thread的每个实例对象就是一个线程,它的子类的实例也是一个线程。 2、我们通过Thread类或它的派生类才能创建线程的实例并启动一个新的线程。 class MyThread extends Thread { @Override public void run() { System.out.println("子线程run()方法执行----"); } } 2 实现Runnable接口,实现run方法 1、通过继承Thread类来创建线程,有一个缺点,如果我们的类已经从一个类继承,则无法再继承Thread类。 2

Spark集群术语

♀尐吖头ヾ 提交于 2020-02-09 07:31:08
Spark集群术语解析 1. Application Application是用户在Spark上构建(编写)的程序,包含driver program 和executors(分布在集群中多个节点上运行的Executor代码)。 2. SparkContext Spark的上下文对象,是程序的起点,通往集群的入口(与cluster进行连接),通过其可以创建RDD(获取数据),在其中配置的参数拥有最高优先级。在Spark中由SparkContext负责和ClusterManager通行,进行资源的申请,任务的分配和监控等。 3. Driver program 包含应用程序的main函数,并且运行时会创建SparkContext。当Executor部分运行完后,Driver负责将SparkContext关闭。 4. Cluster Manager 集群资源管理的外部服务,在Spark上现有Standalone(Spark自带的管理器),YARN(hadoop 2.x的管理器),Mesos等三种集群资源管理器,Standalone能满足绝大部分对集群资源管理的需求,基本上只有在集群中运行多套计算框架(例如同时运行MapReduce和Spark)的时候才建议使用YARN和Mesos。 5. Deploy mode 表明driver程序运行的位置。在”cluster”模式时

Spark集群术语

我是研究僧i 提交于 2020-02-08 03:43:42
Spark集群术语解析 1. Application Application是用户在Spark上构建(编写)的程序,包含driver program 和executors(分布在集群中多个节点上运行的Executor代码)。 2. SparkContext Spark的上下文对象,是程序的起点,通往集群的入口(与cluster进行连接),通过其可以创建RDD(获取数据),在其中配置的参数拥有最高优先级。在Spark中由SparkContext负责和ClusterManager通行,进行资源的申请,任务的分配和监控等。 3. Driver program 包含应用程序的main函数,并且运行时会创建SparkContext。当Executor部分运行完后,Driver负责将SparkContext关闭。 4. Cluster Manager 集群资源管理的外部服务,在Spark上现有Standalone(Spark自带的管理器),YARN(hadoop 2.x的管理器),Mesos等三种集群资源管理器,Standalone能满足绝大部分对集群资源管理的需求,基本上只有在集群中运行多套计算框架(例如同时运行MapReduce和Spark)的时候才建议使用YARN和Mesos。 5. Deploy mode 表明driver程序运行的位置。在”cluster”模式时

Spark基本架构及原理

那年仲夏 提交于 2020-02-08 02:54:09
Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势: Spark提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求 官方资料介绍Spark可以将Hadoop集群中的应用在内存中的运行速度提升100倍,甚至能够将应用在磁盘上的运行速度提升10倍 目标: 架构及生态 spark 与 hadoop 运行流程及特点 常用术语 standalone模式 yarn集群 RDD运行流程 架构及生态: 通常当需要处理的数据量超过了单机尺度(比如我们的计算机有4GB的内存,而我们需要处理100GB以上的数据)这时我们可以选择spark集群进行计算,有时我们可能需要处理的数据量并不大,但是计算很复杂,需要大量的时间,这时我们也可以选择利用spark集群强大的计算资源,并行化地计算,其架构示意图如下: Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的 Spark SQL:提供通过Apache

Spark集群术语

久未见 提交于 2020-02-08 02:16:08
Spark集群术语解析 1. Application Application是用户在Spark上构建(编写)的程序,包含driver program 和executors(分布在集群中多个节点上运行的Executor代码)。 2. SparkContext Spark的上下文对象,是程序的起点,通往集群的入口(与cluster进行连接),通过其可以创建RDD(获取数据),在其中配置的参数拥有最高优先级。在Spark中由SparkContext负责和ClusterManager通行,进行资源的申请,任务的分配和监控等。 3. Driver program 包含应用程序的main函数,并且运行时会创建SparkContext。当Executor部分运行完后,Driver负责将SparkContext关闭。 4. Cluster Manager 集群资源管理的外部服务,在Spark上现有Standalone(Spark自带的管理器),YARN(hadoop 2.x的管理器),Mesos等三种集群资源管理器,Standalone能满足绝大部分对集群资源管理的需求,基本上只有在集群中运行多套计算框架(例如同时运行MapReduce和Spark)的时候才建议使用YARN和Mesos。 5. Deploy mode 表明driver程序运行的位置。在”cluster”模式时

Spark 基本架构及原理

泪湿孤枕 提交于 2020-02-08 01:54:19
转载自: http://blog.csdn.net/swing2008/article/details/60869183 转自:http://www.cnblogs.com/tgzhu/p/5818374.html Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势: Spark提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求 官方资料介绍Spark可以将Hadoop集群中的应用在内存中的运行速度提升100倍,甚至能够将应用在磁盘上的运行速度提升10倍 目标: 架构及生态 spark 与 hadoop 运行流程及特点 常用术语 standalone模式 yarn集群 RDD运行流程 架构及生态: 通常当需要处理的数据量超过了单机尺度(比如我们的计算机有4GB的内存,而我们需要处理100GB以上的数据)这时我们可以选择spark集群进行计算,有时我们可能需要处理的数据量并不大,但是计算很复杂,需要大量的时间,这时我们也可以选择利用spark集群强大的计算资源,并行化地计算

深度预警:Spark运行原理

梦想与她 提交于 2020-02-06 18:10:48
本文主要分以下章节: 一、Spark专业术语定义 二、 Spark的任务提交机制 一、Spark专业术语定义 1、Application:Spark应用程序 指的是用户编写的Spark应用程序,包含了Driver功能代码和分布在集群中多个节点上运行的Executor代码。 Spark应用程序,由一个或多个作业JOB组成,如下图所示: image 2、Driver:驱动程序 Spark中的Driver即运行上述Application的Main()函数并且创建SparkContext,其中创建SparkContext的目的是为了准备Spark应用程序的运行环境。在Spark中由SparkContext负责和ClusterManager通信,进行资源的申请、任务的分配和监控等;当Executor部分运行完毕后,Driver负责将SparkContext关闭。通常SparkContext代表Driver,如下图所示: image 3、Cluster Manager:资源管理器 指的是在集群上获取资源的外部服务,常用的有:Standalone,Spark原生的资源管理器,由Master负责资源的分配;Haddop Yarn,由Yarn中的ResearchManager负责资源的分配;Messos,由Messos中的Messos Master负责资源管理,如下图所示: image 4

Mybatis原理

天涯浪子 提交于 2020-02-06 03:40:42
1. SqlSessionFactory 2.SqlSession sqlSession实现类有:DefaultSqlSession , SqlSessionManager SqlSessionFactory 实现类:DefaultSqlSessionFactory和 SqlSessionManager 根据DefaultSqlSession源码可以知道 似乎一切的一切,都是从配置对象Configuration中取出材料来 委托执行器去处理 查看部分 SqlSessionFactory源码可知道: 创建一个DefaultSqlSession并返回 贯穿Mybatis执行流程的 Executor 接口 SqlSessionManager分析: SqlSessionManager同时实现了SqlSession和SqlSessionFactory 使用的代理是 JDK动态代理 Mybatis Mapper的代理对象的创建 来源: CSDN 作者: 刘赵强 链接: https://blog.csdn.net/liuqiang211/article/details/104183677

SparkShuffle 及性能调优

霸气de小男生 提交于 2020-02-05 02:15:16
shuffle调优 调优概述   大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是,影响一个Spark作业性能的因素,主要还是代码开发、资源参数以及数据倾斜,shuffle调优只能在整个Spark的性能调优中占到一小部分而已。因此大家务必把握住调优的基本原则,千万不要舍本逐末。下面我们就给大家详细讲解shuffle的原理,以及相关参数的说明,同时给出各个参数的调优建议。 ShuffleManager发展概述   在Spark的源码中,负责shuffle过程的执行、计算和处理的组件主要就是ShuffleManager,也即shuffle管理器。而随着Spark的版本的发展,ShuffleManager也在不断迭代,变得越来越先进。 在Spark 1.2以前,默认的shuffle计算引擎是HashShuffleManager。该ShuffleManager而HashShuffleManager有着一个非常严重的弊端,就是会产生大量的中间磁盘文件,进而由大量的磁盘IO操作影响了性能。 因此在Spark 1.2以后的版本中,默认的ShuffleManager改成了SortShuffleManager