自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

深入一点

你会更加快乐

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

原创 Mysql Replication基本原理(一)

    Replication的思想是将数据在集群的多个节点同步、备份,以提高集群数据的可用性(HA);Mysql使用Replication架构来实现上述目的,同时可以提升了集群整体的并发能力。5.6版本作为一个里程碑,对replication做了不少的优化调整,提高了集群数据的一致性、同步的性能以及数据自动恢复(recovery)的能力。(本文内容基于MySQL 5.6+,不过在5.7+版本...

2016-01-23 12:54:29 600

原创 Mongodb中FAQ整理

一、基础1、mongodb是什么类型的数据库?    mongodb是一个基于document的NOSQL数据库,每条数据的结构为BSON形式。mongodb不能支持join和事务,支持索引(组合索引、唯一索引等)和丰富的查询条件,单条document的写操作是原子的。mongodb使用“replica set”架构模式来提高数据的可用性,避免数据丢失和自动failover机制;其sh...

2015-12-13 17:27:59 406

原创 Mongodb中Security介绍

    Security对任何程序而言都非常重要,mongodb中提供了多种机制来保证数据安全性,集群中的members只有提供正确的认证信息才能彼此建立链接,客户端访问数据时,不仅认证信息正确(Authentication),还需要具有一定的访问权限(privilege)才能操作数据。在production环境中,我们建议所有的mongod都开启授权验证。    1、开启访问控制(Acc...

2015-12-10 17:49:59 2345

原创 Mongodb中Mapreduce特性与原理

    对于每个从事数据技术的人才而言,mapreduce都不陌生,简单而言就是一种大数据计算、分类、分析的一个编程模式,目前很多大数据存储平台都支持mapreduce,比如hadoop、hbase等等,也有很多采用了类似于mapreduce的算法的其他数据计算平台,关于mapreduce的原理不再赘言,我们直接来了解mongodb中如何使用mapreduce。     Mongodb...

2015-12-05 20:20:12 2169 1

原创 Mongodb中Aggregation特性

    Mongodb是目前最受欢迎的大数据存储平台之一,它可以作为云计算技术的底层存储层,比如为spark、hadoop、pig、hive、drill等计算框架提供源数据。Mongodb本身也提供了aggregation、mapreduce特性,以支持对大数据的计算、统计、分类等需求。      Aggregation简单来说,就是提供数据统计、分析、分类的方法,这与mapreduc...

2015-11-30 18:34:37 1769

原创 Mongodb中Sharding集群

    随着mongodb数据量的增多,可能会达到单个节点的存储能力限制,以及application较大的访问量也会导致单个节点无法承担,所以此时需要构建集群环境,并通过sharding方案将整个数据集拆分成多个更小的chunk,并分布在集群中多个mongod节点上,最终达到存储和负载能力扩容、压力分流的作用。在sharding架构中,每个负责存储一部分数据的mongod节点称为shard(分...

2015-11-20 21:09:10 1137

原创 Mongodb客户端原理

    JAVA客户端原理简述    mongodb提供了官方的JAVA客户端,在上文中我们已经看到了示例。    接下来我们简单的阐述一下它的基本原理:    1)MongoClient参数列表中,允许指定多个mongod的addresses,注意,它们要么是同一个replica set中所有memebers列表,要么为同一个cluster的mongos列表,且不能混合使用。...

2015-11-15 21:07:22 388

原创 Mongodb存储特性与内部原理

一、存储引擎(Storage)    mongodb 3.0默认存储引擎为MMAPV1,还有一个新引擎wiredTiger可选,或许可以提高一定的性能。    mongodb中有多个databases,每个database可以创建多个collections,collection是底层数据分区(partition)的单位,每个collection都有多个底层的数据文件组成。(参见下文da...

2015-11-08 22:29:09 2390

原创 Mongodb中Replication架构

    Mongodb的高可用(HA)架构模式就是replication,replication提供了数据冗余以提高可用性,即将数据在多个servers上备份,当其中部分server失效时,集群仍可以提供服务。在mongodb中,“replica set”(复制集)即为replication模式,复制集为一组mongod实例,它们持有相同的数据集,其中一个实例为primary,用来接收客户端的...

2015-11-04 16:47:25 921

原创 Mongodb中Index特性

    Mongodb支持多种index类型,这相对于其他Nosql数据库而言具有很大的优势,它的索引类型比较接近SQL数据库,所以开发者在mongodb中使用索引将是非常便捷的。索引最大的作用就是提高query的查询性能,如果没有索引,mongodb需要scan整个collection的所有的documents,并筛选符合条件的document,如果有索引,那么query只需要遍历index...

2015-10-27 15:36:20 2601

原创 Mongodb操作与基本特性

    本文主要介绍Mongodb中CRUD常用操作、存储引擎、数据模型,以及如何使用java Driver。 一、BSON    Mongodb中数据存储格式为BSON,和JSON非常类似,可以说在整体的结构几乎一样,只不过BSON定义了更多的数据类型,这对面向对象编程语言非常友好。{ "_id": { "$oid": "55f6c87fdefdd...

2015-09-20 18:40:40 596

原创 Mongodb参数限制和阀值

    Mongodb中有一些限制,需要开发者预先了解 一、BSON文档    1、BSON文档尺寸:一个document文档最大尺寸为16M;大于16M的文档需要存储在GridFS中。    2、文档内嵌深度:BSON文档的结构(tree)深度最大为100。 二、Namespaces    1、collection命名空间:<database>.&lt...

2015-09-13 19:28:15 670

原创 Mongodb配置说明

    Mongodb 3.x配置说明,本文内容忽略了Enterprise版和一些不常用的配置。一、配置说明    在Mongod安装包中,包含2个进程启动文件:mongod和mongos;其中mongd是核心基础进程,用来接收读写请求、负责存储实际数据,mongod实例是构成集群的基本单位,比如Replication set、Sharding Cluster、Config Serve...

2015-09-13 14:05:45 705 1

原创 LVS学习备忘

    LVS是构建在real server集群之上的、具有高扩展性和可用性的虚拟服务器,通常我们称之为“负载均衡”服务器。服务器的集群架构对用户而言是透明度,用户与集群系统交互时,就像与单个高性能的虚拟服务器交互一样;这对构架较大规模的服务站点,有极大的帮助。     实际服务器(real servers)和负载均衡服务器(LVS等)通过高速的LAN或者在地理位置上分散的WAN互相链...

2015-08-16 13:31:14 142

原创 keepalived学习总结

    “Keepalived是一个C语言写的路由软件,它的主要目标是向linux系统和基础组件提供简单而健壮的负载均衡和高可用设施。负载均衡框架依赖于广泛使用的LVS(IPVS)内核,它提供了layer4(传输层)负载均衡。keepalived实现了一组检测器(checkers),根据负载均衡器的健康状态,动态的、自适应的维护管理它们。另一方面,高可用性是通过VRRP协议实现,VRRP协议是...

2015-08-12 18:31:07 645

原创 Nginx学习总结:geo与image模块(四)

斜体下划线,表示建议采用默认配置,无需显式的配置一、ngx_http_geo_module    核心特性为:根据客户端IP(段),geo模块将会匹配出指定的变量(比如,国家代码,城市代码)。geo模块可以帮助我们实现如下场景:    1)简易的CDN网络    2)多机房部署,站点分流。    3)limit非法IP(段)的访问,或者限流。    1、geo 【$add...

2015-08-06 23:07:00 170

原创 Nginx学习总结:proxy与rewrite模块(三)

斜体下划线,表示建议采用默认配置,无需显式的配置一、ngx_http_upstream_module     此模块中可配置的指令并不是很多。nginx的负载均衡算法包括:    1)round-robin:轮询,request将会依次有序的分发给web server。one by one!默认使用此算法。    2)least-connected:最小连接数,请求将会被分发给...

