自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Solr 进阶

Solr索引过程solr 检索过程Solr Cloud简介Solr Cloud的拓扑结构      Solr是一个基于Lucene的一个全文检索引擎,依赖Lucene提供高效的信息检索服务。SolrCloud是Solr4.0的一个主要特性,提供自动的、横向扩展的分布式检索能力。SolrCloud中索引的逻辑拓扑结构如下所示。 Solr Cloud的拓扑结构Solr Cloud的物理拓扑如下图所示,

2017-09-22 15:53:03 851

原创 初识 Solr

全文检索概述Solr简介1 Solr服务器框架2 Solr目录结构3 Solr Admin1 全文检索概述      我们处理的数据包含两类,一是具有固定格式或有限长度的结构化数据,如数据库、元数据等;另一个是非结构化的数据,如图片、邮件、word文档等。对结构化数据的存储和查询技术比较简单和成熟,可以利用数据的结构特点利用一些算法快速定位数据,效率较高。而对非结构化数据进行检索相对复杂,

2017-09-22 11:24:04 783

原创 提高HBase WAL写入性能

问题描述:      HBase在集成其它组件,作为存储引擎完成组合服务时,往往是数据先写入HBase,然后对数据进行检索,之后数据通过网络传输给目标服务。HBase与组件之间的数据一致性使用WAL来保证。WAL是一种常用的保证数据可靠写入的一种技术,全称为Write-Ahead-Log,就是在向客户端返回写成功前,先将写操作在WAL中记录下来。这样即便系统在数据写入的过程中出现宕机等情况,也可以通

2017-09-22 10:51:39 3797

原创 大数据应用统一集成平台CDAP简介

CDAP概述 CDAP的特性 CDAP的架构和技术CDAP的适用场景CDAP的优缺点 总结CDAP概述      CDAP (CAST DATA APPLICATION PLATFORM)是一个开源的大数据应用统一集平台,帮助应用开发者和系统管理员基于Hadoop技术栈来构建、测试、部署、管理数据应用程序。CDAP由Datasets、Programs、 Services、Tools等组件

2017-09-22 09:53:04 15088

转载 Kafka 高吞吐率的实现

Kafka是分布式消息系统,需要处理海量的消息,Kafka的设计是把所有的消息都写入速度低容量大的硬盘,以此来换取更强的存储能力,但实际上,使用硬盘并没有带来过多的性能损失。kafka主要使用了以下几个方式实现了超高的吞吐率顺序读写kafka的消息是不断追加到文件中的,这个特性使kafka可以充分利用磁盘的顺序读写性能顺序读写不需要硬盘磁头的寻道时间,只需很少的扇区旋转时间,所以速度远快于随机读写零

2017-09-11 16:48:22 6907

转载 Kafka 高性能吞吐

Broker      不同于Redis和MemcacheQ等内存消息队列,Kafka的设计是把所有的Message都要写入速度低容量大的硬盘,以此来换取更强的存储能力。实际上,Kafka使用硬盘并没有带来过多的性能损失。Kafka在磁盘上只做Sequence I/O,规避了磁盘访问速度低下对性能可能造成的影响。       Kafka重度依赖底层操作系统提供的PageCache功能。当上层有写操作

2017-09-11 16:29:23 535

原创 Kafka Replication & Leader election

Kafka从0.8开始提供partition级别的replication,replication的数量可在$KAFKA_HOME/config/server.properties中配置。default.replication.factor = 1      在Replication与leader election配合提供了自动的failover机制。replication对Kafka的吞吐率是有一定

2017-09-10 22:30:01 829

原创 Kafka Consumer Rebalance

Kafka保证同一consumer group中只有一个consumer会消费某条消息,实际上,Kafka保证的是稳定状态下每一个consumer实例只会消费某一个或多个特定partition的数据,而某个partition的数据只会被某一个特定的consumer实例所消费。这样设计的劣势是无法让同一个consumer group里的consumer均匀消费数据,优势是每个consumer不用都跟大

2017-09-10 22:10:02 1030

原创 Kafka 消息 Deliver guarantee

Kafka 消息有以下三种delivery guarantee:At most once 消息可能会丢,但绝不会重复传输At least one 消息绝不会丢,但可能会重复传输Exactly once 每条消息肯定会被传输一次且仅传输一次,很多时候这是用户所想要的。      Producer到Broker的delivery guarantee semantic非常直接。当producer向

