- 浏览: 541314 次
- 性别:
- 来自: 杭州
-
最新评论
-
飞天奔月:
public List<String> gener ...
实践中的重构30_不做油漆匠 -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道public class A {
...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道在世界的中心呼喚愛 写道在classB ...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道在classB的finalize上打断 ...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
iteye比较少上,如果可以的话,可以发e-mail交流:ch ...
深入理解ReferenceQueue GC finalize Reference
文章列表
https://github.com/zhang-xzhi/simplehbase/
https://github.com/zhang-xzhi/simplehbase/wiki
simplehbase简介
simplehbase是java和hbase之间的轻量级中间件。 主要包含以下功能。
数据类型映射:java类型和hbase的bytes之间的数据转换。
简单操作封装:封装了hbase的put,get,scan等操作为简单的java操作方式。
hbase query封装:封装了hbase的filter,可以使用sql-like的方式操作hbase。
动态q ...
https://github.com/zhang-xzhi/simplehbase/
https://github.com/zhang-xzhi/simplehbase/wiki
simplehbase简介
simplehbase是java和hbase之间的轻量级中间件。 主要包含以下功能。
数据类型映射:java类型和hbase的bytes之间的数据转换。
简单操作封装:封装了hbase的put,get,scan等操作为简单的java操作方式。
hbase query封装:封装了hbase的filter,可以使用sql-like的方式操作hbase。
动态q ...
simplehbase尝试简化基于hbase的java应用开发。
Simplehbase主要提供以下功能:
1 POJO和hbase的映射。
2 提供client,简化hbase的数据操作。
3 提供强语义的插入和更新操作。
Insert操作:只有原数据不存在时,才put成功。
Update操作:只有原数据存在时,才put成功。
simplehbase的代码,测试(示例)代码,文档见附件。
看一个简单的例子:
1 通过注解标示要保存在hbase中的POJO。该POJO对应hbase的Key-Value中的Value。
@HBaseTable(defaultFamily = My ...
hbase的CoprocessorProtocol及一个简单的通用扩展实现V2
http://zhang-xzhi-xjtu.iteye.com/blog/2163321
hbase中的CoprocessorProtocol机制.
CoprocessorProtocol的原理比较简单,近似于一个mapreduce框架。由client将scan分解为面向多个region的请求,并行发送请求到多个region,然后client做一个reduce的操作,得到最后的结果。
先看一个例子,使用hbase的AggregationClient可以做到简单的面向单个column的统计。
@Test
...
hbase的基本操作
- 博客分类:
- hbase_hadoop
本文列举一些hbase的基本操作代码。
package allen.studyhbase;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.h ...
使用豆瓣api查找本地电影评分来决定看什么电影
- 博客分类:
- 程序共享
下载的电影过多,大把的时间花在到底要看什么电影上。
于是写了一个小程序,可以自动扫描电影在豆瓣的评分,并排序。
程序说明:
1 使用了反射和自定义classloader调用main方法,使得命令行不用指定jar包。
java -cp .;allen_base-1.0.jar allen.program.Driver allen.douban.main.LocalFilmRating
try {
Class<?> type = myClassLoader.loadClass(mainClass);
Method ...
一次hadoop的read
getFileSystem
代码
public static FileSystem getFileSystem() throws Exception {
Configuration conf = new Configuration();
FileSystem fs = FileSystem.get(
URI.create("hdfs://192.168.81.130:9001"), conf);
return fs;
}
Configuration
Configuration基本就是一个空对象。添加了2个配置 ...
-module(testLinkProcess).
-export([test/1]).
-export([test1/0]).
-export([test2/0]).
-export([test3/0]).
-export([test4/0]).
-export([loopWithCounter/3]).
test(Num) ->
case Num of
1 -> spawn(testLinkProcess,test1,[]);
2 -> spawn(testLinkProcess,test2,[]);
3 -> spawn(te ...
扎金花概率分析
总牌型数量
一副牌一共54张,去除大小王,有52张。
黑桃 A,K,Q,J,10,9,8,7,6,5,4,3,2
红桃 A,K,Q,J,10,9,8,7,6,5,4,3,2
方块 A,K,Q,J,10,9,8,7,6,5,4,3,2
梅花 A,K,Q,J,10,9,8,7,6,5,4,3,2
从52张牌中任意取3张的牌型组合就是所有的牌型数量。 ...
代码在org.apache.http.entity.StringEntity中。版本4.2.2。
感觉代码和注释不匹配。
同时,没有处理好contentType为null的情况。
4.2.3中无该问题。已经修复。
/**
* Creates a StringEntity with the specified content and content type.
*
* @param string content to be used. Not {@code null}.
* @param contentType content type t ...
使用http的chunked模式下载文件网络详解
- 博客分类:
- Web
基础知识:
TCP的三次握手。
TCP的ACK机制。
IP协议的MTU。
HTTP协议。
LF的ASCII编码为10(10进制),0A(16进制)。
CR的ASCII编码为13(10进制),0D(16进制)。
数字0的ASCII编码为48(10进制),30(16进制)。
使用http的chunked模式下载文件。
这里使用抓包工具监控一个小文件下载的全过程。
网络包概览:
2104
client -> server (http)
MTU=1500,以太网一般都是1500。
减掉IP header和TCP header。1500-20-20=1460Bytes, 这个地方pa ...
mysql的一些性能数据
- 博客分类:
- 归档
这个并不是一个严谨的性能测试,而是就简单的一些场景记录一些数据。
插入一个有55个字段的表。
5000000(记录数)/20597108(耗时:毫秒)=0.24275252622843946
int型如果表示ms的话,那也就是24天而已。
double t = Integer.MAX_VALUE * 1.0D / 1000 / 3600 / 24;
System.out.println(t);
24.85513480324074
一直以为java的移位操作只能操作int,原来是自己的误解。long一样可以操作。
long value = 0x1000000000L;
System.out.println(value);
System.out.println(value >>> 32);
结果:
68719476736
16
按照bit读取或写入java的IO流
- 博客分类:
- java
写了个按照bit读取或写入java的IO流的简单代码,保留在博客里备忘。
/**
* 按bit读取的input。
* */
public class BitInput {
private InputStream input;
private int value;
private int next = 7;
public BitInput(InputStream input) {
this.input = input;
}
/**
* 读取一个bit,1 ...