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

原创 关于HFile的思考

0.90.x版本的HBase中的文件是存储在HFile中的。关于HFile文件的详细介绍,可以查看这篇文章:http://www.data-works.org/download/hfile.pdf这篇文章中介绍了以下五点内容:HFile的作用。HFile的格式

2011-07-05 23:11:26 2547

原创 深入Redis,读redis-from-the-ground-up有感

<br />网上有一篇介绍Redis的文章,由浅入深地讲解了Redis:http://blog.mjrusso.com/2010/10/17/redis-from-the-ground-up.html。强烈建议对Redis有兴趣或需要使用的朋友阅读这篇文章。<br />提到Redis,第一反应就是内存k/v缓存,并且很多人会拿它与Memcached相比较,毕竟他们都是以内存作为存储介质的。 如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:<br />1  Redis不仅仅支持简单

2010-10-21 14:32:00 3256 1

原创 如何用好NoSQL?Database-as-a-Service

<br />为什么说NoSQL重要<br />SQL语言和关系型数据库(MySQL,PostgreSQL,Oracle,等等)是通用的数据解决方案,占用绝大多数的市场。不过在最近兴起的NoSQL运动中,涌现出来了一批具备高可用性,支持线性扩展,支持Map/Reduce操作等等特性的数据产品,它们具有如下特性:频繁的写入操作,相对较少的读取统计信息的操作(比如一个web访问计数器)应该使用基于内存的key/value存储系统,比如Redis,或者是具备本地更新特性的文档存储系统,如MongoD

2010-10-20 23:24:00 4156 14

原创 MongoDB的内部构造 From 《MongoDB The Definitive Guide》

今天下载了《MongoDB The Definitive Guide》电子版,浏览了里面的内容,还是挺丰富的。是官网文档实际应用方面的一个补充。和官方文档类似,介绍MongoDB的内容是少之又少,只有在附录的一个章节中介绍了相关内容。对于大多数的MongoDB的用户来说,MongoDB就像是一个大黑盒,但是如果你能够了解到MongoDB内部一些构造的话,将有利于你更好地理解和使用MongoDB。BSON在MongoDB中,文档是对数据的抽象,它被使用在Client端和Server端的交互中。所有的Clien

2010-10-04 12:20:00 1294

原创 Java分布式内存开源实现:Hazelcast

Hazelcast是一个Java的开源分布式内存实现,它具有以下特性:01    Distributed implementations of java.util.{Queue, Set, List, Map}02    Distributed implementation of java.util.concurrent.ExecutorService03    Distributed implementation of java.util.concurrency.locks.Lock04    Distr

2010-09-26 15:19:00 2730 1

原创 Cassandra-0.7.0-beta1中的新特性

<br />前一阵子Cassandra-0.7.0-beta1发布了,今天把代码拿下来粗略浏览了一下,发现主要有以下几点变化:<br /><br /><br />1 数据模型中的Keyspace和ColumnFamily可以动态修改:<br />之前的版本中,如果想在Cassandra中修改Keyspace和ColumnFamily,必须先停掉Cassandra,然后修改配置文件,最后再重启Cassandra才能生效。<br />在现在的版本中,我们只需要定义新的Keyspace和ColumnFamily,

2010-08-20 14:15:00 2625 1

原创 Cassandra集群数据初始化方案的构想

<br />一个Cassandra集群需要投入时候,绝大多数时候都是会有初始化数据的,比如博客网站中所有的博客数据,数据分析网站中所有的网页信息,电子商务网站中所有的商品信息等等。这些初始化数据往往量的都非常大,不适用直接使用Thrift API的方式(谈谈Cassandra的客户端)直接导入。Facebook曾经使用了叫做BinaryMemTable的方式导入(使用Binary Memtable将大量数据导入Cassandra)。<br />我们在集群中安装Hadoop和Cassandra,假设我们需要初

2010-07-03 14:15:00 1915 1

