自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

皮皮的雅客

不积跬步无以至千里,不积小流无以成江海

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

原创 Spark Core(2)——RDD编程模型

文章目录RDD编程模型Spark的计算抽象RDD相关概念间的关系RDD编程模型 在Spark中,RDD被表示为对象,通过对象上的方法调用来对RDD进行转换。经过一系列的transformations定义RDD之后,就可以调用actions触发RDD的计算,action可以是向应用程序返回结果(count, collect等),或者是向存储系统保存数据(saveAsTextFile等)。在Sp...

2018-12-22 20:17:14 498

原创 Spark core(1)——RDD概述

文章目录RDD概述1. [RDD是什么](https://spark.apache.org/docs/latest/rdd-programming-guide.html)2. 为什么会产生RDDRDD的细节1. RDD的属性2. RDD的弹性RDD的特点1. RDD可在逻辑上进行分区2. RDD中的数据是只读的3. RDD之间具备依赖性4. 多次使用的RDD可以被缓存5. RDD支持Checkp...

2018-12-22 20:15:54 370

原创 Hadoop和Spark简单概述

文章目录Hadoop和Spark概述一. 简单说说Hadoop1. Hadoop的产生背景2. Hadoop核心技术二. 简单说说Spark1. Spark的官方定义2. Spark的核心技术3. Spark的内置项目4. Spark的生态体系5. Spark的特点6. Spark的用户和用途三. Hadoop和Spark的关系1. Spark的优势2. Spark对Hadoop的改进3. 明晰...

2018-12-22 20:11:47 8035 2

原创 【基础】Union-Find案例

数据结构和算法是程序员的基本功,拿健身者的话来说,这才是硬核。本系列文章主要是对该阶段的算法学习做一点记录,学习教材是广受程序员赞誉的Algorithms Fourth Edition(算法第四版)。本次学习中我将结合本书提供的两个优质资源:①配套视频:https://www.coursera.org/learn/algorithms-part1 ②配套资料:https://algs4.cs....

2018-11-20 19:43:04 409

原创 备忘录模式——Memento

文章目录案例展示——Memento怎么用?深入分析——Memento是什么?Memento的定义Memento的几种扩展形式1. clone方式的备忘录2. 多状态的备忘录模式3. 多备份的备忘录4. 更加安全的备忘录Memento的使用场景Memento的注意事项参考案例展示——Memento怎么用? 在电影中,月光宝盒是一种可以穿越时空的宝物,持有月关宝盒的人可以去到任意的时间,也可以迅...

2018-11-18 19:53:38 290

原创 Java并发包下的阻塞队列

本文简要介绍一下什么是阻塞队列,Java并发包给我们提供的阻塞队列有哪些,以及怎么去简单使用文章目录阻塞队列 BlockingQueue1. 简单概念2. API介绍BlockingQueue的实现类——七大阻塞队列1. ArrayBlockingQueue2. LinkedBlockingQueue3. LinkedBlockingDeque4. PriorityBlockingQueu...

2018-11-17 18:03:23 332

原创 【二叉树】基本概念和遍历

二叉树是一种非常重要的数据结构,其在查找、排序等领域有着非常重要的应用。本文简单介绍一些关于二叉树的基本概念,并给出几种二叉树的基本遍历方法。全文代码为Java语言实现。文章目录二叉树的基本概念1. 二叉树的定义2. 二叉树的性质二叉树的构造与遍历1. 二叉树的构造2. 二叉树的遍历二叉树的基本概念1. 二叉树的定义定义: 二叉树是n(n >= 0)个节点所构成的集合,n=0为...

2018-11-16 20:48:22 333

原创 门面模式——Facade

文章目录案例展示——Facade怎么用?深入分析——Facade是什么?Facade的定义Facade类不参与子系统的业务逻辑Facade的优点Facade的缺点Facade的使用场景参考案例展示——Facade怎么用? 我们来模拟一下写信寄信的场景:首先要在纸上写上内容、然后在信封上写好收件人和地址、其次封好信封、最后将信件寄出去。在信息技术不发达的年代,上面的所有操作都需要个人自己去完成...

2018-11-13 13:54:54 300

原创 观察者模式——Observer

文章目录案例展示——Observer怎么用?深入分析——Observer是什么?Observer的定义Observer的扩展Observer的优点Observer的缺点Observer的应用场景在项目中使用Observer参考案例展示——Observer怎么用? 观察者模式是一种非常通用的模式,以至于JDK都整合了这个设计模式,将其开放成编程接口供程序员使用:java.util.Observ...

2018-11-13 13:54:16 296

原创 死锁简介

本文将简要说明一下几点:什么是死锁?死锁是怎么产生的?如何解决死锁问题?文章目录死锁概述一. 什么是死锁二. 什么是资源1. 可重用性资源和消耗性资源2. 可抢占性资源和不可抢占性资源三. 死锁怎样产生1. 死锁产生的3种情况2. 产生死锁的4个必要条件处理死锁1. 预防死锁2. 避免死锁3. 死锁检测与解除死锁概述一. 什么是死锁 在并发编程中,死锁问题经常会出现,从...

2018-11-10 22:03:34 284

原创 Java并发包下的锁(4)——Condition接口

Condition 接口提供了类似Object的监视器方法,与Lock配合可以实现 等待/通知 模式文章目录Condition的接口Condition的实现1. 等待队列2. 等待3. 通知参考Condition的接口在说Condition的接口之前,先对比一下与Object监视器的异同:对比项Object的监视器(Monitor)Condition前置条件获...

2018-11-08 17:04:59 192

原创 Java并发包下的锁(3)——重入锁和读写锁

重入锁 ReentrantLock 和读写锁 ReentrantReadWriteLock 是两个使用很广泛的同步组件,本文将详细介绍这两种锁特性、用法以及个别方法的源码分析文章目录重入锁——ReentrantLock1. ReentrantLock的特性2. 重进入的实现3. 公平锁与非公平锁4. 如何选择 synchronized 和 ReentrantLock读写锁——Reentra...

2018-11-08 17:04:21 235

原创 Java并发包下的锁(2)——队列同步器

本文主要介绍队列同步器AbstractQueuedSynchronizer(AQS),简称同步器,它是用来构建锁或者其他同步组件的基础框架,它使用一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作。文章目录同步器简介1. 什么是同步器?2. 同步器的API展示3. 自定义同步组件同步器的实现1. 同步队列2. 独占式同步状态获取与释放3. 独占式超时获取同步...

2018-11-06 17:26:40 548

原创 Java并发包下的锁(1)——Lock的体系结构

在JDK1.5之前,在协调共享对象的访问时可使用的机制只有synchronized和volatile,这就是我们所熟知的内置锁;在JDK1.5中,著名并发编程大师Doug Lea使用Java编写了一个并发编程框架(java.util.concurrent.* => JUC),提供了更多并发编程的高级手段。例如可以通过显示加锁以保证多线程编程的可靠性,这就是大名鼎鼎的 显示锁。本系列文章将...

2018-11-06 17:25:53 1273

原创 8节点(hadoop+yarn+hbase+storm+kafka+spark+zookeeper)高可用集群详细配置

配置 hadoop+yarn+hbase+storm+kafka+spark+zookeeper 高可用集群,同时安装相关组建:JDK,MySQL,Hive,Flume文章目录环境介绍节点介绍集群介绍软件版本介绍前期准备相关配置新建用户 centos添加sudo权限更改用户名主机名与IP映射显示当前文件的绝对路径ssh免密登录关闭防火墙两个批处理脚本批分发指令脚本(xcall.sh)批同步...

2018-11-03 13:58:29 3004 3

原创 策略模式——Strategy

案例展示——Strategy怎么用? 了解一点历史的人都知道商鞅变法,正是由于商鞅变法,奠定了秦国强大的根基,使秦国从一个最弱小的战国迅速成为一个超强战国,奋六世之余烈,终于在秦始皇手上一统天下。可以说,没有商鞅变法,就没有强大的秦国,或许也可以断言,天下将不会由秦朝统一。那么商鞅变法为什么会有这么大的规律呢,现在我们从软件的设计的角度来看看商鞅变法的威力,下面是类图设计:分析上面的类图:...

2018-10-29 21:05:19 262

原创 装饰模式——Decorator

文章目录案例展示——Decorator怎么用?深入分析——Decorator是什么?Decorator的定义Decorator的优点Decorator的缺点Decorator的应用场景参考案例展示——Decorator怎么用? 现在有这样一种场景:关于二手车我们都不会陌生,或多或少我们都会有接触。那你有没有想过,如何才能把一辆二手车卖出好的价钱呢?是直接和买主摊牌二手车的所有性能参数,还是会...

2018-10-29 18:11:58 250

原创 线程基础知识(2)

线程的优先级简介 现代操作系统基本采用分时的形式调度运行线程,操作系统会分出一个个的时间片,线程会分配到若干时间片,当线程的时间片用完之后就会发生线程调度,并等待下次分配。线程分配到的时间片的多少决定了线程使用处理器资源的多少,线程优先级就是决定线程需要分配多少处理器资源的线程属性。 在Java中,通过一个整型变量priority来控制优先级,优先级的范围为 1~10,默认的优先级是5:...

2018-10-19 18:05:33 157

原创 Java内存模型(2)——happens-before

happens-before 原则 (先行发生原则)是JMM中最核心的概念,该原则阐述了操作之间的内存可见性。happens-before的诞生——完善的JMM Java语言是最早尝试提供内存模型的语言,这是简化多线程编程、保证程序可移植性的一个飞跃。早起类似C、C++等语言,并不存在内存模型的概念,其行为依赖于处理器本身的内存一致性模型,但不同的处理器差异很大,所以一段C++程序在处理...

2018-10-14 18:43:45 128

原创 责任链模式——ChainOfResponsibility

案例展示——ChainOfResponsibility怎么用? 考虑这样一个场景:现有一家工厂(大型综合一体化工厂),从原料生产到成品出产都由这家工厂独立完成。为了便于管理与提高效率,只能明确,工厂领导层决定将工厂一分为三:原料厂负责原料的生产和购买,零件制造厂负责零部件的制造,装配厂负责装配出厂。同时为了便于监管,督促各大工厂之间保质保量的完成任务,领导层委派很多监察者去各大工厂监察,每个监...

2018-10-10 11:22:20 319

原创 Java内存模型(1)——JMM

在学习Java并发编程中,了解Java内存模型对于我们去理解Java多线程编程是非常有帮助的,本文将对JMM进行一个大体介绍,让我们对JMM有一个大体的轮廓。硬件的内存模型 为了提高效率,充分利用计算机的能力,多任务处理已经成为现代计算机的必备功能。与软件级的并发类似,硬件级的并发也会出现并发访问问题。例如现在的计算机一般是多核计算的,而共享内存区域却只有一块,多处理器与内存之间的数据共...

2018-10-09 21:21:36 213

原创 Storm整合Hbase

将Storm流计算的结果存储到Hbase上。以 WordCount 为例准备工作1. 启动集群启动ZooKeeper集群$> zkServer.sh start启动hadoop集群(Hbase集群启动前应该保证Hadoop集群启动,并保证namenode为激活状态)$> start-dfs.sh启动hbase集群start-hbase.sh启...

2018-10-08 16:27:17 1075 1

原创 Storm自定义分组

以 WordCount 为例自定义策略/** * 自定义分组 */public class MyGrouping implements CustomStreamGrouping { //接受目标任务的id集合 private List<Integer> targetTasks ; public void prepare(WorkerTopol...

2018-10-08 15:19:14 174

原创 Storm整合kafka

kafka 作为源头 Spout,Storm进行流计算处理(以WordCount为例)导入依赖<dependency> <groupId>org.apache.storm</groupId> <artifactId>storm-core</artifactId>

2018-10-08 15:18:14 2119

原创 Storm实现单词统计

源头 Spoutpublic class WordCountSpout implements IRichSpout { private TopologyContext context ; private SpoutOutputCollector collector ; private List<String> states ; private R...

2018-10-08 15:17:18 423

原创 Storm确保消息被消费

以WordCount为例源头 Spoutpublic class WordCountSpout implements IRichSpout { private TopologyContext context; private SpoutOutputCollector collector; private List<String> states; ...

2018-10-08 15:16:27 259

原创 Storm分组策略

以 WordCount 为例代码示例如下://源头Spoutpublic class WordCountSpout implements IRichSpout { private TopologyContext context ; private SpoutOutputCollector collector ; private List<String&g...

2018-10-08 15:15:24 588

原创 Storm概念解析

Storm 是什么Storm 是一个分布式的,可靠的,容错的流式计算框架Storm 可以实时可靠的处理流数据,在实时分析/性能监测等需要高时效性的领域广泛采用Storm把集群的状态存在Zookeeper或者本地磁盘,所以后台进程都是无状态的(不需要保存自己的状态,都在zookeeper上),可以在不影响系统健康运行的同时失败或重启Storm可应用于–数据流处理、持续计算(...

2018-10-08 15:14:34 462

原创 Storm的安装与配置

说在前面工作环境:VMware® Workstation 12 Pro 12.5.6 build-5528349linux版本:CentOS-7-x86_64-Minimal-1611.isoJDK版本:jdk-8u65-linux-x64.tar.gzHadoop版本:hadoop-2.7.6.tar.gzZookeeper版本:zookeeper-3.4.12.tar.gzSt...

2018-10-03 20:53:54 316

原创 垃圾收集器与回收算法

文章目录运行时数据区PC寄存器Java虚拟机栈(Java方法栈)本地方法栈Java堆方法区运行时常量池对象是如何诞生的?垃圾收集策略对象存活判定算法判定对象是否可回收的算法(一)——引用计数算法判定对象是否可回收的算法(二)——可达性分析算法方法区回收策略判断对象是否死亡1. 第一次标记2. 第二次标记垃圾收集算法标记-清除算法复制算法标记-整理算法分代收集算法HotSpot算法实现可达性分析问...

2018-10-03 20:49:18 824

原创 命令模式——Command

案例展示——Command怎么用? 现在有这样一个业务场景:外包公司接了一个大单——做一个汽车销售网站,这可把公司高兴坏了,近年来外包公司崛起,行业内竞争压力巨大,好不容易有一个大订单一定要把它做好。于是公司专门成立了一个项目小组去负责这件事,该项目小组主要由:需求组,美工组,代码组三个组组成,汽车公司那边外派了一个干员过来常驻公司,主要是和项目小组中的每个组进行沟通交流,以期能够提高效率,尽...

2018-09-30 22:03:34 411

原创 虚拟机执行字节码

在 javac编译原理中我们了解了Java源码被javac编译器编译成能被JVM装载的Java字节码的过程。在类文件结构中我们知道了Java程序如何存储于字节码文件中(Class文件),了解了Class文件的基本结构,掌握了阅读字节码的基本工具(javap)和如何去阅读字节码。在类的加载流程和类加载器ClassLoader中我们了解了JVM如何加载Class文件。现在,我们将去探讨JVM引擎如...

2018-09-30 17:03:25 287

原创 Kafka的安装配置

kafka 是一个分布式的消息处理中间件说在前面工作环境:VMware® Workstation 12 Pro 12.5.6 build-5528349linux版本:CentOS-7-x86_64-Minimal-1611.isoJDK版本:jdk-8u65-linux-x64.tar.gzHadoop版本:hadoop-2.7.6.tar.gzZookeeper版本:zoo...

2018-09-26 21:56:56 179

原创 中介者模式——Mediator

案例展示——Mediator怎么用? 我们先来看这样一种场景:有一家宝马4s店,下面有三个部门:销售部门,采购部门,库存管理部门,这三个部门的职责分别是:采购部门: 负责宝马汽车的采购。与销售部门沟通销售情况:销售的好多进几辆车,销售不好就少进几辆车;与库存管理部门沟通库存情况:扩大库存或者减少库存库存管理部门: 负责库存管理。与采购部门沟通采购情况:库存太多少采购,库存太少多采购...

2018-09-26 10:25:37 422

原创 字节码指令

熟悉并掌握字节码指令,懂得阅读字节码文件是Java程序员一项基本技能,本文就罗列一下基本的字节码指令。加载和存储指令 加载和存储指令用于将数据在栈帧中的局部变量表和操作数栈之间来回传输:将一个局部变量加载到操作数栈: iload,iload_,lload,lload_,fload,fload_,dload,dload_,aload_将一个数值从操作数栈存储到局部变量表: is...

2018-09-24 11:54:43 215

原创 类文件结构

文章目录Java语言的无关性Class类文件结构魔数与Class文件版本常量池访问标志三大索引——类索引,父类索引,接口索引集合字段表集合方法表集合属性表集合1. Code属性2. ConstantValue参考Java语言的无关性 从事Java语言开发工作的人都知道,Java语言有一个非常著名的宣传口号就是——一次编写,到处运行。那到底是怎么做到“一次编写,到处运行”的呢? 其实,我们知...

2018-09-23 22:45:35 154

原创 Flume的安装与配置

说在前面工作环境:VMware® Workstation 12 Pro 12.5.6 build-5528349linux版本:CentOS-7-x86_64-Minimal-1611.isoFlume版本:apache-flume-1.8.0-bin.tar.gzFlume的安装下载 Flume:apache-flume-1.8.0-bin.tar.gz解压到 /sof...

2018-09-20 15:20:49 180

原创 Flume Sink

Flume数据处理流程 Flume的事件是一个具有负载和字符串属性即的数据流单元。Flume Agent是一个JVM进程,负责接收外部源数据进行处理后沉给(sink)另一个目标组建(hbase hdfs hive。。。)下图是详细的处理流程就收外部事件给source处理(相当于服务器端)netcatspooldirexecsequence将事件源交给通道处理器进行...

2018-09-20 15:19:42 602

原创 代理模式——Proxy

终于静下心来好好做一下代理模式的笔记了。说实话,代理模式这个词对我来说又熟悉又陌生。你说陌生吧,Spring 的AOP也了解过一点;你说熟悉吧,但总感觉抓不住它的尾巴,滑不溜秋,在脑海里总没有一个确切的概念。拿来《设计模式之禅》一读,还别说,感觉理解那么一点了。所以就七分抄三分悟记一下。文章目录案例展示——Proxy怎么用?深入分析——Proxy是什么?Proxy的定义代理模式的优点Pro...

2018-09-19 09:45:36 6456 1

原创 原型模式——Prototype

案例展示——Prototype怎么用? 原型模式在开发过程中或许名头没有单例模式,工厂方法模式等设计模式那么响亮,但却是一个应用场景很多的设计模式,下面就通过一个案例来了解这个设计模式是什么。 随着互联网时代的来临,百花齐放,百家争鸣,各种各样的业务都依托互联网而发展的越来越繁荣。而诸多电信公司无疑是互联网产业中属于风口浪尖的产业,因为它们掌控互联网中最核心的源动力——流量。虽然卖流量卖话费...

2018-09-18 13:36:01 226

空空如也

空空如也

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

TA关注的人

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