2015-08-06 11:15:39 919

原创 Nginx学习总结:常用module(二)

斜体下划线,表示建议采用默认配置,无需显式的配置一、ngx_core_module    1、accept_mutex 【on | off】        上下文:events    默认为“on”,在worker进程accpet客户端链接时,是否为“互斥”?如果为on,则当有新链接时,worker进程将会依次接收,否则workers将同时“竞争”(当链接的存量较小时,这种竞争...

2015-07-30 16:37:33 181

原创 Nginx学习总结概述(一)

    Nginx是目前比较主流的HTTP反向代理服务器(其企业版提供了基于TCP层的反向代理插件),对于构建大型分布式web应用,具有举足轻重的作用。简单来说,nginx有2个主要的功能:动/静态资源分离、负载均衡。     动/静态资源分离:nginx支持正则表达式以区分静态资源或者动态资源,其中动态资源可以进一步转发给后端的proxy server,而静态资源则可以在nginx层...

2015-07-29 17:15:44 262

原创 Netty实践

    “Netty是一个异步的、基于事件驱动的网络应用框架,用来快速开发高性能Servers、Clients”,这是官网对Netty的定义;以本人对Netty的使用感受而言,可以认为Netty是:    1)对JAVA NIO的高度封装,开发者不需要关注NIO的底层API、ByteBuffer,Netty几乎对所有的NIO API进行了二次封装,包括Channel、ByteBuffer、...

