自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

数据创造价值

不断的用事实验证理论。

  • 博客(56)
  • 收藏
  • 关注

转载 使用azkaban调度spark任务

Azkaban是一种类似于Oozie的工作流控制引擎,可以用来解决多个Hadoop(或Spark等)离线计算任务之间的依赖关系问题。也可以用其代替cron来对周期性任务进行调度,并且更为直观,可靠,同时提供了美观的可视化管理界面。下文将对azkaban对spark离线任务调度进行简要说明。一. 简介该部分内容可参考官方文档:http://azkaban.github

2016-08-10 10:14:53 2789

转载 部署ganglia3.7

环境centOS6.6gmetad节点关闭iptablegmetad和httpd只需要在一台节点安装,gmond需要在每台节点上安装。一.安装epel源sudo wget http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm sudo rpm -ivh epel

2016-08-10 09:17:24 369

转载 spark&&alluxio

概述Alluxio(在1.0版本之前名为Tachyon)是一个以内存分布式存储系统。它统一了数据访问的方式,为上层计算框架和底层存储系统构建了桥梁。 应用只需要连接Alluxio即可访问存储在底层任意存储系统中的数据。此外,Alluxio的以内存为中心的架构使得数据的访问速度能比现有常规方案快几个数量级。Spark使用Alluxio的好处有如下几点:数据可以长期存储在内存中

2016-08-10 08:56:43 517

转载 Alluxio之定位策略

Alluxio提供定位策略,用于确定应该选择哪个Worker来存储文件数据块。用户可以在CreateFileOptions中设置该策略以用于写文件,也可在OpenFileOptions中设置该策略用于向Alluxio中读文件。Alluxio支持自定义定位策略,内置策略包括:        1、LocalFirstPolicy        首先返回本地主机,如果本地Wo

2016-08-09 14:32:34 304

转载 Alluxio之IO选项:读写类型

一、读类型        1、CACHE_PROMOTE        如果读取的数据在Worker上时,该数据被移动到Worker的最高层。如果该数据不在本地Worker的Alluxio存储中,那么就将一个副本添加到本地Alluxio Worker中,用于每次完整地读取数据快。这是默认的读类型。        2、CACHE        如果该数据不

2016-08-09 14:27:30 448

转载 Alluxio层次化存储简介

一、分层存储种类        1、MEM (内存)        2、SSD (固态硬盘)        3、HDD (硬盘驱动器)        二、分层存储参数                1、alluxio.worker.tieredstore.levels,缺省值1         Alluxio Worker多层存储中的最大

2016-08-09 14:21:54 624

转载 Alluxio简介

一、Alluxio是什么?        Alluxio是一个基于内存的分布式文件系统,它是架构在底层分布式文件系统和上层分布式计算框架之间的一个中间件,主要职责是以文件形式在内存或其它存储设施中提供数据的存取服务。        Alluxio的前身为Tachyon。        二、Alluxio应用场景        Alluxio居于传统大数据

2016-08-09 14:20:05 426

转载 HashSet和HashMap比较

HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,Lis

2016-06-02 14:55:47 370

转载 ThreadLocal的使用

用法一:在关联数据类中创建private static ThreadLocalThreaLocal的JDK文档中说明:ThreadLocal instances are typically private static fields in classes that wish to associate state with a thread。如果我们希望通过某个类将状态(例如用户ID、事务ID)

2016-06-02 14:49:06 317

原创 常用算法的时间复杂度汇总

线性结构查询o(1)已排序二分法o(log2^n)未排序的二分法o(n^2)+o(log2^2)针对无序海量数据的定点查询推荐使用hashtable,dicinition,hashmaphashtable的稳定时间复杂度是o(1)

2016-06-02 14:48:36 1197

转载 一致性hash算法与java实现

一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了。    因此,引入了一致性哈希算法: 

2016-06-02 13:31:48 195

转载 面试题汇总。

1、如何在一个单链表中快速找到中间点。

2016-06-02 11:27:18 199

原创 1、线性表

线性表:由0个或者多个数据元素组成的有限序列。属于1vs1的关系强调:1.首先是序列,元素之间有先后顺序。2.第一个元素无前驱,最后一个无后继。其它元素都有且一个前驱和后继。3.线性表是有限的,事实上,无论计算机发展到多强大,它处理的元素都是有限的。数据类型:指一组性质相同的值的集合以及定义在此集合上的一些操作的总称。例如:很多编程语言的整形,浮点型,字符型 这些就

2016-06-02 11:17:47 273

原创 22.使用MAT对Dump文件进行分析实战

下载mat http://www.eclipse.org/mat/downloads.php设置eclipse运行参数-server -Xms1024m -Xmx1024m -Xmn384m -XX:+UseParallelOldGC -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCDateStamps -XX:+P

2016-06-01 16:47:06 1625

原创 21.JVM中G1收集器解密

