频道栏目
首页 > 资讯 > 其他综合 > 正文

CSDN-markdown编辑器编辑实例

16-12-14        来源:[db:作者]  
收藏   我要投稿
public class HbaseCURD {

private Configuration conf = null;

private Connection con = null;

/**由于是测试类,没有main方法,要提前加载一些配置项。所以用@Before

*

* @throws IOException

*/

@Before

public void init() throws IOException {

conf = HBaseConfiguration.create();

conf.set("hbase.zookeeper.quorum", "worker05:2181,worker06:2181,worker07:2181");

}

/**

* 在Hbase中添加people表并创建两个列簇:info、data

* 并设置创建的版本为3(也就是最新版本)

* @throws IOException

*/

@Test

public void testCreateTable() throws IOException {

HBaseAdmin admin = new HBaseAdmin(conf);

HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(“people”));

HColumnDescriptor hcdInfo = new HColumnDescriptor(“info”);

HColumnDescriptor hcdData = new HColumnDescriptor(“data”);

hcdInfo.setMaxVersions(3);

htd.addFamily(hcdInfo);

htd.addFamily(hcdData);

admin.createTable(htd);

//用完关闭

admin.close();

}

/**插入数据

* @throws IOException **/

@Test

public void testPut(String tableName) throws IOException {

HTable table = new HTable(conf, tableName);

Put put = new Put(Bytes.toBytes(“row001”));

put.addColumn(Bytes.toBytes(“info”), Bytes.toBytes(“name”), Bytes.toBytes(“lingxin”));

put.addColumn(Bytes.toBytes(“info”), Bytes.toBytes(“age”), Bytes.toBytes(“57”));

put.addColumn(Bytes.toBytes(“info”), Bytes.toBytes(“money”), Bytes.toBytes(30000));

table.put(put);

table.close();

}

/**测试插入100万条数据**/

@Test

public void testPutAll() throws IOException {

HTable table = new HTable(conf, "people");

List puts = new ArrayList(10000);

for(int i = 1; i < 1000000; i++) {

Put put = new Put(Bytes.toBytes("row" + i));

put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"), Bytes.toBytes("lingxin" + i));

put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("age"), Bytes.toBytes("57"));

put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("money"), Bytes.toBytes(30000));

puts.add(put);

//注意!!!不能一次写一条。即会造成资源的浪费和磁盘的损坏、更会可能使Hbase负载增加而挂掉

//每隔10000,写一次

if(i % 10000 == 0) {

table.put(puts);

puts = new ArrayList(10000);

}

}

table.put(puts);

table.close();

//以下方式不可取

/* for(int i=1; i<1000000; i++) {

Put put = new Put(Bytes.toBytes("row"+i));

put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"), Bytes.toBytes("lingxin"+i));

put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("age"), Bytes.toBytes("57"));

put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("money"), Bytes.toBytes(30000));

puts.add(put);

}

table.put(puts);

table.close();*/

}

/**查看某个cell的值**/

@Test

public void testGet() throws IOException {

Table table = con.getTable(TableName.valueOf("people"));

Get get = new Get(Bytes.toBytes("row9999"));

Result resut = table.get(get);

String r = Bytes.toString(resut.getValue(Bytes.toBytes("info"), Bytes.toBytes("name")));

System.out.println(r);

table.close();

}

/**查看某个rowkey范围的数据,按字典顺序排序**/

@Test

public void testScan() throws IOException {

Table table = con.getTable(TableName.valueOf("people"));

Scan scan = new Scan(Bytes.toBytes("row010000"), Bytes.toBytes("row110"));

ResultScanner scanner = table.getScanner(scan);

for(Result result : scanner) {

String r = Bytes.toString(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("name")));

System.out.println(r);

}

table.close();

}

/**组合使用扫描器缓存和批量大小**/

@Test