2017-09-10 21:47:35 924

转载 Kafka 简析

我们为什么要搭建该系统Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(activity stream)和运营数据处理管道(pipeline)的基础。现在它已为多家不同类型的公司 作为多种类型的数据管道(data pipeline)和消息系统使用。活动流数据是所有站点在对其网站使用情况做报表时要用到的数据中最常规的部分。活动数据包括页面访问量(page view

2017-09-10 11:58:49 456

转载 Kafka Zero-Copy 使用分析

Kafka的高效读写是有Zore-copy技术实现的,那么Zore-copy是如何作用于Kafka呢?关于Zore-copy技在此不再赘述。 Kafka在什么场景下用了这个技术Zero-Copy 是如何被调用,并且发挥作用的。Kafka在什么场景下使用该技术答案是:消息消费的时候 包括外部Consumer以及Follower 从partiton Leader同步数据,都是如

2017-09-10 10:40:29 1047

转载 Elasticsearch 架构

Elasticsearch 是最近两年异军突起的一个兼有搜索引擎和NoSQL数据库功能的开源系统,基于Java/Lucene构建。最近研究了一下,感觉 Elasticsearch 的架构以及其开源的生态构建都有许多可借鉴之处,所以整理成文章分享下。本文的代码以及架构分析主要基于 Elasticsearch 2.X 最新稳定版。Elasticsearch 看名字就能大概了解下它是一个弹性的搜索引擎。首

2017-09-06 08:33:22 606

原创 初始Titan

Titan 是一个可扩展的图形数据库,完美结合HBase、Cassandra、BerkeleyDB提供存储功能,ES、Lucene、Solar提供索引功能,可利用Hadoop计算框架对图数据进行分析、统计。经过优化,可用于存储和索引分布于多节点集群的百亿级顶点和边的图,同时,Titan又是一个事务数据库,可以支持数千个并发用户实时执行复杂图形遍历。         一 Titan数据库简介 1.

2017-09-01 16:59:06 1768

原创 深入理解Java注解

注解作用:每当你创建描述符性质的类或者接口时,一旦其中包含重复性的工作,就可以考虑使用注解来简化与自动化该过程。Java提供了四种元注解,专门负责新注解的创建工作。 元注解  元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:     1.@Target,

2017-08-31 13:20:27 483

原创 ThreadLocal

ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。从线程的角度看,目标变量就象是线程的本地变量,这也是类名中“Local”所要表

2017-08-31 12:42:58 317

原创 HashMap和Hashtable的区别

HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 1.HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)。

2017-08-31 12:24:22 284

原创 ConcurrentHashMap原理分析

集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅。

2017-08-31 12:18:21 271

原创 LinkedList源码解析

一、源码解析1、 LinkedList类定义2、LinkedList数据结构原理3、私有属性4、构造方法5、元素添加add()及原理6、删除数据remove()7、数据获取get()8、数据复制clone()与toArray()9、遍历数据:Iterator()二、ListItr  一、源码解析    1、 LinkedList类定义。 public class LinkedList<E>

2017-08-31 12:15:58 313

原创 HashMap源码剖析

Java集合—HashMap源码剖析  一、HashMap概述二、HashMap的数据结构三、HashMap源码分析     1、关键属性     2、构造方法     3、存储数据     4、调整大小     5、数据读取      6、HashMap的性能参数      7、Fail-Fast机制 一、H

2017-08-31 09:55:47 353

原创 YARN 状态机库

状态机库状态机由一组状态组成, 这些状态分为三类 : 初始状态、 中间状态和最终状态。 状态机从初始状态开始运行, 经过一系列中间状态后, 到达最终状态并退出。 在一个状态机中,每个状态都可以接收一组特定事件, 并根据具体的事件类型转换到另一个状态。 当状态机转换到最终状态时, 则退出。YARN 状态转换方式在 YARN 中, 每种状态转换由一个四元组表示, 分别是转换前状态(preState)、

2017-08-01 09:02:53 514

原创 YARN 服务库与事件库