可以想CMS一样,GC操作与应用的线程一起并发执行。紧凑的空闲内存区间且没有很长的GC停顿时间。需要可预测的gc暂停耗时,不牺牲太多的吞吐量性能,启动后不需要启动更大的java heap。G1 heap 空间分配:完全重新分配了原有的heap 区域。阶段:初始标记并发标记再次标记清理适用场景:full gc 次数太频繁或者时间太长。对象分配的频率

2016-06-01 15:13:00 468

原创 20.JVM中CMS收集器

CMS垃圾回收的作用XX:+UseConcMarkSweepGC 启动cms的垃圾回收机制CMS-initial-mark  初始标记阶段,此时会短暂的stop the world,标记出可到达的对象。CMS-concurrent-mark  并发标记阶段,主要是基于上一阶段的成功,找出不可到达的对象。CMS-remark  再次标记阶段。stop the world ,避免第二阶

2016-06-01 14:20:38 200

原创 19.JVM中Serial收集器、ParNew收集器、Parallel收集器解析

1.serial收集器单线程的方式,串行即程序停止。分为serial old(采用标记压缩算法,一般用于收集老年带)和serial.因为是单线程没有线程切换带来的资源开销2.parNew收集器多线程,并行。采用复制算法和stop the world 。单线程时用serial,如果是多cpu的机器可以用parNew方式。3.parallel收集器吞吐量优先的收集器,可以设置吞吐量

2016-06-01 14:06:27 565

原创 18.JVM垃圾回收器串行、并行、并发垃圾回收器概述

1.JVM的不同垃圾回收器2.串行,并行,并发垃圾回收器概述串行:jvm GC时存在一个线程并行:jvm gc时有多个线程,用多个cpu或者core同时执行垃圾回收,优点是提高了吞吐量。但是由于线程切换占用了时间,所有并行并不一定比串行好。两者都基于stop the world。并发:不用停止任务,可以在gc时,任务同时运行。由此提高了效率,增加了用户体验。

2016-06-01 13:28:35 484

原创 17.JVM垃圾回收分代收集算法

所谓分代算法其实都是基于3中基本gc算法的,只不过根据实际情况选用不同的算法1.分带GC在新生代的算法新生代是new出来或者gc次数没有达到阙值的对象,是瞬态的。且eden和fromto比例约为8:1。eden的对象到to中,to中的对象进入from中。from本身的进行+1,达到阙值进入old。 2.分带GC在老年代的算法

2016-06-01 11:17:53 318

原创 16.三种基本的GC算法基石

1.GC标记、清除算法由于内存中对象构成一个树,当内存耗尽时,程序停止(如果不停止新new对象时标记出错)。此时程序对对象进行标记和清除。缺点:停止程序运行,降低用户体验。且释放的内存空间不连续。2.GC的复制算法先找出活动对象存储到空白区域,然后把原来的对象空间清空。缺点:虽然活动空间连续,但是耗内存,且对象空间满的情况下,复制只是单纯的耗内存

2016-06-01 11:13:53 276

原创 15.GC时候的引用计数算法和根搜索算法(用于标示GC)

虽然GC有助于程序运行,但GC对程序本身而言是无用的,会消耗资源。1.GC时的计数引用对象一旦被使用或者引用,计数器会进行+1和-1操作,当为0时被标示为垃圾。此种标示方法的弊端在于已经死亡的对象如果存在相互引用,则会一直占用内存空间,不被回收。此时会导致内存泄漏。为了解决这个问题出现了根搜索算法。2.GC的根搜索算法所有的内存存活对象组成一个tree.包括stack中引用的对象,

2016-06-01 10:34:25 748

原创 14.Java对象内存逃逸技术

1.内存逃逸技术分析概念;指创建对象时,对象不存储在heap空间中,由此可以减少gc次数,减少gc压力。2.内存逃逸技术测试对象在方法中创建,并被外部对象引用,此时会发生内存逃逸,在大数据领域鼓励使用这种方式,可以减少oom的发生。

2016-06-01 10:32:24 680

原创 13.Java 8中JVM的MetaSpace

1.从permanent到metaspacejava8中采用metaspace可以避免permanent容易出现oom的问题。同时metaspace可以避免full gc。2.结构特点:1、使用C语言实现的native memory space 使用os的内存空间而不是jvm本身的内存空间;2、native memory space可以根据类加载的信息和情况在gc时

2016-06-01 10:07:27 325

原创 12.JVM的GC日志Full GC每个字段解释

2016-06-01 09:50:00 532

原创 4.spark hash shuffer 解析

第一:Hash shuffle第二:shuffle Pluggable第三:Sorted Shuffle第四:Shuffle 性能优化--------------------------------------------------------------------------------spark适合处理中小规模的数据?怎么理解?spark

2016-06-01 09:28:56 650

原创 3.RDD的创建

第一:RDD实战第二:RDD的transformation和Action-------------------------------------------RDD.scala(reduce(),map())sparkContext.scala(runJob())RDD的操作类型3种:transformation(获得算子),action(执行操作),controlle

2016-06-01 08:46:59 207

原创 2.Spark RDD相关知识介绍