原创 使用RingCache提高Cassandra读写效率

<br />我们在之前的文章(谈谈Cassandra的客户端)中讲解了如何在Client端查询Cassandra中的数据。为什么要使用RingCache<br />Cassandra的内部读写流程大概是这样的:<br />1 Client端先随机找到Cassandra集群中的一台机器,然后将查询请求发送给这台Cassandra机器。<br />2 接收到查询请求的Cassandra机器会判断需要查询的数据是否在本机中:如果在本机中,直接查询;如果不在本机中,将请求转发给另外一台机器来查询,并等待另外一台机器

2010-06-23 23:17:00 1217

原创 Cassandra的限制

<br />大家在使用Cassandra的时候,往往容易忽视Cassandra本身的限制。<br />在Wiki中,我们可以看到Cassandra的限制:CassandraLimitationsCassandra的设计限制<br />这一类限制是在当前的体系架构中无法改变的。<br />每一个key对应的value不能超过磁盘本身的容量限制。<br />这是因为Cassandra是将每一个key对应的value存储在本地磁盘上面的,所以当某一个key对应的vaule的大小超过了本地磁盘的容量上限,那么当Ca

2010-06-19 15:14:00 1096

原创 在Eclipse中开发Cassandra

<br />在之前的文章中,我们讲解了Cassandra如何安装于配置:如何安装和配置Cassandra<br />在这篇文章中,我们将从svn中下载Cassandra的源代码,完成编译,并执行相应的单元测试。配置环境<br />1 安装jdk6,ant。<br />2 安装Eclipse3.5<br />3 在Eclipse中安装http://subclipse.tigris.org/update_1.6.x<br />在Eclipse的菜单选择:Help –> Install New Software<

2010-06-06 16:15:00 1402

原创 Hadoop基本操作命令

<br /><br />Hadoop基本操作命令<br /> <br />在这篇文章中,我们默认认为Hadoop环境已经由运维人员配置好直接可以使用。<br />假设Hadoop的安装目录HADOOP_HOME为/home/admin/hadoop。启动与关闭启动Hadoop<br />1.         进入HADOOP_HOME目录。<br />2.         执行sh bin/start-all.sh关闭Hadoop<br />1.         进入HADOOP_HOME目录。

2010-06-04 16:05:00 2002

原创 整合Cassandra与Hadoop MapReduce

<br />看到这个标题,大家一定会问了。这个整合如何定义?<br />我个人认为,所谓的整合是指:我们可以编写MapReduce程序,从HDFS中读取数据然后插入到Cassandra中。也可以是直接从Cassandra中读取数据,然后进行相应的计算。从HDFS中读取数据然后插入到Cassandra中<br />对于这种类型,我们可以按照以下几个步骤来操作。<br />1 将需要插入Cassandra的数据上传到HDFS中。<br />2 启动MapReduce程序。<br />这种类型的整合其实和Cass

2010-06-01 16:19:00 3072 4

原创 介绍Cassandra中的压缩

在《如何安装和配置Cassandra》中,我们可以在DataFileDirectories中配置数据的存放位置。 当Cassandra启动后,向其中插入的数据就会放在DataFileDirectories的目录下,如图: 这里有2个Column Family,分别是Standrad1,Super1。 大家可以想象,如果没有压缩功能的话,那么随着数据量的增加,DataFileD

2010-05-27 23:11:00 2379 4

原创 反转Cassandra索引

问题 通过前面的文章:《谈谈Cassandra的客户端》和《大话Cassandra数据模型》我们已经了解了Cassandra的数据模型和编程接口的情况。 假如我们在实际的应用中我们的数据是这样保存的: 每一个key对应了一些列的Column:port,Version,Service,Status等等。 通过某一个key,我们能够找到和这个key相关的所有Column的值。

2010-05-26 08:14:00 819

原创 为什么在Cassandra版本0.6.1中不适合使用Binary Memtable的方式导入大量的数据。