2015-07-06 19:09:29 315

原创 Avro与JAVA

    我们已经接触过很多序列化框架(或者集成系统),比如protobuf、hessian、thrift等,它们各有优缺点以及各自的实用场景,Avro也是一个序列化框架,它的设计思想、编程模式都和thirft非常相似,也都是Apache的顶级项目。Avro还提供了RPC机制,可以不需要生成额外的API代码即可使用Avro来存储数据和RPC交互,“代码生成”是可选的,这一点区别于protobuf...

2015-06-08 16:58:27 1242

原创 Spring与Quartz Cluster备忘

    Spring与Quartz集成看起来简单,其实还有很多小的细节解决起来比较耗时,本文作为备忘,摘要代码以供参考。    环境:Spring 3.2,Quartz 2.2.x    数据库:mysql 5.5+ 一、普通定时器,非Cluster环境:即没有使用Quartz Cluster,每个Spring实例中的定时器都会同时运行,这在分布式环境中并不会带来太多额外的问题...

2015-06-01 18:08:31 132

原创 Protobuf与JAVA

    我们在开发一些RPC调用的程序时,通常会涉及到对象的序列化/反序列化的问题,比如一个“Person”对象从Client端通过TCP方式发送到Server端;因为TCP协议(UDP等这种低级协议)只能发送字节流,所以需要应用层将Java对象序列化成字节流,数据接收端再反序列化成Java对象即可。“序列化”一定会涉及到编码(encoding,format),目前我们可选择的编码方式: ...

2015-05-19 19:18:22 1788

原创 Jenkins + Git + Maven + tomcat集成环境搭建

    折腾了好几天,终于把Jenkins + Git + Maven + tomcat集成环境搭建起来了,最终主要实现“自动构建、部署”web应用。 1、安装环境    操作系统:Centos 6.5    JDK:1.7.x    Maven:3.1.x    Git: 1.7.1,自建GitLab平台    tomcat:7.x     上述宿主机器2...

2015-05-06 15:46:56 465

原创 Mongodb与GridFS

一、概述    GridFS是基于mongodb存储引擎是实现的“分布式文件系统”,底层基于mongodb存储机制,和其他本地文件系统相比,它具备大数据存储的多个优点。GridFS适合存储超过16MB的大型文件,不过16M数据在当今互联网时代,已经不足为奇。我们可以使用GridFS构建大规模的“图片服务器”、“文档服务器”、“视频、音频”文件服务器,GridFS对于web应用,可以结合ng...

2015-03-25 23:04:27 1097 1

原创 LevelDB学习与实践

LevelDB学习与实践    LevelDB是一个基于本地文件的存储引擎,非分布式存储引擎,原理基于BigTable(LSM文件树),无索引机制,存储条目为Key-value。适用于保存数据缓存、日志存储、高速缓存等应用,主要是避免RPC请求带来的延迟问题。在存取模型上,顺序读取性能极高,但是对于随机读取的情况延迟较大(但性能也不是特别低),比较适合顺序写入(key),随机的key写...

2015-03-24 16:27:07 1059

原创 JAVA中BitSet使用

JAVA中BitSet     JAVA中BitSet就是“位图”数据结构,根据“位图”的语义,数据的存在性可以使用bit位上的1或0来表示;一个bit具有2个值:0和1,正好可以用来表示false和true。对于判断“数据是否存在”的场景,我们通常使用HashMap来存储,不过hashmap这个数据结构KEY和Value的保存需要消耗较多的内存,不适合保存较多的数据,即大数据场景;比...

2015-03-22 12:57:24 1969

原创 guava cache与编程实践

Guava-cache    guava cache是google开源代码库中的一个辅助功能模块,可以作为JVM嵌入式cache来使用,基于key-value模型。对于Rdedis、Memcached,这种缓存系统,我们称之为“分布式缓存”,它们通过集群扩容,可以将海量数据cache在远端。而guava cache,作为“嵌入式cache”,这些cache的数据寄宿在当前JVM堆中,和JVM...

2015-03-18 16:12:35 209

原创 JAVA中try-catch异常逃逸

    有时候一些小的细节,确实比较纠结,对于try-catch-finally代码块中代码依次执行,当try中有exception抛出时,将会有catch拦截并执行,如果没有catch区块,那么exception将被添加到“return栈顶”并执行finally。    1) 如果catch中,再次抛出exception,那么原try中的exception是否还能抛出呢?    2) ...

2014-11-17 12:51:58 281

