自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ZOOKEEPER的作用【转】

一、什么是Zookeeper ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig)  的管理员, Apache Hbase和 Apache Solr 以及LinkedIn sensei  等项目中都采用到了 Zookeeper。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper是以Fast...

2014-10-22 16:23:36 185

原创 Thrift架构~动态Thrift插件的注入

先说AOP说到注入,大家就会想起来IoC和AOP,确实如些,这一讲中,我们通过unity来实现对thrift插件的动态注入,事实上,这个功能在以后的项目中经常要用到,比如,你将一些功能分发到指定服务器,而这些服务器的功能是可以动态调整的,每台服务器的插件功能都不相同,这时,如果你有新的插件开发好后,如果不使用AOP的思想,那简直就是灾难!试想,有100个客户端的程序,你将会把新的程序和插件一...

2014-08-02 14:19:20 229

原创 如何在windows下使用git及github仓库管理项目

第一,下载并安装git目前windows版本的git有几种实现,但我们选择msysgit发行版,这是目前做得兼容性最好的。下载地址:http://code.google.com/p/msysgit/downloads/list使用默认配置安装Git。这个不用多说,一路Next就可以,如果对各种选项不熟悉,建议使用默认配置,没问题的。 第二,创建github账号什么是Gi...

2014-08-02 14:16:36 187

原创 slf4j 使用介绍

