Hbase之批量数据写入,hbase写入
/**
*
Created by similarface on 16/8/16.
*/
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.hbase.client.BufferedMutator;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.client.Mutation;
import java.util.List;
import java.util.ArrayList;
public class PutBufferExample
{
public static void main(String[]
args) throws IOException
{
//获取陪着参数
Configuration
config = HBaseConfiguration.create();
//建立连接
Connection
connection = ConnectionFactory.createConnection(config);
try {
//连接表
获取表对象
Table
t = connection.getTable(TableName.valueOf("testtable"));
BufferedMutator
table = connection.getBufferedMutator(TableName.valueOf("testtable"));
try {
Put
p = new Put(Bytes.toBytes("myrow-1"));
//p.add();
这个地方的add 是个过期的方法然而我并不知道Cell的用法是什么
p.add(Bytes.toBytes("colfam1"),
Bytes.toBytes("name1"),
Bytes.toBytes("zhangsan1"));
//table.put(p);
List<Mutation>
mutations = new ArrayList<Mutation>();
mutations.add(p);
table.mutate(mutations);
//如果不flush
在后面get可能是看不见的
table.flush();
//
Close your table and cluster connection.
Get
get=new Get(Bytes.toBytes("myrow-1"));
Result
result=t.get(get);
for(Cell
cell:result.rawCells()){
System.out.print("行健:
"+new String(CellUtil.cloneRow(cell)));
System.out.print("\t列簇:
"+new String(CellUtil.cloneFamily(cell)));
System.out.print("\t列:
"+new String(CellUtil.cloneQualifier(cell)));
System.out.print("\t值:
"+new String(CellUtil.cloneValue(cell)));
System.out.println("\t时间戳:
"+cell.getTimestamp());
}
System.out.print(">>>>end");
} finally {
if (table
!= null)
table.close();
}
} finally {
connection.close();
}
}
}
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。