public void testScanWithCacheAndBatch(int caching, int batch) throws IOException {

Table table = con.getTable(TableName.valueOf("people"));

Scan scan = new Scan(Bytes.toBytes("row010000"), Bytes.toBytes("row110"));

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//根据提供表的特性,(宽表,还是窄表,设置不同的caching和batch值)

scan.setCaching(caching);//设置每次扫描的打印行数

scan.setBatch(batch);//设置每次扫描的打印列数

//!!!!!!!!!!!!!!!!!!!!!!!!!!

ResultScanner scanner = table.getScanner(scan);

for(Result result : scanner) {

 {

private Configuration conf = null;

private Connection con = null;

/**由于是测试类,没有main方法,要提前加载一些配置项。所以用@Before

*

* @throws IOException

*/

@Before

public void init() throws IOException {

conf = HBaseConfiguration.create();

conf.set("hbase.zookeeper.quorum", "worker05:2181,worker06:2181,worker07:2181");

}

/**

* 在Hbase中添加people表并创建两个列簇:info、data

* 并设置创建的版本为3(也就是最新版本)

* @throws IOException

*/

@Test

public void testCreateTable() throws IOException {

HBaseAdmin admin = new HBaseAdmin(conf);

HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(“people”));

HColumnDescriptor hcdInfo = new HColumnDescriptor(“info”);

HColumnDescriptor hcdData = new HColumnDescriptor(“data”);

hcdInfo.setMaxVersions(3);

htd.addFamily(hcdInfo);

htd.addFamily(hcdData);

admin.createTable(htd);

//用完关闭

admin.close();

}

/**插入数据

* @throws IOException **/

@Test

public void testPut(String tableName) throws IOException {

HTable table = new HTable(conf, tableName);

Put put = new Put(Bytes.toBytes(“row001”));

put.addColumn(Bytes.toBytes(“info”), Bytes.toBytes(“name”), Bytes.toBytes(“lingxin”));

put.addColumn(Bytes.toBytes(“info”), Bytes.toBytes(“age”), Bytes.toBytes(“57”));

put.addColumn(Bytes.toBytes(“info”), Bytes.toBytes(“money”), Bytes.toBytes(30000));

table.put(put);

table.close();

}

/**测试插入100万条数据**/

@Test

public void testPutAll() throws IOException {

HTable table = new HTable(conf, "people");

List puts = new ArrayList(10000);

for(int i = 1; i < 1000000; i++) {

Put put = new Put(Bytes.toBytes("row" + i));

put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"), Bytes.toBytes("lingxin" + i));

put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("age"), Bytes.toBytes("57"));

put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("money"), Bytes.toBytes(30000));

puts.add(put);

//注意!!!不能一次写一条。即会造成资源的浪费和磁盘的损坏、更会可能使Hbase负载增加而挂掉

//每隔10000,写一次

if(i % 10000 == 0) {

table.put(puts);

puts = new ArrayList(10000);

}

}

table.put(puts);

table.close();

//以下方式不可取

/* for(int i=1; i<1000000; i++) {

Put put = new Put(Bytes.toBytes("row"+i));

put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("name"), Bytes.toBytes("lingxin"+i));

put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("age"), Bytes.toBytes("57"));

put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("money"), Bytes.toBytes(30000));

puts.add(put);

}

table.put(puts);

table.close();*/

}

/**查看某个cell的值**/

@Test

public void testGet() throws IOException {

Table table = con.getTable(TableName.valueOf("people"));

Get get = new Get(Bytes.toBytes("row9999"));

Result resut = table.get(get);

String r = Bytes.toString(resut.getValue(Bytes.toBytes("info"), Bytes.toBytes("name")));

System.out.println(r);

table.close();

}

/**查看某个rowkey范围的数据,按字典顺序排序**/

@Test

public void testScan() throws IOException {

Table table = con.getTable(TableName.valueOf("people"));

Scan scan = new Scan(Bytes.toBytes("row010000"), Bytes.toBytes("row110"));

ResultScanner scanner = table.getScanner(scan);

for(Result result : scanner) {

String r = Bytes.toString(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("name")));

System.out.println(r);

}

table.close();

}

/**组合使用扫描器缓存和批量大小**/

@Test

public void testScanWithCacheAndBatch(int caching, int batch) throws IOException {

Table table = con.getTable(TableName.valueOf("people"));

Scan scan = new Scan(Bytes.toBytes("row010000"), Bytes.toBytes("row110"));

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//根据提供表的特性,(宽表,还是窄表,设置不同的caching和batch值)

scan.setCaching(caching);//设置每次扫描的打印行数

scan.setBatch(batch);//设置每次扫描的打印列数

//!!!!!!!!!!!!!!!!!!!!!!!!!!

ResultScanner scanner = table.getScanner(scan);

for(Result result : scanner) {

String r = Bytes.toString(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("name")));

System.out.println(r);

}

table.close();

}

@Test

public void testDel() throws IOException {

Table table = con.getTable(TableName.valueOf("people"));// HTable table = new HTable(conf, "people");

Delete delete = new Delete(Bytes.toBytes("row9999"));

table.delete(delete);

table.close();

}

}
String r = Bytes.toString(result.getValue(Bytes.toBytes("info"), Bytes.toBytes("name")));

System.out.println(r);

}

table.close();

}

@Test

public void testDel() throws IOException {

Table table = con.getTable(TableName.valueOf("people"));// HTable table = new HTable(conf, "people");

Delete delete = new Delete(Bytes.toBytes("row9999"));

table.delete(delete);

table.close();

}

}
相关TAG标签
上一篇:QT5.70MSVC版连接MYSQL5.7.16.0连接不上QMYSQL解决
下一篇:Oracle笔记——限定查询和排序
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站