自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SparkTroubleshooting 故障排除

一 控制reduce端缓冲区大小,避免OOMbuffer默认大小为48Mreduce端的task会一边拉去一边计算,不一定每次都会拉满48M虽然增大reduce可以减少拉取次数,提高shuffle性能,但是map端数据量很大,写出的速度很快,reduce端在拉取的时候可能达到自己的缓冲的最大极限值(48M),再加上reduce执行聚合函数可能创建大量的对象,可能会导致内存溢出。处理方式:此时应考虑减少reduce端拉取数据缓冲区的大小。二 JVM GC导致shuffle文件拉取失败.

2020-06-18 21:58:36 174

原创 Spark优化解析

Spark性能优化 调优基本原则 基本概念和原则 首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起:每一台host上面可以并行N个worker,每一个worker下面可以并行M个executor,task们会被分配到executor上面去执行。Stage指的是一组并行运行的task,stage内部是不能出现shuffle的,因为shuffle的就像篱笆一样阻止了并行task的运行,遇到shuffle就意味着到了stage的边界。CPU的core数量,.

2021-03-13 18:47:23 687

原创 HBase架构和读写流程

HBase的角色一.HMaster功能:1.监控ReginServer2.处理ReginServer故障转移3.处理元数据的变更4.处理region的分配或移除5.在空闲时间进行数据的复杂均衡6.通过zookeeper发布自己的位置给客户端二.RegionServer功能:1.负责存储HBase的实际数据2.处理分配给他的Region3.刷新缓存到HDFS4.维护HLog5.执行压缩6.负责处理Region分片组件:Write-A.

2021-03-13 18:46:36 238 1

原创 Spark调优总结

1.诊断内存的消耗在Spark应用程序中,内存都消耗在哪了? 1.每个Java对象都有一个包含该对象元数据的对象头,其大小是16个Byte。由于在写代码时候,可能会出现这种情况:对象头比对象本身占有的字节数更多,比如对象只有一个int的域。一般这样设计是不合理的,造成对象的“浪费”,在实际开发中应避免这种情况。 2.Java的String对象,会比它内部的原始数据要多出40个字节。因为它内部使用char数组来保存内部的字符序列的,并且还得保存诸如数组长度之类的信息。而且String使用的

2021-01-15 14:46:49 278

原创 hive调优总结

关于hive调优的帖子很多,并且全都大同小异,转载一个罗列的相对比较全的博文------------------------------------------------------------------------------------------------------------------------------------------------------hive调优是比较大的专题,需要结合实际的业务,数据的类型,分布,质量状况等来实际的考虑如何进行系统性的优化,hive底层是ma

2020-12-25 15:15:37 258

转载 (转)RC ORC Parquet 格式比较和性能测试

(转)RC ORC Parquet 格式比较和性能测试原博:http://blog.csdn.net/colorant/为什么要比较这三者为什么要比较,起因是为了提高Hadoop集群的存储和计算效率,尤其是离线Hive作业的效率,为什么比较的是这三者,是因为三者是目前Hive离线作业中正在大规模使用或可能大规模使用的三种主流的相对成熟的文件格式对于ORC性能的评测,Hortonworks发过一篇被广泛传播和引用的博客 :ORCFILE IN HDP 2: BETTER COMPRESSIO.

2020-10-19 15:22:12 694 1

原创 Kafka相关原理、API和面试题总结

1.kafka工作流程图2.kafka文件存储机制由于生产者生产的消息会不断追加到log文件末尾,为防止log文件过大导致数据定位效率低下,Kafka采取了分片和索引机制,将每个partition分为多个segment。每个segment对应两个文件——“.in dex”文件和“.log”文件。这些文件位于一个文件夹下,该文件夹的命名规则为:topic名称+分区序号。例如,first这个topic有三个分区,则其对应的文件夹为first-0,first-1,first-2。 000

2020-08-31 00:16:45 300

原创 从源码的角度分析Spark的Yarn模式的任务提交部署流程

由于工作中生产环境大多使用的是Yarn-cluster模式,所以我将以Yarn-client模式作为主线对流程进行讲解。目录1.submit2.client3.ApplicationMaster(ExecutorLauncher)现在我们提交一个spark任务 spark-submit \ --master yarn-cluster \ --driver-cores 2 \ --driver-memory 1g \ --exec...

2020-08-15 01:41:33 408

原创 MapReduce-YARN-HDFS任务提交全流程图解(wordcount为例)

这次的博客只有一张图,内容如题(下次会把spark的yarn-client和yarn-cluster的全流程图附上)

2020-07-12 23:32:02 352

原创 用单向环形链表解决约瑟夫问题(java数据结构)

