4 stone-zhu

尚未进行身份认证

我的博客:http://zhuleiblog.com 我的github:https://github.com/Zzz468005600

等级
TA的排名 2w+

SparkSQL 性能调优参数

1,spark.hadoopRDD.ignoreEmptySplits默认是false,如果是true,则会忽略那些空的splits,减小task的数量。2,spark.hadoop.mapreduce.input.fileinputformat.split.minsize是用于聚合input的小文件,用于控制每个mapTask的输入文件,防止小文件过多时候,产生太多的task。3,spa...

2019-11-10 19:09:24

Linux 指令之安装软件

在Linux上安装软件应该去官网下载比较好,比如去JDK的官网下载JDK,会给出这样的下载列表。对于Linux系统来说有三个安装包可以下载,格式分别为rpm和deb和tar.gz。tar.gz是安装文件的压缩包,rpm和deb分别是CentOS体系的Linux系统安装包和Ubuntu体系的安装包。1,安装软件下载各自平台的安装包之后,Cen...

2019-07-28 16:25:39

Linux 指令之用户和密码

1,修改密码的指令为:passwd#passwdChangingpasswordforuserroot.Newpassword:按照这个命令可以输入新密码。2,创建用户的指令为:useradduseraddstone执行这个指令,一个用户就会被创建了。接下来可以自己调用passwdstone来设置密码,然后再登陆。切换用户可以使用sustone命令。...

2019-07-28 16:23:57

hexo 博客迁移

今天把mac上的hexo博客迁移到win电脑上。1,安装git;2,安装Node.js;3,打开gitbash客户端,输入npminstallhexo-cli-g,开始安装hexo;4,在win电脑上创建你要存放博客项目的文件夹,比如我是放在D盘的blog文件夹下的,就在D盘根目录下创建了blog文件夹;5,在blog文件夹下打开...

2019-07-26 16:36:59

JVM 堆内存模型与 GC 策略

Java中堆内存是JVM管理内存中最大的一块内存,同时又是GC管理的重要区域。Java堆内存主要分成两个区域:1,年轻代。年轻代内部又分成了两个区,一个是Eden区,一个是Survivor区。Survivor区又划分成两块,一块是from区,一块是to区;2,老年代。具体一点可以看图:一、年轻代IBM公司的专业研究表明,有将近98%的对象是朝生夕...

2019-07-12 14:49:38

Spark 内存管理详解(下):内存管理

本文转自:Spark内存管理详解(下)——内存管理本文最初由IBMdeveloperWorks中国网站发表,其链接为ApacheSpark内存管理详解在这里,正文内容分为上下两篇来阐述,这是下篇,上一篇请移步博客列表的上一篇文章。Spark内存管理详解(上)——内存分配1.堆内和堆外内存2.内存空间分配Spark内存管理详解(下)——内存管理3.存储内存管理...

2019-07-10 14:20:54

Spark 内存管理详解(上):内存分配

本文转自:Spark内存管理详解(上)——内存分配Spark作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中占据着非常重要的角色。理解Spark内存管理的基本原理,有助于更好地开发Spark应用程序和进行性能调优。本文旨在梳理出Spark内存管理的脉络,抛砖引玉,引出读者对这个话题的深入探讨。本文中阐述的原理基于Spark2.1版本,阅读本文需要读者有一定的Spark和Java基...

2019-07-10 14:20:03

Spark 源码分析(九): Task 启动

前面已经分析到了DAGScheduler对stage划分,并对Task的最佳位置进行计算之后,通过调用taskScheduler的submitTasks方法,将每个stage的taskSet进行提交。在taskScheduler的submitTasks方法中会为每个taskSet创建一个TaskSetManager,用于管理taskSet。然后向调度池...

2019-07-08 17:01:07

Spark 源码分析(八):DAGScheduler 源码分析2(task 最佳位置计算)

前面一篇文章已经讲了DAGScheduler中的stage划分算法。实际上就是每当执行到RDD的action算子时会去调用DAGScheduler的handleJobSubmitted方法,这个方法内部会根据当前的RDD创建一个ResultStage,然后根据这个ResultStage对象创建一个Job。再将这个stage对象传入submitStage...

2019-07-03 23:40:07

Spark 源码分析(七): DAGScheduler 源码分析1(stage 划分算法)