很偶然的机会,发现了slf4j。同事在引入的其他包与现存的log4j产生冲突,只要加入这些包,原来的log4j就会失去作用,原来能够打印的日志,现在都不输出了。一时不知道该怎么办。后来在仔细查看日志,发现打印出来的信息有slf4j加载失败的信息。所以到网上搜索。可是,如果就加入某个包,是如何影响我的log输出的呢? SLF4J,即简单日志门面(Simple Logging Facad...

2014-07-31 09:18:23 115

原创 Thrift的一些总结(Java开发)

 Client的开发顺序为: 1、定义Tsocket 2、将Socket包装到Transport(记得Transport要open() ) 3、将Transport包装进Protocol 4、将Protocol包装到Client 5、调用Client的函数 6、最后关闭Transport 总之,Client就是“一步一步包进去“的过程...

2014-07-31 08:55:58 111

原创 Thrift入门试用

 在新的项目中公司在平台内部系统间使用Thrift通讯,都没有听说过。然后听同事说,是跨语言Socket通讯的开源组件。 功能及特点 1.跨平台和语言的Socket通讯组件。 2.根据伪代码的结构语言定义对象和服务结构,然后生成各语言的代码和接口 3.各语言根据组件提供的库,编写客户端和服务器端程序。服务器端实现接口并编写业务逻辑。 4.服务器端支持多...

2014-07-30 19:43:22 127

原创 转-redis搭建实战记录

Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can containstrings, hashes, lists, sets and sorted sets.   -- from http://redis....

2014-07-11 00:46:10 81

原创 【转载】Hive 数据倾斜总结

转载:http://www.tbdata.org/archives/2109几个比较特殊的点都提到了,大家可以作为参考。 在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平均值,而由于数据倾斜的原因造成map处理数据量的差异过大,使得这...

2014-07-04 16:36:15 86

原创 HBase 和 MongoDB在设计上的区别

总体来说两者的设计思路差不多,主要就是通过划区间去分布数据,后台进程进行数据分裂两者的区别主要在于: 1、HBase依赖于HDFS;MongoDB直接存储在本地磁盘中 2、HBase按照列族将数据存储在不同的文件中;MongoDB不分列,整个文档都存储在一个(或者说一组)文件中,通过一个有一个通用的.ns文件保存名称空间(Column-based和Document-Based之间的区...

2014-07-02 14:26:39 94

原创 深入理解Bloom Filter

Bloom Filter是1970年由Bloom提出的,最初广泛用于拼写检查和数据库系统中。近年来,随着计算机和互联网技术的发展,数据集的不断扩张使得 Bloom filter获得了新生,各种新的应用和变种不断涌现。Bloom filter是一个空间效率很高的数据结构,它由一个位数组和一组hash映射函数组成。Bloom filter可以用于检索一个元素是否在一个集合中,它的优点是空间效率和查询...

2014-06-23 14:33:52 97

原创 Java程序性能优化总结补充

数值表达式 1. 奇偶判断 不要使用 i % 2 == 1 来判断是否是奇数,因为i为负奇数时不成立,请使用 i % 2 != 0 来判断是否是奇数,或使用 高效式 (i & 1) != 0来判断。 2. 小数精确计算 System.out.println(2.00 -1.10);//0.8999999999999999上面的计算出的结果不是 0.9,而是一连串的小数。问题在...

2014-06-14 20:06:26 93

原创 Java程序性能优化总结

一、避免在循环条件中使用复杂表达式 在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。 例子: import java.util.vector;class cel { void method (vector vector) { for (int i = 0; i < vector.s...

2014-06-14 19:26:53 70

原创 hive sql 优化

Hive是将符合SQL语法的字符串解析生成可以在Hadoop上执行的MapReduce的工具。使用Hive尽量按照分布式计算的一些特点来设计sql,和传统关系型数据库有区别,所以需要去掉原有关系型数据库下开发的一些固有思维。 基本原则:1:尽量尽早地过滤数据,减少每个阶段的数据量,对于分区表要加分区,同时只选择需要使用到的字段select ... from Ajoin...

2014-06-12 15:12:31 116

原创 hadoop-集群管理(1)——配置文件

 1. 配置文件列表如下:[tianyc@Route conf]$ pwd/home/tianyc/hadoop-1.0.4/conf[tianyc@Route conf]$ ll总用量 76-rw-rw-r--. 1 tianyc NEU 7457 3月 6 10:38 capacity-scheduler.xml-rw-rw-r--. 1 tianyc NEU 535 3月 ...

2014-06-12 11:53:23 105

原创 hadoop-集群管理(2)——内存设置

 1. 内存hadoop为各个守护进程(namenode,secondarynamenode,jobtracker,datanode,tasktracker)统一分配的内存在hadoop-env.sh中设置,参数为HADOOP_HEAPSIZE,默认为1000M。大部分情况下,这个统一设置的值可能并不适合。例如对于namenode节点,1000M的内存只能存储几百万个文件的数...

2014-06-12 11:52:46 95

原创 hive与hbase的十大区别与联系

共同点:1.hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层存储区别:2.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。3.想象你在操作RMDB数据库,如果是全表扫描,就用Hive+Hadoop,如果是索引访问,就用HBase+Hadoop 。4.Hive quer...

2014-06-12 10:35:05 122

原创 Hadoop学习总结

 Hadoop是什么东西?什么用? (一) Hadoop是什么?   一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。Hadoop框架中最核心设计就是:HDFS和MapReduce,HDFS实现存储,而MapReduce实现原理分析处理,这两部分是hadoop的核心。数据在Hadoop中处理的流程可以...

2014-06-10 00:18:03 294

原创 simple-spring-memcached简介

memcached是一款非常优秀的分布式缓存工具,有效提升了按主键检索数据的性能问题。而simple-spring-memcached组件通过与spring框架整合,让memcached的调用变得更加简单。simple-spring-memcached本质上是采用了AOP的方式来实现缓存的调用和管理,其核心组件声明了一些Advice,当遇到相应的切入点时,会执行这些Advice来对memcach...

2014-06-07 17:24:00 85

原创 分布式缓存的心得

由于工作需要,2年前开始接触分布式的缓存 -- memcache。2年过去了,memcahce也发展了不少,同时也出现许多新星--TT、redis。但万变不离其宗,现将心得总结如下。 先说最早的memcache       这个东西感觉就是个BDB的内存版,就因为是纯内存的程序,所以性能异常的高。现在好像有自己的主页了(http://memcached.org/),记得最早的时候就...

2014-06-07 17:10:53 111

原创 AWK命令详解(大全)

什么是awk? 你可能对UNIX比较熟悉,但你可能对awk很陌生,这一点也不奇怪,的确,与其优秀的功能相比,awk还远没达到它应有的知名度。awk是什么?与其它大多数UNIX命令不同的是,从名字上看,我们不可能知道awk的功能:它既不是具有独立意义的英文单词,也不是几个相关单词的缩写。事实上,awk是三个人名的缩写,他们是:Aho、(Peter)Weinberg和(Brain)Kernighan。...

2014-05-23 00:52:35 105

原创 Java变量以及内存分配(非常重要)

 不知道是第几次看thinking in java了。不是的翻翻总有新的收获。堆栈静态存储区域一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的...

2014-05-23 00:35:31 236

原创 Java基础问题:java.lang.String - intern()

原文: http://forum.javaeye.com/viewtopic.php?t=17912搂主的问题问的含含糊糊:flyjie给出了非常详细的解释,不过就是没有解释String实例化的特殊方面以及Intern()方法的含义-----------------------------------------------------------------------------------...

2014-05-23 00:16:18 101

原创 java的字符串常量池(转)

http://www.cnblogs.com/brokencode/archive/2011/08/24/2151450.htmltest1:package StringTest;public class test1 {/*** @param args*/public static void main(String[] args){String a = "a1";String...

2014-05-23 00:15:41 57

原创 UML类图几种关系的总结

 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)         1. 泛化(Generalization)        【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父...

2014-05-21 14:02:07 68

原创 UML类图关系大全

UML类图关系大全1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到,关联一般都是有向的。使...

2014-05-21 14:00:23 68

原创 ZooKeeper实现分布式队列Queue

ZooKeeper实现分布式队列Queue让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户提供存储和计算的服务。现在硬件越来越便宜,一台非品牌服务器,2颗24核CPU,配48G内存,2T的硬盘,已经降到2万块人民币以下了。这种配置如果简单地放几个web应用,显然是奢侈的浪费。就算是用来实现单节点的hadoop,对...

2014-05-20 17:46:03 75

原创 ZooKeeper编程

ZooKeeper编程杂记ZooKeeper的用途:distributed coordination;maintaining configuration information, naming, providing distributed synchronization, and providing group services.Zookeeper的节点都是存放在内存中的...

2014-05-20 17:08:55 91

原创 ZooKeeper示例 分布式锁

[转载]作者和原文链接,  场景描述在分布式应用, 往往存在多个进程提供同一服务. 这些进程有可能在相同的机器上, 也有可能分布在不同的机器上. 如果这些进程共享了一些资源, 可能就需要分布式锁来锁定对这些资源的访问.本文将介绍如何利用zookeeper实现分布式锁.思路进程需要访问共享数据时, 就在"/locks"节点下创建一个sequence类型的子节点, 称为this...

2014-05-20 17:02:15 76

原创 并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法

在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么叫线程安全?这个首先要明确。线程安全就是说多线程访问同一代码,不...

2014-05-20 13:29:56 54

原创 me_nginx+tomcat+memcached实现session共享配置过程

 说明所有的配置以及软件都是在windows环境下进行的,都是用自己的电脑做服务器。要解决的问题在tomcat集群环境下的session共享 、缓存共享、 负载均衡。解决方案的选择 多个tomcat要一起协同工作有几种办法,可以考虑的方案有以下几个:1.       使用tomcat自带的cluster方式,多个tomcat间自动实时复制session信息,配置起...

2014-05-15 00:43:11 88

原创 转--深入理解Java内存模型—锁

锁的释放-获取建立的happens before 关系锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。下面是锁释放-获取的示例代码:class MonitorExample { int a = 0; public synchronized void writer() { //1 ...

2014-05-14 00:57:37 75

原创 java内存溢出和内存泄露

 虽然jvm可以通过GC自动回收无用的内存,但是代码不好的话仍然存在内存溢出的风险。最近在网上搜集了一些资料,现整理如下: —————————————————————————————————————————— 一、为什么要了解内存泄露和内存溢出? 1、内存泄露一般是代码设计存在缺陷导致的,通过了解内存泄露的场景,可以避免不必要的内存溢出和提高自己的代码编写水平...

2014-05-14 00:55:14 76

原创 Java 内存模型及GC原理

一个优秀Java程序员,必须了解Java内存模型、GC工作原理,以及如何优化GC的性能、与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能。本文将从JVM内存模型、GC工作原理,以及GC的几个关键问题进行探讨,从GC角度提高Java程序的性能。 一、Java内存模型 按照官方的说法:Java ...

2014-05-14 00:53:46 116

原创 ZooKeeper的锁、同步和队列分析

集群管理结构图 清单 3. Leader Election 关键代码                                void findLeader() throws InterruptedException {         byte[] leader = null;         try {             leader = z...

2014-05-12 17:20:03 184

原创 Hadoop分布式文件系统:架构和设计要点

转一篇关于Hadoop系统架构设计的文章,作者翻译的不错,其英文原文是理解Hadoop的经典文章。原文出处:http://www.blogjava.net/killme2008/archive/2008/06/05/206043.html Hadoop分布式文件系统:架构和设计要点原文:http://hadoop.apache.org/core/docs/current/hdfs...

2014-05-10 19:12:22 124

原创 【转】一致性 hash 算法( consistent hashing )

 consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢,你很可能会采用类似下面的通用方法计算 obje...

2014-05-10 19:10:47 79

原创 Java多线程中join方法的理解

thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。t.join();      //使调用线程 t 在此之前执行完毕。t.join(1000);  //等待 t 线程,等待时间是1000毫秒 先上一段JDK中代码:Java代码  ...

2014-05-10 00:45:53 68

原创 深入Java虚拟机JVM类加载初始化学习笔记

1. Classloader的作用,概括来说就是将编译后的class装载、加载到机器内存中,为了以后的程序的执行提供前提条件。2. 一段程序引发的思考:风中叶老师在他的视频中给了我们一段程序,号称是世界上所有的Java程序员都会犯的错误。诡异代码如下:package test01; class Singleton { public static Singl...

2014-05-08 17:18:24 64

原创 Code Review中的几个提示

原文:http://coolshell.cn/?p=1302  酷壳  Code Review中的几个提示陈皓 Code Review应该是软件工程最最有价值的一个活动,之前,本站发表过《简单实用的Code Review工具》,那些工具主要是用来帮助更有效地进行这个活动,这里的这篇文章,我们主要想和大家分享一下Code Review代码审查的一些心得。首先,我们先来看...

2014-05-07 17:41:28 83

原创 【转】Hbase原理、基本概念、基本架构

目录(?)[-]概述Hbase数据模型Hbase物理模型HBase架构及基本组件Hbase使用场景Hbase与HDFS对比参考文档 概述HBase是一个构建在HDFS上的分布式列存储系统;HBase是基于Google BigTable模型开发的,典型的key/value系统;HBase是Apache Hadoop生态系统中的重要一员...

2014-05-06 15:59:54 96

空空如也

空空如也

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

TA关注的人

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