一 约瑟夫问题描述:设编号1,2,...n的n个人,围坐一圈,约定编号为k(1<=k<=n)的人开始从1报数,数到m的人出列,他的下一位再从1报数,数到m的人又出列,以此类推,直到所有的人都出列,由此产生一个出队列的编号序列。例如 n=5,有五个人k = 1 从第一个人开始报数m = 2 数两下由此条件得到出队列的顺序:2->4->1->5->3二 单向环形链表1:创建一个单项环形链表:创建一个节点,让first指向该节点,并成环形。.

2020-07-02 21:42:34 200

原创 ElasticSearch(三)Java API(代码实例)

首先用idea建立一个SMM项目实体类中对象信息public class Book { private String id; private String book_name; private String auth_name; private String publisher; private Date publish_time; private int pages; private String type_name; priv

2020-06-21 21:14:49 167

原创 ElasticSearch(二)基本概念、DSL(超详细!)

一 elasticsearch的基本概念 cluster 整个elasticsearch 默认就是集群状态,整个集群是一份完整、互备的数据。 node 集群中的一个节点,一般只一个进程就是一个node shard 分片,即使是一个节点中的数据也会通过hash算法,分成多个片存放,默认是5片。(7.0默认改为1片) index 相当于rdbms的data

2020-06-21 21:02:01 2840

原创 ElasticSearch(一)概述+安装(超详细!)

本此博客内容来源于之前公司要求使用ES时,在b站学习尚硅谷推出的ES视频课程,收获很大,把其中的文档类内容重新整理了一下。ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。一 简介及安装ElasticSearch的使用场景为用户提供按关键字查询的全文搜索功能。 实现企业海量数据的处理分析的解决..

2020-06-21 20:29:46 276

原创 jvm主要知识点小结之垃圾回收及面试题

什么是垃圾?在运行程序中没有任何指针指向的对象一 垃圾回收算法1.引用计数算法(在java中不使用,了解即可)。对每个对象保存一整个引用计数器属性,用于记录对象被引用的情况。优点:1.实现简单,垃圾回收对象便于辨识2.判定效率高,无回收延迟。缺点1.单独字段存储计算器,增加了存储空间开销2.每次赋予值都要重新更新计数器,伴随加、减法操作,增加了时间开销。*3.无法处理循环引用的情况。(最严重的问题,直接导致被弃用)2.可达性分析算法(或根搜索算法、追踪性...

2020-06-21 19:20:09 238

原创 jvm主要知识点小结之 对象、直接内存、执行引擎和字符串

一 对象创建对象的步骤:1.判断对象对应的类是否加载、链接、初始化(类加载过程)。2.为对象分配内存(内存工整:指针碰撞;内存不工整:虚拟机维护空间列表,并分配内存)。3.处理并发安全问题。4.初始化分配到的空间(为属性设置默认值)5.设置对象的头(对象头存储了对象的所属类,即类的元数据信息,对象的HashCode和对象GC信息,锁信息等,具体设置方式取决于JVM的具体实现)。6.执行init方法进行初始化(显式初始化)二 直接内存(元空间 MetaSpace)J..

2020-06-20 22:58:44 152

原创 jvm主要知识点小结之 方法区及大场面试题

一 方法区与其他内存结构关系直接上图二 参数设置方法区的大小JDK7:-XX:PermSize= :永久代初始分配大小,默认20.75M-XX:MaxPerSize= :永久代最大值:32位默认64M,64位默认82MJDK8:-XX:MetaSpaceSize=:元空间初始分配大小,默认21M-XX:MaxMetaSpaceSize=:默认-1,即没有限制(使用的是本地内存)三 方法区的存储(面试)存储了:类型信息、运行时常量池、静态变量、JIT代码..

2020-06-20 21:34:48 154

原创 jvm主要知识点之 堆

堆:内存管理的核心区域,在物理上可以不连续,在逻辑上是连续的一 堆内存划分Java7及以前:Young Generation Space:年轻代(新生代,新生区) Young/New 划分为 Eden区和Survivor区 Tenure Generation Space:老年代(老年代,养老区)Old/Tenure Permanent Space:永久代 Permjava8及以后:Young Generation Space:年轻代(新生代,新生区)Young/New 划分为 Ede.

2020-06-20 17:06:56 180

原创 jvm主要知识点小结之 栈

一.PC寄存器CPU在执行程序的时候,要不断切换线程,PC寄存用以保证线程来回切换的时候,知道程序执行到哪了。(每个线程一份)每次函数调用,都为函数开辟一块空间,称为栈帧。二 虚拟机栈一个线程对应一个虚拟机栈作用:主管Java程序运行,保存方法的局部变量,部分结果,并参与方法的调用和返回优点:快;操作入栈、压栈,不存在垃圾回收问题。异常:固定值大小:StackOverflowError;动态扩展:OutOfMemoryError;设置栈大小的参数:-Xss256k.

2020-06-20 00:19:34 103

原创 jvm主要知识点小结之类加载器子系统

最近看了宋红康老师的JVM课程,对JVM的基础知识进行总结一.类加载子系统1.类加载子系统负责从文件系统或者网络中加载Class文件2.ClassLoader只负责加载,是否可运行由Execution Engine(执行引擎)决定3.加载的类信息存放于一块称为方法区的内存空间,还存放了与形式常量池信息,还可能包括字符串字面量和数字常量每个阶段具体过程如下:二.类加载过程2.1 加载阶段1.通过一个类的全限定名,获取定义此类的二进制字节流2.将此字节流所代表的.

2020-06-19 17:04:12 146

原创 解决Spark数据倾斜的几种方式总结(面试)

spark中的数据倾斜问题主要指shuffle过程中出现的数据倾斜问题,是由于不同的key对应的数据量不同导致的不同task所处理的数据量不同的问题。例如,reduce点一共要处理100万条数据,第一个和第二个task分别被分配到了1万条数据,计算5分钟内完成,第三个task分配到了98万数据,此时第三个task可能需要10个小时完成,这使得整个Spark作业需要10个小时才能运行完成,这就是数据倾斜所带来的后果。注意,要区分开数据倾斜与数据量过量这两种情况,数据倾斜是指少数task被分配了绝大多数

2020-06-19 15:52:03 529

原创 java8新特性之方法引用与构造器引用+Stream

方法引用与构造器引用* 若Lambda体中的内容有方法已经实现了,则可以使用"方法引用"* 是Lambda另一种表现形式* 三种语法格式:* 对象::实例方法名* 类::静态方法名* 类::实例方法名** 前提,接口中的抽象方法参数列表和返回值类型必须和方法引用的参数列表返回值类型保持一致* 若Lambda参数列表中的第一个参数是实例方法的调用者,而第二个参数是实例方法的参数时可以使用ClassName::method*/@Testpubli...

2020-06-18 22:35:22 387

原创 java8新特性之lambda表达式小练习+核心函数式接口+源码

1.调用Collection.sort() 方法,通过定制排序比较两个TMsAj(先比较评分,评分相同按当事人个数比较),使用Lambda作为参数传递2.①声明函数式接口,接口中生命抽象方法,public String getValue(String str);②声明类TestLambda,类中编写方法使用接口作为参数,将一个字符串转换成大写,并作为方法的返回值③在将一个字符串的第二个和第四个索引位置进行截取子串3.①声明一个带两个泛型的函数式接口,泛型类型为<T,R&...

2020-06-18 22:29:45 446

原创 java8新特性之lambda表达式具体使用+源码

四 Lambda基本语法 基本语法详解 1.箭头左侧:参数列表,右侧:所需要执行的功能,即Lambda体。2. Lambda需要有接口的支持(函数式接口)3.语法格式一:无参无返回值()->System.out.println("hello lambda!")public class LambdaStandard { @Test public void test1(){ Runnable r = new Runnable()..

2020-06-18 22:20:55 185

原创 java8新特性之lambda表达式应用场景+源码

公司内部分享整理的分享文档,课程思路源于b站视频李贺飞老师,(不包含java8日期等内容)感觉掌握的不错,就将文档整理成博客。一 Java8新特性简介1.速度更快2.代码更少3.强大的Stream API4.便于并行5.最大化减少空指针异常 Optional二 初识Lamda为什么使用Lambda表达式Lambda是一个匿名函数,我们可以把lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码,...

2020-06-18 22:16:29 280

原创 spring框架xml解析原理小例

以前在学校的时候学弟问过我一个毕业论文的课题,是关于用Java设计一个自动解析xml文件的项目,当时菜鸟不明白,觉得很难,现在所有长进,就写一个demo复习一下。现在写一个有关dept和emp信息的xml,applicationContext.xml:<?xml version="1.0" encoding="UTF-8"?><beans> <bean ...

2020-06-18 22:00:33 183

原创 java设计模式原理之工厂模式

Java设计模式是上大学的时候学的一门课,当时听说这门课程十分重要,当时不以为然,直到工作了几年之后,发现java设计模式无处不在。为了能加强自己的能力,也方便小伙伴们更明白的查询设计模式,所以我想不定期的总结一下24种设计模式(因为工作也很忙啦),有写的不对的地方欢迎指正哈~~~~好啦,先从简单的开始吧,首先今天我现在总结一下工厂模式一 、简单工厂模式简单工厂就是一个类中一个或多个创...

2020-06-18 21:59:38 180

空空如也

空空如也

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

TA关注的人

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