- 博客(85)
- 资源 (17)
- 收藏
- 关注
原创 HBase-put写操作源码分析
Hbase Put流程1.客户端提起请求HTable.put();|-->writeBuffer.add(put); |刷入内存缓存,可设置实时生效|-->线程池提交|-->for (Entry> e: actionsByServer.entrySet()) |-->futures.put(e.getKey(), pool.submit(cre
2013-10-12 15:34:58
1987
原创 KMP
package com.blog;public class KmpTest { public static void main(String[] args) { //BBC ABCDAB ABCDABCDABDE //ABCDABD char[] parent = new String("BBC ABCDAB ABCDABCDABDE").toCharArray(); ch
2013-07-27 00:50:21
799
转载 Java关键字transient和volatile小结(转)
transient和volatile两个关键字一个用于对象序列化,一个用于线程同步,都是Java中比较高阶的话题,简单总结一下。transienttransient是类型修饰符,只能用来修饰字段。在对象序列化的过程中,标记为transient的变量不会被序列化。示例:class Test {transient int a; // 不会被持久化in
2013-07-03 15:00:10
11210
1
转载 java动态代理(JDK和cglib)
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为
2013-07-02 16:00:00
1014
原创 Hadoop Configuration 加载资源文件
Configuration 的loadResources()方法 (采用lazy加载)1.解释了为什么会加载一些默认文件(*.site.xml)2.测试了一下用file的方式去读取hdfs文件,不行 else if (name instanceof Path)中,会转换为本地文件,最后变成d:\\hdfs地址 linux下也试了一下,同样是不行的,这种
2013-04-27 17:16:12
2165
1
原创 Hadoop Configuration使用
Configuration 的loadResources()方法 (采用lazy加载)1.解释了为什么会加载一些默认文件(*.site.xml)2.测试了一下用file的方式去读取hdfs文件,不行 else if (name instanceof Path)中,会转换为本地文件,最后变成d:\\hdfs地址 linux下也试了一下,同样是不行的,这种
2013-04-27 17:14:55
170
原创 Hadoop升级方案
1.bin/hadoop dfsadmin -finalizeUpgrade |清理之前的备份 2.hadoop dfsadmin -upgradeProgress status |查看更新状态3.拷贝 3.1:u4的conf文件拷贝至u6的conf文件中 3.2:bin目录下修改迁移: hadoop-deamon.sh中log4j的配置修改
2013-04-24 17:08:04
1368
原创 Hadoop内存管理及cpu管理
Hadoop目前较新版本的内存管理(含cpu)分为三个层面,包括JobTracker对Job提交阶段, TaskTracker内存定期检查,JobTracker分配 task扩展点JobTracker 设置参数控制Job提交时的内存设置1.1:initializeTaskMemoryRelatedConfig() |初始化TaskMemory |-->memSizeFo
2013-04-03 10:20:12
2121
转载 Java字节流与类型转换
Bytes数祖-->Intpublic static int toInt(byte[] bytes) { return toInt(bytes, 0, SIZEOF_INT); }public static int toInt(byte[] bytes, int offset, final int length) { if (length != SIZEOF_INT ||
2013-03-21 11:15:45
911
原创 Hadoop userlog日志丢失原因
之前有一篇文章,分析Hadoop日志限制(http://blog.csdn.net/bxyz1203/article/details/8107125)文章仔细分析了MR中Java,Streaming,pipes三种Job方式对Log日志的限制情况在实际使用中,我们发现用户自定义输入的log太多,userlog硬盘增大,导致磁盘过满,影响TaskTracker执行由此我们用mapred.
2013-03-17 17:30:14
2926
原创 公平调度器一次分配多个Task至TaskTracker算法
TaskTracker.heartbeat()机制请求处理任务,Fair Scheduler确认Job,然后给TaskTracker执行此时可动态设置一个TaskTracker多个slot任务,具体条件算法如下(以Map为例)1.mapsAssigned == mapCapacity 用户设置的单次心跳最多执行task数量2.runningMaps == runnableM
2013-03-04 23:24:33
805
原创 Hadoop lzo详细安装手册
方式-1:yum install lzop方式-2:手动安装,安装步骤如下:部署1. 所需软件gccantlzo-2.05.tar.gztoddlipcon-hadoop-lzo-2bd0d5b.tar.gzivy-2.0.0-rc2.jar2. 安装lzo tar-zxvf lzo-2.05.tar.
2013-02-21 16:35:08
2887
原创 Hadoop distcp拷贝
Hadoop数据迁移(集群内迁移,集群间迁移),主要通过拷贝数据来完成。对于小量数据,可以使用"hadoop fs -cp"来完成;对于大量数据,可以借助Distcp 来完成。Distcp介绍Distcp是Hadoop自带的分布式拷贝工具。它基于MapReduce实现,将需要拷贝的源数据尽量平均地split到多个map中,每个map将负责的split拷贝到目的集群上,最终利用了Ma
2013-02-20 11:12:28
13182
转载 Linux patch补丁
1、使用diff创建补丁test1.patch[armlinux@lqm patch]$ diff -uN test0 test1 > test1.patch【注:因为单个文件,所以不需要-r选项。选项顺序没有关系,即可以是-uN,也可以是-Nu。】[armlinux@lqm patch]$ lstest0 test1 test1.patch[armlinux@lqm pa
2013-02-16 10:32:26
703
原创 Hadoop TaskTracker 自我检测机制
Hadoop TaskTracker 自我检测机制机制:通过TaskTracker在启动时循环检测,设计时通过捕获异常来完成状态检测|-->TaskTracker.run() |-->initialize(); |-->if (shouldStartHealthMonitor(this.fConf)) |-->startHealthMonitor(t
2012-11-08 16:27:30
859
原创 SonaType Nexus上传自定义Jar包
org.apache.pthrift thrift-plugin 0.1.10 SonaType Nexus上传自定义Jar包两种方式1.pom文件方式 1.1:在正常使用的maven工程中添加依赖,指定groupId,artifactId,version 1.2:编译加载至本地
2012-10-24 16:19:02
16526
转载 Btrace简单应用
HelloWorld类:package my.app.test; import java.util.Random; public class HelloWorld { public static void main(String[] args) throws Exception { //CaseObject object = new Case
2012-10-18 09:21:00
652
原创 Hadoop Map/Reduce执行全流程关键代码
Hadoop Map/Reduce 执行流程关键代码JobClient.runJob(conf) | 运行job|-->JobClient jc = new JobClient(job);|-->RunningJob rj = jc.submitJob(job); |-->submitJobInternal(job); |-->int reduces = job.getNumRedu
2012-09-17 11:57:01
1794
原创 HBase region预划分及查找过程
1.Region预划分:RegionSplitterjava.lang.Object org.apache.hadoop.hbase.util.RegionSplitter切分方式:分别按照不同的Split进行切分bin/hbase org.apache.hadoop.hbase.util.RegionSplitter -c 60 -f test:rs myTa
2012-09-11 17:48:06
11783
1
原创 Namenode源代码分析
.namenode结构简介: 1.基本概念: |-->一个hdfs cluster包含一个NameNode和若干的DataNode,NameNode(以下简称nn)是master,主要负责管理hdfs文件系 统,具体地包括namespace管理(其实就是目录结构),block管理(其中包括 filename->block,block->ddatanode list的
2012-08-05 18:07:16
1730
原创 HBase安装与配置
HBase简介:HBase是一个分布式的、面向列的开源数据库,该技术来源于Chang et al所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。安装步骤:1.下载安装包:http://www.fayea.com/apache-mirror/hbase/ 我选择的0.94版本hbase-0.94.0.tar.gz 解压缩至/applicatio
2012-08-01 15:56:02
2271
原创 Java安全停止线程方法
1.早期Java提供java.lang.Thread类型包含了一些列的方法start(), stop(), stop(Throwable) and suspend(), destroy() and resume()。,Sun公司的一篇文章《Why are Thread.stop, Thread.suspend and Thread.resume Deprecated? 》2.使用volatile
2012-06-19 10:21:30
28058
原创 hadoop datanode源码分析
DataNode源代码分析:1.简介:DataNode是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data, 同时周期性地将所有存在的Block信息发送给NameNode2.main启动DataNode2.1:shell脚本启动DataNode|-->hadoop/bin/start-all.sh|-->start-dfs.sh
2012-06-15 17:53:39
1843
原创 Hadoop RPC源码分析
Hadoop RPC :与传统的RPC程序相似,分为Server端和Client端二个部分,下面将分别介绍其工作机制1.Client端分析:|-->Client(Class valueClass, Configuration conf, SocketFactory factory) |-->分别设置 maxIdleTime、tcpNoDelay、pingInterval值 |-->t
2012-06-05 15:42:03
1441
原创 Linux安装Maven Maven构建工程实例
Linux下安装maven1.首先到Maven官网下载安装文件,目前最新版本为3.0.3,下载文件为apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;2.进入下载文件夹,找到下载的文件,运行如下命令解压tar -xvf apache-maven-2.2.1-bin.tar.gz解压后的文件夹名为apache-maven-3.0.
2012-06-02 15:58:06
4828
原创 Maven构建工程
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具1.构建java工程 创建普通应用项目: mvn archetype:create -DgroupId=com.byread -DartifactId=blog 创建WEB项目: mvn archetype:create -DgroupI
2012-06-02 15:56:55
74
原创 SequenceFile在Hadoop中使用
概念:SequenceFile是一个由二进制序列化过的key/value的字节流组成的文本存储文件,它可以在map/reduce过程中的input/output 的format时被使用。在map/reduce过程中,map处理文件的临时输出就是使用SequenceFile处理过的。 所以一般的SequenceFile均是在FileSystem中生成,供map调用的原始文件。1.Se
2012-05-18 12:58:47
7945
原创 PHP CodeIgniter框架源码解析
PHP CodeIgniter框架源码解析 1.index.php :入口文件|-->define('ENVIRONMENT') |主要用于设置errors日志输出级别|-->$system_path |设置系统路径|-->设置BASEPATH、FCPATH、SYSDIR、APPPATH等 |设置路径信息变量,为加载相应文件信息准备|-->require_once
2012-04-09 16:55:37
9618
原创 PHP自动加载机制及在CodeIgnite框架中的使用
PHP5之后提供了类的自动加载机制,使类在加载时才被使用,即lazy loading,其主要实现原理见http://www.nowamagic.net/php/php_Autoload.phpPHP5提供的类加载机制分为二种,一种是用户自扩展的_autoload方式,一种是将autoload_func指向php文件,这个一般用c语言实现_autoload的实际是遇到需加载的clas
2012-02-23 11:47:55
1943
转载 GD库安装
GD库安装:分windows和linux二部分window系统下PHP GD库的安装配置一、打开Phhp.ini,在记事本中查找“extension_dir”,然后把extension_dir = "./"修改为extension_dir = "C:php\ext" (这里位置一定要和你的php安装路径一致,如果你安装在D盘,盘符就改成D)
2012-02-16 22:38:20
2407
转载 ICE的负载均衡及如何容错
ICE原理介绍:http://blog.sina.com.cn/s/blog_4f9fc08e0100u0pw.html 在同一个主机主机上,ICE服务支持多端口的监听。服务端注册: tcp -h host -p port1:tcp -h host -p port2形式,例如:IP:172.17.12.101,需要在10001和10000同时监听。就可以
2012-02-13 14:48:16
962
原创 PHP开发配置-windows环境下zend studio + wamp + zend debugger
PHP开发通常在linux下进行,在windows下也可以进行开发或者测试网上比较好的例子是:http://hi.baidu.com/devil19860214/blog/item/bb708cdfb49a6aadcd116693.html以下是个人安装配置过程1.zend studio 下载安装 : zend是一个PHP开发的IDE集成环境,PHP同时可用其它编辑器进行
2012-02-09 16:23:35
5665
原创 Windows xp系统硬盘安装方案
1.下载xp操作系统的iso文件,利用winara解压缩,保存在系统盘外位置2.下载pe工具,深度和雨林木风均可,进行安装,注意安装路径不要为系统盘3.重启系统,选择PE工具进入。找到iso文件的系统位置4.打开xp/i386/文件夹,执行winnt32.exe5.其它与光盘安装类似,重启需人工重启xp64位机不能如此安装,缺少引导安装的winnt32.exe
2012-02-09 15:32:30
681
转载 轻松理解数据库三范式
小结三范式1范式: 单一属性,不可再分2范式:1范式基础上,组合主键任一主键不能决定非主键的任一列值,即部分依赖,必须联合主键决定非主键值 ,否则拆分。3范式:2范式基础上,任一非主键不能决定主键的任一列值,即传递依赖,否则拆分官方定义:第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。我的理解:第一范式这个不用說了,只要是关系数据库都满足第
2011-11-13 00:31:09
756
原创 MySql入门基础知识
简介:MySql是开源免费的关系型数据库1.MySql复制原理: 分类方式:Master/slave复制模式,Master中写BinLog日志,Master读取log文件,构建索引 Slave从Master中复制BinLog日志,循环写入ReplayLog日志当中,作用与BinLog相同,构建索引 BinLog复制方式
2011-10-09 16:47:49
733
MySql入门基础知识
简介:MySql是开源免费的关系型数据库1.MySql复制原理: 分类方式:Master/slave复制模式,Master中写BinLog日志,Master读取log文件,构建索引 Slave从Master中
2011-10-09 16:15:56
81
转载 Java序列化和hessian序列化的区别
在远程调用中,需要把参数和返回值通过网络传输,这个使用就要用到序列化将对象转变成字节流,从一端到另一端之后再反序列化回来变成对象。既然前面有一篇提到了hessian,这里就简单讲讲Java序列化和hessian序列化的区别。首先,hessian序列化比Java序列
2011-08-23 15:29:37
12928
原创 lucene-搜索过程源码解析-Score树
1.总述:IndexSearch.search(createWeight(query), filter, n)过程 |--public TopDocs search(Weight weight, Filter filter, final int nDocs) |-- To
2011-07-26 20:14:05
1895
hibernate关系映射1to1及Nto1
2008-12-24
SSH登录系统实现(1)
2008-12-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人