原创 HDFS读写路径详解

    【HDFS读写路径详解】    HDFS中我们通常使用FileSystem类来操作文件系统,提供了众多类POSIX接口调用风格的方法。一段典型的代码样例为:public static void read(String path) throws Exception{ Configuration conf = new Configuration(); FileSystem ...

2014-08-25 17:08:48 4940 1

原创 ServiceLoader加载基于配置的类服务

    Java中有一个ServiceLoader类,可以用来加载指定的类服务。Java中目前还没有简单的办法来获取指定接口子类的列表。ServiceLoader能够在一定程度上,根据配置,加载并实例化指定接口的子类。 1、声明Service:在META-INF/services目录下创建配置文件,文件名称为Super类或者接口全名称,文件的内容每一行为一个子类全名,这个文件必须放在ME...

2014-08-22 17:41:43 607

原创 HDFS备忘

HDFS文件系统 一、HDFS设计    HDFS为hadoop的核心组件,为hadoop底层的文件存储系统。它通常运行在商用硬件集群上,用来存储超大文件、大规模文件。    1、超大文件    "超大文件"是指具有数百MB、数G甚至数T大小的文件;HDFS设计为了存储大量“超大文件”。    2、流式数据访问    HDFS的文件为“一次写入”、“多次读取”,这种高...

2014-08-21 17:41:24 99

原创 YARN指令[官网整理]

【YARN指令(2.2+)】 1、jar:运行jar    “yarn jar <jar-path> [mainClass] args”2、application:操作application(job)    “yarn application <options>”,其中可选的options有:    -status <appliationId...

2014-08-20 14:23:57 206

原创 YARN-FairScheduler[官网整理]

【YARN-FairScheduler(2.2+)】    本文档介绍FairScheduler,一个hadoop Scheduler,在大规模集群中允许YARN中的applications公平的共享集群资源。 一、介绍    FairScheduler是一个资源分配方式,在整个时间线上,所有的applications平均的获取资源。Hadoop NextGen能够调度多种类型...

2014-08-20 11:59:26 178

原创 YARN-CapacityScheduler[官网整理]

【YARN-CapacityScheduler】    此文档描述CapacityScheduler,一个hadoop支持的可插拔的scheduler,它允许“multiple-tenants”(多租户)安全的共享集群资源,所以它们的applications在容量限制之下,可以及时的分配资源。 一、Overview    CapacityScheduler被设计成以“share...

2014-08-19 16:24:35 213

原创 YARN架构[官网整理]

【MapReduce Yarn架构(2.2+)】    Mapreduce经过hadoop-0.23的修正之后,有了新的框架Mapreduce 2.0(MRv2),或者成为YARN。    MRv2的基本思想就是将JobTracker的两个功能拆分成resourceManager和job Scheduling/monitoring两个独立的守护进程。这个思想是有一个全局的Resource...

2014-08-18 16:06:35 345

原创 HDFS Quotas[官网整理]

【HDFS Quotas(2.2+)】    HDFS允许管理员对各个目录设定文件的个数(name quotas)或者空间使用(space quotas)总量。其中“name quotas”和“space quotas”可以分别设定。 一、Name Quotas    Name Quota是一个硬性限制,用来控制目录下文件或者子目录的个数。如果超过了设定的quota,那么创建文件...

2014-08-18 13:44:54 230

原创 HDFS架构[官网整理]

【HDFS Architecture(2.2+)】    HDFS是一个分布式文件系统,可以运行在廉价的商用机器上。它与现有的其他分布式文件系统有很多相似之处,当然也有很多不同之处。HDFS具有较高的容错性,适用于存储较大集合的数据,并能够支撑较高的吞吐能力。HDFS放宽了一些POSIX要求,以能够流式的访问数据。  一、硬件故障    硬件故障是常见的,而不是例外;一个H...

2014-08-16 16:21:57 205

原创 HDFS Snapshot[官网整理]

【HDFS Snapshot(2.2+)】HDFS Snapshot是文件系统在某一时间点的只读的备份,Snapshot可以针对文件系统的子树或者整个文件系统。Snapshot的通常用法是做数据backup,以避免用户错误和灾难恢复。       HDFS Snapshot实现是高效的:    1、Snapshot的创建是瞬间完成:除了节点遍历耗时之外,其创建的开销为O(1)。...

2014-08-14 17:40:08 886

原创 HDFS Federation[官网整理]

【HDFS Federation(2.2+)】 一、Background    HDFS数据存储主要有两层:    1、 Namespace,包含“目录”、“文件”、“blocks”信息,支持所有的与namepace相关的文件系统的操作,例如目创建、删除、修改,以及对目录文件的列表操作。    2、Block存储服务:        A) Block管理:Namenode...

2014-08-13 16:56:03 126

空空如也

空空如也

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

TA关注的人

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