自定义博客皮肤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)
  • 收藏
  • 关注

原创 大数据(Storm)-安装

下载storm安装包http://storm.apache.org/downloads.html解压安装包并配置软连接tar -xzvf apache-storm-0.9.6.tar.gzln -s /home/hadoop/application/storm/apache-storm-0.9.6 /usr/local/storm配置storm环境变量export...

2018-04-27 22:45:59 474

原创 数据结构与算法-线性表的链式存储(单链表)

基于单链表实现的线性表package linearlist;/** * 链式存储的线性表. * @author mac * */public class LinkedLinearList { private Node head; //头节点 private int length; //当前链表长度 /** * 1.初始化 * 2....

2018-04-27 21:46:45 191

原创 数据结构与算法-线性表的顺序存储

基于数组实现的线性表/** * 线性表的顺序存储. * @author mac * */public class ArrayLinearList { private int DEFAULT_LENGTH = 10; //最大长度 private Object[] items; //数组容器 private int length; ...

2018-04-27 08:37:30 239

原创 大数据(Storm)-简介

什么是StormStrom是一个老牌的实时数据处理框架,在Spark Streaming流行前,Storm统治者整个流式计算的江湖。更详细的说,Storm是一个实时数据处理框架,具有低延迟/高可用/易扩展/数据不丢失等特点,同时,Storm还提供流类似与MapReduce的简单编程模型,便于开发。Storm与Hadoop的区别Storm与Hadoop可以说是数据处理中两种极端场...

2018-04-26 22:44:47 7087

原创 大数据(HBase)-云笔记项目(后端部分)

功能需求笔记本创建笔记本修改笔记本删除笔记本笔记新建笔记新建、修改笔记内容删除笔记 回收站删除的笔记进入回收站恢复回收站中的笔记 彻底删除笔记 详细设计用HBase存储笔记本、笔记即笔记的具体内容等所有信息用Redis缓存每个用户的笔记本信息,提高系统效率Redis结构设计 key value ...

2018-04-21 12:52:14 896

原创 大数据(HBase)-在MapReduce与HBase整合示例

HBase表create 'words','line' put 'words','1234','line:words','this,is,a,first,lin' put 'words','1235','line:words','this,is,second,,lin'create 'wordcount','info'示例代码/** * 從HBae中讀取...

2018-04-20 23:36:42 1077 1

原创 工具-利用读写锁实现简易缓存

/** * 利用读写锁实现的简易缓存. * @author mac * */public class SimpleCache { private static ReentrantReadWriteLock reentrantLock = new ReentrantReadWriteLock(); private static Lock readLock = reentra...

2018-04-20 08:01:25 246

原创 Java并发-AQS及各种Lock锁的原理

什么是AQSAQS是AbustactQueuedSynchronizer的简称,它是一个Java提高的底层同步工具类,用一个int类型的变量表示同步状态,并提供了一系列的CAS操作来管理这个同步状态。AQS的主要作用是为Java中的并发同步组件提供统一的底层支持,例如ReentrantLock,CountdowLatch就是基于AQS实现的,用法是通过继承AQS实现其模版方法,然后将子类作为同...

2018-04-18 08:13:55 38078 22

原创 大数据(HBase)-JavaAPI简介

public class HbaseTest { Configuration hbaseConfiguration = null; Connection conn; HBaseAdmin admin; @Before public void init() throws Exception { hbaseConfiguration = H...

2018-04-17 22:50:02 220

原创 大数据(Hbase)-命令行

1.创建表 由于列名不是表schema的一部分,所以创建表的时候只需要指定表名和列族即可 create 'user','base','ext'; 2.查看所有表 list 3.查看指定表的详情 describe ‘user’ 4.查看指定表是否存在 exists 'user' 5.查看表是否可用/不可用 is_enabled 'use...

2018-04-16 21:38:23 213

原创 大数据(Hbase)数据模型

Hbase数据模型rowkeyHbase是面向列式存储的分布式数据库,rowkey是行键,用来组织逻辑上的一行数据。rowkey可以是任意类型的字符串,最大长度为64KB。rowkey按照字典顺序排序存储,在设计rowkey时,需要考虑如何充分利用rowkey的这一特性,特高查询效率和存储效率,通常把经常一起读取的行存储在同一区域内。列族Hbase表中的每个列都属于一个...

2018-04-16 08:46:34 1578

原创 大数据(Hbase)-安装Hbase分布式环境

下载Hbase安装包 http://archive.apache.org/dist/hbase/hbase-1.2.6上传到待安装机器解压 node01:/home/hadoop/application/hbase/hbase node02:/home/hadoop/application/hbase/hbase node03:/home/hadoop/application/hb...

2018-04-16 08:06:49 400

原创 Java并发-synchronizd锁原理

synchronized在印象中是一个解决线程安全问题对神器,但它的效率却不怎么高。在jdk1.6以后,synchronized已经不再是一个简单粗暴的线程锁了,通过引入偏向锁/轻量级锁等机制对其进行了一系列优化。synchronized的用法synchronized的用法主要有三种静态同步方法普通同步方法同步代码块这三种应用形式的区别在于静态同步方法用的锁对象是...

2018-04-14 22:04:27 646

原创 Java并发-volatile

volatile是Java并发编程中一个很重要的成员,可以把它理解为一个轻量级的synchronized。volatile的作用有两个:保证变量的内存可见性防止指令重排序保证变量的内存可见性由于每个线程都有自己的本地线程缓存,当操作主内存中的数据时,会从主内存中复制数据到本地线程缓存中再进行操作。在多线程环境下,如果多个线程同时操作主内存中的同一块内存,就会造成多个线程间...

2018-04-14 13:25:43 196

原创 Java并发-JMM

JMM是Java Memory Model的缩写,即Java内存模型。JMM是理解并发及同步问题的基础,只有理解来JMM,才能更好的理解线程间的同步和通信以及能够更快的定位多线程编程中出现的问题。CPU多级缓存现代CPU的运行速度极快,但通常情况下,计算机主内存的数据读写速度跟不上CPU的数据处理速度(相差几个数量级),为了高效利用cpu资源,提供运算速度,在主内存的基础上还会增加多层...

2018-04-11 08:31:44 213

原创 算法-约瑟夫环问题

问题描述问题:有N个人围成一圈,顺序排号。从第一个人开始报数(从1~~3报数),凡报到3的退出圈子,问最后留下的人原来是排在第几号?解体思路用一个循环队列存放n个人组成对圈(数组或链表实现都可以)用currentCallNum表示当前报数,用index表示当前人对应都索引值当currentCallNum%3 == 0时,表示当前人需要出圈把当前人(array[index%n])...

2018-04-09 08:23:45 196

原创 Java并发-资源共享与锁同步

并发编程中一个最主要的场景和挑战就是对共享资源对同步访问控制,同步访问控制是保证程序线程安全的最重要手段。在jdk1.5+中,主要提供了两种同步控制方式:synchronized关键字Lock接口其中,synchronized由可以分为:同步代码块/普通同步方法和静态同步方法三种,下面分别来看一下这集中同步控制机制的使用方法。普通同步方法这种方式是最常用的同步方式,通过在...

2018-04-08 18:33:09 1433 1

原创 工具-简易异步处理框架

事件类型/** - 事件类型. - @author mac - */public enum EventType { CREATE(0), SUBMIT(1), TERMINATE(2); private int value; EventType(int value) { this.value = value; ...

2018-04-08 16:44:55 218

原创 Java并发-ThreadLocal

ThreadLocal的作用作用是为每个线程保存线程私有数据。可以把ThreadLocal理解为一个Map,其中key为当前线程,value为要存储的数据。下面是摘自《Java编程思想》中的一段示例代码:public class ThreadLocalTest { public static void main(String[] args) throws Exceptio...

2018-04-08 09:51:20 506

原创 Java并发-异常处理

由于异常不能跨线程传递,这就导致不能在主线程中处理子线程的异常,就像下面这样class ExceptionTask implements Runnable { @Override public void run() { System.out.println("Exception Task "); throw new RuntimeExceptio...

2018-04-07 21:13:08 844

原创 Java并发-守护线程(Daemon)

Deamon线程通常是一种在后台提供通用服务的线程,当程序中的非后台线程全部终止时,deamon线程也就终止了。setDaemon(boolean isDaemon)方法的一段注释:The Java Virtual Machine exits when the only threads running are all daemon threads.意思就是当运行中的线程只剩下守护线程时...

2018-04-07 14:45:12 756

原创 Java并发-join

join的作用join的作用是将另一线程加入到当前线程中,并串行执行。public class JoinTest { public static void main(String[] args) throws Exception{ Thread thread = new Thread(new JoinTask()); thread.start();...

2018-04-07 11:37:34 695

原创 Java并发-线程优先级

线程的优先级表示当前线程的重要程度,是客户端代码对操作系统任务调度器的一种简易,理论上,优先级越高的线程,cpu时钟的机会越大。线程优先级取之从1-10,优先级一次递增,但查阅相关资料后发现,多数线程调度器会忽略指定但优先级,而使用默认统一的线程优先级 5。下面看一个代码实例(摘自《Java编程思想》第四版):PriorityDemo(int priority) { ...

2018-04-06 09:01:07 365

原创 Java并发-线程休眠

休眠是让线程终止执行给定的时间。Java提供了两种方式来实现线程休眠:Thread.sleep(long time)TimeUnit.SECONDS.sleep(long time) 其中,TimeUnit的JDK1.5引入的,并且也是推荐使用的,因为它提供来更好的可读性。public class SleepDemo implements Runnable{ @Overri...

2018-04-06 08:05:32 402

原创 Java并发-线程的创建和终止

线程是操作系统的最小执行单元,每个线程都归属于一个进程,一个进程往往是一个独立的服务。创建线程创建线程的过程分两步:声明任务和启动线程。声明任务是定义线程需要执行的具体内容,启动线程是将任务托管到线程上交给操作系统去执行。声明任务声明任务的方式有三种,分别是:继承Thread类实现Runnable接口实现Callable接口下面分别看一下这三种方式的使用:...

2018-04-04 08:50:28 1184

原创 Java并发-简介

随着整个社会的不断发展,软件已经成文人们日常生活中不可或缺对一部分。随之而来的是计算机技术的不断发展和人们日益增长的对于软件的要求,例如,为了提高计算机的处理能力,以冯·诺伊曼体系为基础的计算机不断发展为多核/多处理的计算机;人们对软件的友好性/数据处理能力等的要求不断提示。Java作为一门撑起互联网及软件业半边天的编程语言自然也要适应不断变化的世界,Java并发多线程技术在某种程度上算是这一...

2018-04-01 21:12:13 184

空空如也

空空如也

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

TA关注的人

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