第一:基于工作集合的应用抽象(中间的和曾经的)第二:RDD内幕解密第三:RDD思考-----------------------------------------基于工作集合的应用抽象特点:位置感知,容错,负载均衡基于数据集:从物理存储加载数据,操作数据,写入物理存储。缺点:不适合大量的迭代运算,交互查询,重点是基于数据流的方式,不能复用曾经的结果或者中间计算结果--

2016-06-01 08:40:45 205

原创 1.Spark内核执行流程

2016-06-01 08:29:25 204

原创 4.单例模式

一、什么是单例模式   单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。 其实,GoF对单例模式的定义是:保证一个类、只有一个实例存在,同时提供能对该实例加以访问的全局访问方法。二、为什么要使用单例模式呢?在应用系统开发中,我们常常有以下需求:- 在多个线程之间,比如servlet环境,共

2016-05-31 17:39:33 160

原创 3.抽象工厂模式

一、什么是抽象工厂模式  抽象工厂模式是所有形态的工厂模式中最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,能够创建多个产品族的产品对象。二、产品族和产品等级结构二、模式中包含的角色及其职责1.抽象工厂(Creator)角色 抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必须实现这个接口。

2016-05-31 16:23:05 176

原创 8.JVM的Young Generation大小对GC性能的致命影响力

1.young generation工作机制详解2.young generation 对gc性能的影响。

2016-05-31 15:35:00 529

原创 7.JVM GC时的内存管理工作流程和频繁GC的原因

大部分创建的对象都是在使用后结束,但是有的会存在很久。所以考虑gc的时候会考虑生命周期短,生命周期长,大对象,小对象。生命周期短或者小对象此时可能就需要频繁的gc,把对象从内存释放掉。如果对象比较大,或者生命周期长就不需要gc,因为这种对象一般在old,如果heap过小此时就会被迫对old区域进行gc,从而导致full gc,此种情况下对性能的影响极大。所以一般会尽可能大的设置较大的heap。

2016-05-31 14:28:38 334

原创 6.从OOM推导出JVM GC时候基于的内存结构:Young Generation(Eden、From、To)、Old Generation、Permanent Generation

GC的异常信息如下通过以上异常信息,推导jvm的内存结构。Young Generation:Object 产生和基本活跃区。Eden :当new后,此时进入eden。如果对象特别大会直接进入oldfrom:to: from 和to具有相同的大小。他们作为eden和old的缓冲地带,先放到to中,to满了以后放到from。目的是增加对象在young中的时间,因为在youn

2016-05-31 13:54:39 556

原创 5.JVM三大性能调优参数:-Xms -Xmx -Xss

1.-Xss是对每个线程stack大小的调整。直接影响对方法的调用次数测试结果:测试代码:package com.dt.spark.jvm.basics;public class HelloStackOverFlow {private static int counter;      public void count() {

2016-05-31 11:37:06 4489

原创 4.JVM内存模型

1.stack(线程私有)管理方法执行时的内存模型。stack里面有帧,用于记录方法执行时的变量,参数,动态链接库,返回信息,地址等。递归调用时要非常注意stack over flow的异常。还受当前内存的限制,如果内存不够也会oom异常。2.native method area(线程私有)不是java实现而是通过本地的C/C++实现,此时jvm引擎要通过JNI去做。3.h

2016-05-31 11:20:22 208

原创 3.JVM线程引擎和内存共享区的交互及此背景下的程序计数器

1.线程和内存共享的交互2.程序计数器(Program Counter Register)        为了让线程正常工作,在不同的线程轮流使用core时,线程切换时让每个线程继续执行之前的任务。JVM在线程切换时就是通过读取program counter register的值来决定该线程下一条需要执行的字节码指令,进而进行选择语句,循环,异常处理等。

2016-05-31 11:03:18 188

原创 2.工厂模式

工厂模式是前面简单工厂模式的提升:先提交下代码,一起浏览下,感性的看一下两者的不同:1.1public class Apple implements Fruit{/** 采集*/public void get(){System.out.println("采集苹果");}}1.2public class AppleFactory implement

2016-05-31 09:43:32 144

原创 1.简单工厂模式

一、什么是简单工厂模式  简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。二、模式中包含的角色及其职责1.工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。2.抽象(Product)角色 简单工厂模式所创建

2016-05-30 16:16:28 181

原创 2.详细图解JVM内存三大核心区域及其JVM内存案例剖析

jvm的结构:1.jvm内存的三大核心区域(方法区,java heap 和java stack)代码:package com.dt.spark.jvm.basics;/** * 从JVM调用的角度分析Java程序对内存空间的使用: * 当JVM进程启动的时候,会从类加载路径中找到包含main方法的入口欧蕾HelloJVM; * 找到HelloJV

2016-05-30 15:00:05 255

原创 1JVM内存四大类型问题:Heap、Stack、Contant、DirectMemory

第一 heap 堆溢出:heap中只能保存对象,对象存储过多会报错 java heap space测试时修改JVM的默认参数: 代码:import java.util.ArrayList;import java.util.List;class Person{ }public class HelloHeapOutOfMemory {publ

2016-05-30 14:27:35 1012

空空如也

空空如也

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

TA关注的人

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