前面几篇文章已经说清楚了从spark任务提交到driver启动,然后执行main方法,初始化SparkContext对象。在初始化SparkContext对象的过程中创建了两个重要组件:一个是TaskScheduler(实际上是他的实现类TaskSchedulerImpl对象),这个对象内部会持有一个SchedulerBackend对象,SchedulerBack...

2019-07-03 16:36:22

Spark 源码分析(六): Executor 向 driver 进行注册

前一篇文章介绍了Executor进程的启动,最后启动的是CoarseGrainedExecutorBackend,执行启动命令后会执行它的main方法,启动CoarseGrainedExecutorBackend进程。CoarseGrainedExecutorBackend进程是Executor的守护进程,用户Executor的创建和维护。首先我们先看下main方法...

2019-07-02 18:24:32

Spark 源码分析(五): Executor 启动

上一篇已经将Application注册到了master上了,在master收到注册消息后会进行一系列操作,最后调用schedule方法。这个schedule方法会去做两件事,一件事是给等待调度的driver分配资源,另一件事是给等待调度的application去分配资源启动Executor。给application分配资源启动Executor的代码最终会调...

2019-07-02 17:39:21

Spark 源码分析(四): Application 的注册

在前面一篇文章中分析到了SparkContext中的TaskScheduler创建及启动。在StandaloneSchedulerBackendstart代码里除了创建了一个DriverEndpoint用于standalone模式下用来和Executor通信之外还会创建一个AppClient。这个AppClient会向Master注册Applicatio...

2019-07-02 16:02:57

Spark 源码分析(三): SparkContext 初始化之 TaskScheduler 创建与启动

前面已经分析到了driver进程成功在某台worker上启动了,下面就开始执行我们写的那些代码了。以一个wordcount程序为例,代码如下: valconf=newSparkConf().setAppName("WordCount").setMaster("local")valsc=newSparkContext(conf)...

2019-07-02 12:02:01

Spark 源码分析(二): Driver 注册及启动

上一篇文章已经已经执行到Client向masterEndpoint发送了RequestSubmitDriver信息,下面就看看master怎么注册driver信息,并且怎么让worker去启动driver的。一,org.apache.spark.deploy.master.Master这个Master就是前面Client发送的对象,是一个ThreadSaf...

2019-07-01 23:16:15

Spark 源码分析(一):Spark Submit 任务提交

研究Spark内部是怎么运行的,怎么将Spark的任务从开始运行到结束的,先从spark-submit这个shell脚本提交用户程序开始。我们一般提交Spark任务时,都会写一个如下的脚本,里面指定spark-submit脚本的位置,配置好一些参数,然后运行:./bin/spark-submit\--class<main-class>\--...

2019-07-01 17:17:09

Spark 中的 RPC

Spark是一个通用的分布式计算系统,既然是分布式的,必然存在很多节点之间的通信,那么Spark不同组件之间就会通过RPC(RemoteProcedureCall)进行点对点通信。Spark的RPC主要在两个模块中:1,spark-core中,主要承载了更好的封装server和client的作用,以及和scala语言的融合,它依赖spark-network-...

2019-07-01 11:49:43

Spark 的一些名词术语

摘抄官网关于Spark中常用的一些名词术语:TermMeaningApplicationUserprogrambuiltonSpark.Consistsofadriverprogramandexecutorsonthecluster.ApplicationjarAjarcontainingtheuser’sSparkap...

2019-06-28 14:47:19

java 为什么要重写 hashCode 和 equals 方法

转自:https://blog.csdn.net/zknxx/article/details/53862572一、如果不被重写(原生)的hashCode和equals是什么样的?不被重写(原生)的hashCode值是根据内存地址换算出来的一个值。不被重写(原生)的equals方法是严格判断一个对象是否相等的方法(object1==object2)。二、为什么需要重写...

2019-06-27 16:44:11

Spark 共享变量

翻译Spark共享变量部分的官方文档(Spark2.4.3)。通常,当传递给Spark操作(如map或reduce)的函数在远程集群节点上执行时,在函数中使用的所有外部变量都是单独拷贝的变量副本。这些变量被复制到每台机器上,对远程机器上的变量更新不会传播回驱动程序。支持通用的、任务间的读写共享变量是很低效的。不过,Spark确实为两种常见的使用模式提供了两种有限的共享变量类...

2019-06-27 14:41:54

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。