服务库对于生命周期较长的对象, YARN 采用了基于服务的对象管理模型对其进行管理, 该模型主要有以下几个特点。将每个被服务化的对象分为 4 个状态: NOTINITED(被创建)、INITED(已初始化)、 STARTED(已启动)、STOPPED(已停止)。任何服务状态变化都可以触发另外一些动作。可通过组合的方式对任意服务进行组合, 以便进行统一管理。YARN 中关于服务模型的类图(位于

2017-07-31 19:14:22 456

原创 理解Hadoop通信 RPC

远程过程调用(Remote Procedure Call, RPC) 是一种常用的分布式网络通信协议, 它允许运行于一台计算机的程序调用另一台计算机的子程序, 同时将网络的通信细节隐藏起来, 使得用户无须额外地为这个交互作用编程。RPC 是一种通过网络从远程计算机上请求服务, 但不需要了解底层网络技术的协议。RPC 协议假定某些传输协议(如 TCP 或 UDP 等) 已经存在, 并通过这些传输协议为

2017-07-31 14:29:57 1222

原创 YARN基本框架分析

YARN 是在 MRv1 基础上演化而来的,它克服了 MRv1 中的各种局限性,再进一步了解YARN之前来了解下MR1存在的局限性,看看YARN解决了那些问题。MRv1 的局限性,这可概括为以下几个方面:扩展性差。在 MRv1 中,JobTracker 同时兼备了资源管理和作业控制两个功能,这成为系统的一个最大瓶颈, 严重制约了Hadoop 集群扩展性。可靠性差。MRv1 采用了 master/

2017-07-29 15:22:08 973

原创 JAVA 配置管理库 typesafe.config

Typesafe的Config库,纯Java写成、零外部依赖、代码精简、功能灵活、API友好。支持Java properties、JSON、JSON超集格式HOCON以及环境变量。它也是Akka的配置管理库。特性:纯java实现,无任何依赖充分的测试支持: Java properties, JSON, and a human-friendly JSON superset可以合并各种格式的配置

2017-07-27 18:13:14 5841 1

原创 HBase region 定位原理

在Hbase中,大部分的操作都是在RegionServer完成的,Client进行插入,删除,查询数据都需要先找到相应的RegionServer。什么叫相应的RegionServer?就是管理你要操作的那个Region的RegionServer。Client本身并不知道哪个RegionServer管理哪个Region,那么它是如何找到相应的RegionServer的?如上图所示为HBase的存储架构

2017-07-18 13:37:35 3694

原创 Lucene 索引技术

1 信息检索技术基础1.1 全文检索基本过程我们处理的数据包含两类,一是具有固定格式或有限长度的结构化数据,如数据库、元数据等;另一个是非结构化的数据,如图片、邮件、word文档等。对结构化数据的存储和查询技术比较简单和成熟,可以利用数据的结构特点利用一些算法快速定位数据,效率较高。而对非结构化数据进行检索相对复杂,最原始的方法是顺序扫描,如grep命令,顺序扫描的缺点是显而易见的,每次检索海量数据

2017-07-13 18:13:19 723

原创 Yarn 应用开发流程

1 概况Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是Hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一管理和调度。YARN是一个高速发展中的资源管理与调度平台,目前还不是很完善,当前只支持CPU和内存的分配。作为资源调度器,YARN支持如下几个资源调度语义:•获取指定节点的特定资源量; •获取指定机架

2017-07-10 19:08:03 3109

原创 Hadoop MR &MRv2(YARN)编程模型

1 MapReduce编程模型 MapReduce将作业的整个运行过程分为两个阶段:Map阶段和Reduce阶段 Map阶段由一定数量的Map Task组成 输入数据格式解析:InputFormat 输入数据处理:Mapper 数据分组:Partitioner Reduce阶段由一定数量的Reduce Task组成 数据远程拷贝

2017-07-05 14:18:22 3886

原创 HBase WAL 解析

WAL(Write-Ahead-Log)是HBase的RegionServer在处理数据插入和删除的过程中用来记录操作内容的一种日志。大致过程如下图所示,首先客户端启动一个操作来修改数据,每一个修改都封装到KeyValue对象实例中,并通过RPC调用发送到含有匹配Region的HRegionServer。一旦KeyValue到达,它们就会被发送管理相应行的HRegion实例。数据被写到WAL,然后被

2017-07-04 15:05:39 10779 1

原创 Hbase Split 解析

HBase Split是hbase根据一定的触发条件和一定的分裂策略将HBase的一个region进行分裂成两个子region并对父region进行清除处理的过程。Region是HBase中一个非常核心的组织单元,所有的region组成了整个HBase集群,如下面的HBase的体系结构所示:在HBase中,split其实是进行sharding的一种技术手段,通过HBase的split条件和split

2017-07-04 11:02:42 3787

转载 HBase架构解析二

HBase读的实现通过前文的描述,我们知道在HBase写时,相同Cell(RowKey/ColumnFamily/Column相同)并不保证在一起,甚至删除一个Cell也只是写入一个新的Cell,它含有Delete标记,而不一定将一个Cell真正删除了,因而这就引起了一个问题,如何实现读的问题?要解决这个问题,我们先来分析一下相同的Cell可能存在的位置:首先对新写入的Cell,它会存在于MemSt

2017-07-03 19:15:40 258

转载 HBase架构解析一

HBase架构组成HBase采用Master/Slave架构搭建集群,它隶属于Hadoop生态系统,由一下类型节点组成:HMaster节点、HRegionServer节点、ZooKeeper集群,而在底层,它将数据存储于HDFS中,因而涉及到HDFS的NameNode、DataNode等,总体结构如下:其中HMaster节点用于:管理HRegionServer,实现其负载均衡。管理和分配HRegi

2017-07-03 19:13:01 556

原创 HBase Flush 解析

在对hbase操作中,数据读取/写入都是发生在某个HRegion下某个Store里的files。那么究竟在写入hbase时,一个region下到底发生了什么呢? 常见的有以下三种情况: 1)、memstore flush to disk 2)、columnfamily’s files compaction 3)、region split 首先介绍一些概念:hbase一个表(table)会分割为n个

