1. Region的rowkey范围是开区间还是闭区间?描述一下
2. Scan的rowkey范围是开区间还是闭区间?描述一下
3. HTablePool线程安全么?如果线程安全,为什么?如果线程不安全,有什么影响?
4. 下面的代码有没有问题
public List<Message> getData(Date start, Dateend, Long to)
throws IOException {
HTableInterfacetable = tablePool.getTable(tableName);
List<Message>ret = null;
byte[] bytesTo = Bytes.toBytes(to);
byte[] startRow = Bytes.add(bytesTo,Bytes.toBytes(start.getTime()));
byte[] endRow = Bytes.add(bytesTo, Bytes.toBytes(end.getTime()));
byte[] family =
"f".getBytes();
Scanscan = new Scan();
scan.setStartRow(startRow);
scan.setStopRow(endRow);
scan.setCaching(200);
scan.addFamily(family);
ResultScannerrs = null;
try {
rs= table.getScanner(scan);
Resultresult = rs.next();
while (result !=
null) {
if (ret ==
null) {
ret= new ArrayList<Message>();
}
Messagemsg = new Message();
msg.setTo(to);
long id = Bytes.toLong(result.getValue(family,"id".getBytes()));
long from = Bytes.toLong(result.getValue(family, "from".getBytes()));
Stringmessage = Bytes.toString(result.getValue(family,
"msg".getBytes()));
long time = Bytes.toLong(Arrays.copyOfRange(result.getRow(),8,
16));
msg.setId(id);
msg.setFrom(from);
msg.setMessage(message);
msg.setTime(new Date(time));
ret.add(msg);
result.close();
result= rs.next();
}
}finally {
table.close();
// important
}
return ret;
}
5. 请优化:
publicList<Put> getPut(String row, String… values) {
List<Put> puts = new ArrayList<Put>(values.length);
for(String value : values) {
Put put = new Put(row.getBytes());
put.add("family".getBytes(),"from".getBytes(), Bytes.toBytes(value));
puts.add(put);
}
return puts;
}
6. scan.setBatch(1)和scan.setCaching(2)的区别
7. 判断
a)put(List<Put> puts)比put(Put put)效率高。
b)HBase的底层是HDFS,有多副本,所以HBase不会丢失数据。
c)写数据一定将自动flush设置为true以提高性能。
d)如果我要存30天的数据,但列都一样,那我可以用30个version来保存。
e)为了提升处理能力,我们应该把一批Put,分成多线程put到HBase集群
f)变长字段组合成rowkey的时候,将字段之间用#隔开就可以了。
g)一个Put对应于一个KeyValue。
h)HBase中建两张表不如建两个family。
i)假设pool是HTablePool对象,可以HTable table=(HTable) pool.get(“table”)。
j)使用HTablePool缓存的table(HTableInterface对象),将autoFlush设置为false的时候,用table.close就会自动flushCommits()。
k)一批Put最多需要当前表的region个数个RPC请求
l)HTablePool实现了网络连接的复用。
分享到:
相关推荐
HBase官方指南——数据模型篇
hbase基础知识介绍
HBase官方指南——配置详解篇;HBase官方指南——配置详解篇
HBASE基础应用的介绍。一个初步认知的pdf。
可以对nosql数据库Hbase有个基础的了解和应用
Hbase笔记 —— 利用JavaAPI的方式操作Hbase数据库(往hbase的表中批量插入数据)
HBase架构解析——维基百科[归纳].pdf
Hbase性能优化百科全书(csdn)————程序
HBase概述——HBase的存储模型.pdf 学习资料 复习资料 教学资源
1. HBase有哪些基本的特征? 1 HBase特征: 1 2. HBase相对于关系数据库能... HBase与Cassender的比较 8 7:几个关键概念: 9 行键(RowKey) 9 列族(ColumnFamily) 9 时间戳(TimeStamp) 9 单元格(Cell) 9 区域(Reg
HBase数据读取流程解析-3——scan查询.pdf 学习资料 复习资料 教学资源
Hbase基础入门,包学会,包基础理解透彻,可以进一步加强对hbase的理解
HBase最佳实践-读性能优化策略-3——HBase服务器端优化.pdf 学习资料 复习资料 教学资源
HBase数据读取流程解析-2——构建scanner体系.pdf 学习资料 复习资料 教学资源
这是我学了hbase之后整理的一些简单清晰的内容关于hbase的,hbase速成方法
HBase数据读取流程解析-1——Client-Server交互逻辑.pdf 学习资料 复习资料 教学资源
HBase架构解析——维基百科文.pdf
java 利用 sping-data-hadoop HbaseTemplate 操作hbase find get execute 等方法 可以直接运行
进公司的第一个课题,内含hbase基础、其数据存储的物理视图、逻辑视图、hbase shell的简单介绍、hbase的架构分析及读写流程、和简单的crud操作,为了讲许多知识可能介绍不是很完全,不懂的可私聊,毕竟同为萌新,...
hbase基础知识介绍powerpoint