在上一篇文章《使 用Binary Memtable将大量数据导入Cassandra》中,讲解了如何使用Binary Memtable将大量数据导入Cassandra。这一周一直在看如果使用Binary Memtable的方式导入大量的数据。今天看下来,我还是觉得在目前这个版本不适合使用这种方式去导入数据。 原因如下: 在0.6+的版本中,Cassandra集群中取消了UDP通信

2010-05-21 18:14:00 719

原创 使用Binary Memtable将大量数据导入Cassandra

在这篇《谈谈Cassandra的客户端》文章中,我们谈到了如何使用Thrift API以及更加高级的封装(Hector)如果将数据导入到到Cassandra中,但是在导入大量数据的时候这会遇到很多的问题,比如插入失败,超时等等问题。为了解决这个问题,我们可以尝试使用Binary Memtable。 在Cassandra的wiki上,对Binary Memtable的描述如下:

2010-05-17 20:14:00 792

原创 MapReduce的优点

MapReduce在处理数据方面的优点如下: 第一, 这个模型非常方便使用,即使是对于完全没有分布式程序的程序员也是如此。它隐藏了并行计算的细节,错误容灾,本地优化以及负载均衡。MapReduce运行开发人员使用自己熟悉的语言进行开发,如Java,C#,Python,C++等等。 第二, 对于大型的计算需求使用MapReduce可以非常轻松的完成。 比如说, Google使用MapReduc

2010-04-28 15:57:00 2120

原创 如何安装和配置Cassandra

Cassandra属于最近比较流行的一款NoSQL数据库,http://nosql-database.org/中给NoSQL的定义如下: 下一代的数据库产品应该具备这几点:非关系型的,分布式的,开源的,可以线性扩展的。这类数据库最初的目的在于提供现代网站可扩展的数据库解决方案。这个运动开始于2009年初,目前正在迅速的发展。这种类型的数据库具有:自由的schema,数据多处备份,简单的编程API

2010-03-27 22:12:00 5162 9

原创 谈谈Cassandra的客户端

最近试用了一段时间Cassandra,将Oracle中的数据导入进来,遇到了问题然后解决问题,收获挺大。在这个过程中,除了设计一个合理的数据模型,再就是使用Cassandra API进行交互了。Cassandra在设计的时候,就是支持Thrift的,这意味着我们可以使用多种语言开发。对于Cassandra的开发本身而言,这是使用Thrift的好处:支持多语言。坏处也是显而易见的:Thrif

2010-03-23 17:13:00 4012

原创 基于Cassandra搭建简单Blog程序后台

在上一篇博客《大话Cassandra数据模型》中,我们讲解了Cassandra的数据模型。在这篇博客中,我们将基于Cassandra搭建一个简单的Blog程序后台。 需求 Blog程序的需求如下: 1 允许不同的用户写Blog。 2 Blog内容包括:标题,内容,ID,发布日期。 3 每一篇Blog可以打上任意多个Tag。 4 人们可以在Blog上留言,内容包括:留言内

2010-03-16 23:32:00 1812 1

原创 大话Cassandra数据模型

Cassandra是一个开源的分布式数据库,结合了Dynamo的Key/Value与Bigtable的面向列的特点。 Cassandra的特点如下: 1.灵活的schema:不需要象数据库一样预先设计schema,增加或者删除字段非常方便(on the fly)。 2.支持range查询:可以对Key进行范围查询。 3.高可用,可扩展:单点故障不影响集群服务,可线性

2010-03-12 11:16:00 1226

原创 使用Hive的web界面:HWI

HWI是Hive Web Interface的简称,是hive cli的一个web替换方案。 关于如何搭建Hive平台,可以参考:搭建Hive平台 但是目前这个功能做的比较简陋,这篇文章我们一起来看看如何使用hive-0.4.1中自带的hwi来进行操作。 打开HWI 假设hive部署在10.20.151.7机器上,conf/hive-default.xml文件都是默认值,那么我们