2017-07-03 19:04:08 10707 1

转载 HBase存储架构

从HBase的架构图上可以看出,HBase中的存储包括HMaster、HRegionServer、HRegion、Store、MemStore、StoreFile、HFile、HLog等,本篇文章统一介绍他们的作用即存储结构。以下是网络上流传的HBase存储架构图:HBase中的每张表都通过行键按照一定的范围被分割成多个子表(HRegion),默认一个HRegion超过256M就要被分割成两个,这

2017-07-03 16:50:39 5393

原创 HBase compaction 分析

Hbase为了防止小文件(被刷到磁盘的menstore)过多,保证查询效率,HBase需要在必要的时候将这些小的store file合并成相对较大的store file,这个过程就称之为compaction。在HBase中,主要存在两种类型的compaction:minor compaction和major compaction。 major compaction 的功能是将所有的store

2017-07-03 16:42:53 2318

转载 漫画HDFS原理

漫画讲解HDFS原理 分布式文件系统比较出名的有HDFS 和 GFS,其中HDFS比较简单一点。本文是一篇描述非常简洁易懂的漫画形式讲解HDFS的原理。比一般PPT要通俗易懂很多。不难得的学习资料。1、三个部分: 客户端、nameserver(可理解为主控和文件索引类似linux的inode)、datanode(存放实际数据的存server)   2、如何写数据过程

2017-07-03 10:44:25 499

原创 HDFS 读写流程

1 HDFS如上图所示,HDFS也是基于Master/Slave的结构。分NameNode、SecondaryNameNode、DataNode这几个角色。NameNode:是Master节点,是大领导。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;SecondaryNameNode:是一个小弟,分担大哥namenode的工作量;是NameNode的冷备份;合并fsim

2017-07-03 10:30:08 545

原创 YARN任务提交流程

Yarn是随着hadoop发展而催生的新框架,全称是Yet Another Resource Negotiator,可以翻译为“另一个资源管理器”。yarn取代了以前hadoop中jobtracker(后面简写JT)的角色,因为以前JT的 任务过重,负责任务的调度、跟踪、失败重启等过程,而且只能运行mapreduce作业,不支持其他编程模式,这也限制了JT使用范围,而yarn应运而 生,解决了这两个

2017-07-03 10:01:47 6765

原创 Copy-On-Write COW 技术简介

COW技术初窥:       在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。      那么子进程的物理空间没有代码,怎么去取指令执行exec系统调用呢?       在fork之后exec之前两个进程用的是相

2017-06-16 10:03:10 3663

原创 最终一致性算法Gossip简介

Gossip算法因为Cassandra而名声大噪,Gossip看似简单,但要真正弄清楚其本质远没看起来那么容易。为了寻求Gossip的本质,下面的内容主要参考Gossip的原始论文:<<Efficient Reconciliation and Flow Control for Anti-Entropy Protocols>>。 1. Gossip背景Gossip算法如其名,灵感来自办公室八卦,

2017-04-14 16:03:17 2768

空空如也

空空如也

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

TA关注的人

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