Deegue

和果子

深入理解sun.misc.Unsafe原理

前言 Unsafe类在JDK源码中被广泛使用,在Spark使用off-heap memory时也会使用到,该类功能很强大,涉及到类加载机制(深入理解ClassLoader工作机制),其实例一般情况是获取不到的,源码中的设计是采用单例模式,不是系统加载初始化就会抛出SecurityException...

2019-05-06 20:01:08

阅读数 11058

评论数 0

Spark执行计划分析与研究

在学习、使用和研究spark的过程中,逐渐会发现:单纯看官方文档对spark参数调优只能解决一小部分的问题,要想进一步的学习spark,进一步调优甚至在spark源码的基础上二次开发,我觉得收益最高的应该是学习执行计划了。 因此在研究spark源码之前,学习执行计划 可以对整个spark执行过程...

2018-09-18 11:24:30

阅读数 11662

评论数 3

Spark参数调优详解目录

Spark参数调优需要对各个参数充分理解,没有一套可以借鉴的参数,因为每个集群规模都不一样,只有理解了参数的用途,调试出符合自己业务场景集群环境,并且能在扩大集群、业务的情况下,能够跟着修改参数才算是正确的参数调优。 本系列文章仅为个人理解与观点,如果任何地方有疑问与错误,欢迎评论指正! (上...

2018-07-12 10:30:30

阅读数 10931

评论数 0

记一次Spark ThriftServer Bug排查

问题描述 我们在用Spark ThriftServer(以下简称STS)用在查询平台时,遇到了以下报错: ERROR SparkExecuteStatementOperation: Error executing query, currentState RUNNING, org.apache.sp...

2019-07-01 15:22:08

阅读数 29

评论数 0

记一次Spark SQL问题排查的经历

起因 分析师A:哇 你们这个数据查询平台查Spark ,同样的SQL结果每次都不同,这能用? 我:???第一反应是你八成是在查一张,别人在更新数据的表吧。。(同个SQL也会去跑两遍 小声bb) 排查过程 过了一会儿,分析师A:看了半天了没人动数据啊,你这个Spark有问题吧? 一脸蒙逼,开始排查问...

2019-06-19 17:50:33

阅读数 26

评论数 0

使用Relational Cache加速Spark数据分析

本文转自云栖社区,作者:李呈祥(司麟) 文中的Spark为阿里云EMR产品的Spark,博主之前也考虑过类似的问题,受到了一些启发,所以转载分享一下。 背景 Cache被广泛应用于数据处理的各个领域和方向上,在目前,计算速度远远大于IO访问速度依然是计算设备上最突出的矛盾,计算设备上的存储从HDD...

2019-06-03 19:43:58

阅读数 52

评论数 0

LockSupport详解

前言 LockSupport是concurrent包中一个工具类,不支持构造,提供了一堆static方法,比如park(),unpark()等。 LockSupport中的主要成员及其加载时的初始化: 不难发现,他们在初始化的时候都是通过Unsafe去获得他们的内存地址,这里也可以理解为C中的指...

2019-05-18 14:32:19

阅读数 2895

评论数 0

ThreadPoolExecutor详解及线程池优化

前言 ThreadPoolExecutor在concurrent包下,是我们最常用的类之一。无论是做大数据的,还是写业务开发,对其透彻的理解以及如何发挥更好的性能,成为了我们在更好的coding道路上必不可少的基础。 为什么用线程池? 如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频...

2019-05-17 19:33:43

阅读数 5752

评论数 0

java 标签跳转用法解析

前言 在看jdk源码ThreadPoolExecutor中的addWorker方法的时候(ThreadPoolExecutor详解),发现如下代码: 首先这个retry不是java里面的关键字,所以那个retry可以用任何合法的变量名替换,例如hello:等等,下面我们再来看一下这个到底有什么用...

2019-05-17 16:21:53

阅读数 81

评论数 0

CyclicBarrier和CountDownLatch的用法与区别

前言 CyclicBarrier和CountDownLatch这两个工具都是在java.util.concurrent包下,并且平时很多场景都会使用到。 本文将会对两者进行分析,记录他们的用法和区别。 CountDownLatch CountDownLatch是一个非常实用的多线程控制工具类,称之...

2019-05-15 18:02:49

阅读数 1490

评论数 0

ThreadLocal详解

ThreadLocal是什么 ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。 内部结构 从上面的结构图,我们已经窥见Thr...

2019-05-14 19:35:02

阅读数 1477

评论数 0

深入理解ClassLoader工作机制

前言 ClassLoader类加载器可以说是Java中必学内容之一,无论是想要去研究Concurrent包、Unsafe,还是深入学习Spark等分布式计算框架,都必须对此有一定的理解。笔者在写之前也只了解了皮毛,想通过这篇文章,结合一些书籍和博客,加深对ClassLoader的理解,并分享一下。...

2019-05-05 20:30:50

阅读数 5607

评论数 0

初探JVM原理与结构

前言 这篇文章是JVM的扫盲篇,通俗易懂,对不清楚ClassLoader、Garbage Collection的可以有个大致的了解。 HelloWorld 在还是小白阶段的时候,我们都会写一个HelloWorld.java,然后执行javac 获得HelloWorld.class public c...

2019-05-05 16:26:30

阅读数 1664

评论数 0

阿里云分布式调度系统-伏羲

最近在做一个类似的东西,看了一篇讲FuxiSort的paper,就去详细学习了下。 paper链接: 链接: https://pan.baidu.com/s/1H9GdDd7lgcgWkw0tkC95Jw 提取码: gix8 下文作者:陶阳宇,花名举水,阿里云高级技术专家,飞天分布式系统早期核心...

2019-05-04 18:19:38

阅读数 3768

评论数 0

Google Protobuf : protocol buffers

Github https://github.com/protocolbuffers/protobuf 深入 ProtoBuf - 简介 https://www.jianshu.com/p/a24c88c0526a 深入 ProtoBuf - 编码 https://www.jianshu.com/p...

2019-04-25 17:03:05

阅读数 52

评论数 0

Java基础 BlockingQueue阻塞队列汇总

BlockingQueue汇总: 1、概念总览与介绍 https://www.cnblogs.com/duanxz/p/3400003.html 2、LinkedTransferQueue https://www.cnblogs.com/duanxz/p/3398446.html ...

2019-04-08 11:34:33

阅读数 22

评论数 0

成为Java技术专家需要掌握的知识点

好久没有写博客了,前段时间一直忙着投简历、面试,现在也差不多告一段落了。 总结了一下自己的现状就是基础太渣,虽然说下面罗列的Java很多东西平常都用不到,但是如果想要成为与Java/Scala相关岗位的技术专家,就必须对这些基础非常清楚,随便聊到一个点就能谈一个面。 所以就去找了很多Java相...

2019-03-06 11:24:57

阅读数 2842

评论数 0

Spark CBO CostBasedJoinReorder源码解析

1、背景 最近听到阿里大神分享,讲到Spark CBO中的JoinReorder处理inner join优化,用了动态规划+遗传算法,于是处于好奇,看了一下源码,这篇博客作为记录。   2、Code CostBasedJoinReorder入口,只匹配inner join,然后reord...

2019-01-05 11:04:10

阅读数 177

评论数 0

Spark Catalyst 缓存机制

1、背景 Spark SQL 用thriftserver去接,使用的时候,经常会出现找不到hdfs上xxx文件,需要手动refresh table相关的表的情况。 今天偶然看到Spark Catalyst中的相关代码,突然眼前一亮,摸索着看下去,终于得到了真香。 2、代码中的实现步骤 ...

2018-12-21 17:51:15

阅读数 59

评论数 0

Neo4j 从零开始搭建与使用

  背景:做血缘分析,用来存储字段之间的血缘关系。 源码:https://github.com/neo4j/neo4j 1、下载源码并编译 git clone https://github.com/neo4j/neo4j  mvn clean package -DskipTests ...

2018-12-18 19:44:44

阅读数 341

评论数 0

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