2010-02-25 15:17:00 3998 1

原创 搭建Hive平台

Hive是一个基于Hadoop的数据仓库平台。通过hive,我们可以方便地进行ETL的工作。hive定义了一个类似于SQL的查询语言:HQL,能够将用户编写的QL转化为相应的Mapreduce程序基于Hadoop执行。 本文讲解如何搭建一个Hive平台。假设我们有3台机器:hadoop1,hadoop2,hadoop3。并且都安装好了Hadoop-0.19.2(hive支持的Hadoo

2010-02-24 14:19:00 767

原创 Java中的异常

Java异常是我们编程中时时刻刻都要使用的特性,但是我们却很少去关注它细节的一些信息。 Exception架构 所有的异常都是派生至Throwable,最主要的2个继承类是Exception和Error。 我们常说的异常都是指Exception,Exception分为Check Exception和Unchecked Exception。 JDK文档中对Error中解释是:

2010-02-02 14:54:00 694

原创 使用CapacityTaskScheduler

Hadoop的版本为0.19.2 关于这个调度的详细介绍,可以参考:http://hadoop.apache.org/common/docs/r0.19.2/capacity_scheduler.html 本文只介绍如何搭建一个CapacityTaskScheduler的系统。 在Master机器上执行如下操作: 1 将contrib/capacity-scheduler/had

2010-01-27 21:54:00 643

原创 揭秘Google Adwords API

搭建一个在线广告营销系统,离不开第三方的支持。而使用第三方提供的API,是一个非常不错的解决方案。 Google提供的Adwords API是一个跨语言的,支持基本所有的主流编程语言。 本文分为四个部分,首先讲解Adwords API是如何做到跨语言的;然后分别讲解Java版本的Client是如何工作的,以及作为开发人员,如何改进和扩展这个API;最后讲解我们在实际的应用中,都遇到了

2010-01-26 14:55:00 1040

原创 如何停止java线程

如何停止java的线程一直是一个困恼我们开发多线程程序的一个问题。这个问题最终在Java5的java.util.concurrent中得到了回答:使用interrupt(),让线程在run方法中停止。 简介 在Java的多线程编程中,java.lang.Thread类型包含了一些列的方法start(), stop(), stop(Throwable) and suspend(), destro

2010-01-18 00:52:00 2493 6

原创 初识ZooKeeper

Hadoop下面的子项目ZooKeeper是一个用于协调分布式程序的服务。我们可以利用它来保证各个机器之间的数据同步。单机环境运行ZooKeeper1 下载ZooKeeper:http://labs.xiaonei.com/apache-mirror/hadoop/zookeeper/zookeeper-3.2.2/zookeeper-3.2.2.tar.gz2 解压。3

2010-01-15 13:50:00 2272 2

原创 Java多线程编程中的Synchronized

Synchronized,顾名思义,代表多个线程之间的同步。那么,在java编程中如何使用它呢?我们假设这样一个情况:对于同一个变量synDemo,我们分别在2个不同的线程中调用synDemo.synMethord1()与synDemo.synMethord2()。package com.cnblogs.gpcuster;/** * * @author Aaron.Guo

2010-01-09 23:34:00 651 1

原创 在Java中使用NIO进行网络编程

在JDK中,有一个非常有意思的库:NIO(New I/O)。这个库中有3个重要的类,分别是java.nio.channels中Selector和Channel,以及java.nio中的Buffer。本篇文章我们首先了解一下为什么需要NIO来进行网络编程,然后看看一步一步来讲解如何在网络编程中使用NIO。为什么需要NIO使用Java编写过Socket程序的同学一定都知道Socket和

2009-12-27 14:53:00 4191 5

原创 对搜狗云输入法的胡思乱想

今天偶然间发现了一个有意思的东西:搜狗云输入法。 使用首先我们来看看如何安装和使用:进入主页http://pinyin.sogou.com/cloud/,我们可以看到下面的介绍:  其实图中已经说得很明白了,如果你仔细看的话:)但是我还是看了2分钟才明白是什么意思,所以我这里在简单重复一下步骤:点击我用红圈标记起来的东西,存为书签。 在要输入

2009-11-16 00:24:00 1144

原创 在Hadoop中使用MRUnit进行单元测试

本文地址:博客园 逖靖寒 http://gpcuster.cnblogs.com前提 1. 了解JUnit4.x的使用。2. 了解Mock的概念在单元测试中的应用。3. 了解Hadoop中MapReduce的编程模型。如果您对Junit和Mock不了解,可以先阅读[翻译]Unit testing with JUnit 4.x and EasyMock in Eclipse

2009-10-05 09:14:00 3434

原创 [翻译]Unit testing with JUnit 4.x and EasyMock in Eclipse - Tutorial

原文地址:http://www.vogella.de/articles/JUnit/article.html本文地址:博客园 逖靖寒 http://gpcuster.cnblogs.com译文:在Eclipse中使用Junit4.x与EasyMock进行单元测试摘要这篇文章简单讲解了如何在Eclipse中利用Junit 4.x和EasyMock进行单元测试。当你阅读

2009-10-05 09:11:00 1005

原创 [翻译]HbaseArchitecture

<!--var search_hint = "Search";//--> HBase架构 原文地址:http://wiki.apache.org/hadoop/Hbase/HbaseArchitecture 本文来自 博客园 逖靖寒 http://gpcuster.cnblogs.com关于HBase,有一篇非常容易入门的

2009-09-24 21:36:00 751

原创 [翻译]Using Hadoop IPC/RPC for distributed applications

在分布式应用程序中使用Hadoop IPC/RPC 原文地址:http://www.supermind.org/blog/520/using-hadoop-ipcrpc-for-distributed-applications 本文来自于:http://gpcuster.cnblogs.com   译文: 关于Hadoop IPC 我们一起来了解Hadoop IPC,这是一个

2009-09-06 20:36:00 787

原创 [翻译]Log Everything All the Time

前言: 本文翻译来自 Log Everything All the Time,其中个人省略了少量内容,如果有需要,请阅读原文。本文来自 博客园 逖靖寒 http://gpcuster.cnblogs.com   译文: 本次的JoelOnSoftware 问答活动中,提到了一个古老的问题,什么是log以及如何去log。平常的trace/error/warning/info方式在大

2009-08-29 14:36:00 423

原创 Logging的基本概念与log4j

Logging的基本概念        1 Logging是一个调试程序最基本的方法。        2 Logging可以被当作一个审计工具。 那么,Logging和我们熟悉的Debugging(调试工具)相比较,有什么不同呢?        1 Debugger在多线程和分布式的环境中并不总是可用的。        2 Debugger的信息是临时的,而Logging记

2009-08-29 12:36:00 575

原创 深入剖析Hadoop程序日志

  前提 本文来自于 博客园 逖靖寒的世界 http://gpcuster.cnblogs.com 了解log4j的使用。   正文 本文来自于 博客园 逖靖寒的世界 http://gpcuster.cnblogs.com *.log日志文件和*.out日志文件 进入我们的Hadoop_LOG目录,我们可以看到如下文件:   在启动Hadoop集群时,由hadoop-

2009-08-21 21:36:00 2975 2

原创 Hadoop初体验

今天是接触Hadoop的第十天。 十天下来,让我对分布式计算有了一次初体验,It’s cool :) 本文来自逖靖寒:http://gpcuster.cnblogs.com 我们主要使用Hadoop的2个部分:分布式文件存储系统(HDFS)和MapReduce计算模型。 关于这2个部分,可以参考一下Google的论文:The Google File System 和 MapR

2009-07-31 23:36:00 1438

原创 xdebug远程调试原理分析

Normal 0 7.8 pt 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetE

2009-05-29 20:36:00 729

空空如也

空空如也

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

TA关注的人

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