目录
第一关:
命令行:
代码:
第二关:添加数据
命令行:
代码:
第三关:获取数据
命令行:
代码:
第四关:
代码:
第一关:
命令行:
start-dfs.sh
start-hbase.sh
hadoop fs -ls /hbase
代码:
在HBase中创建表dept,emp,列都为:data
Configuration config = HBaseConfiguration.create();
//使用create()静态方法就可以得到Configuration对象
Connection connection = ConnectionFactory.createConnection(config);
//config为前文的配置对象
Admin admin = connection.getAdmin(); //使用连接对象获取Admin对象
TableName tableName1 = TableName.valueOf("dept"); //定义表名
TableName tableName2 = TableName.valueOf("emp");
HTableDescriptor htd1 = new HTableDescriptor(tableName1); //定义表对象
HTableDescriptor htd2 = new HTableDescriptor(tableName2);
HColumnDescriptor hcd1 = new HColumnDescriptor("data"); //定义列族对象
HColumnDescriptor hcd2 = new HColumnDescriptor("data");
htd.addFamily(hcd1); //添加
htd.addFamily(hcd2);
admin.createTable(htd1);//创建表
admin.createTable(htd2);
第二关:添加数据
命令行:
start-dfs.sh
start-hbase.sh
hadoop fs -ls /hbase
stop-dfs.sh
stop-hbase.sh
代码:
在HBase中创建表tb_step2,列簇都为:data,添加数据:
行号分别为:row1,row2;
列名分别为:1,2;
值分别为:张三丰,张无忌。
//创建表
Configuration config = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(config);
Admin admin = connection.getAdmin(); //使用连接对象获取Admin对象
TableName tableName = TableName.valueOf("tb_step2"); //定义表名
HTableDescriptor htd = new HTableDescriptor(tableName); //定义表对象
HColumnDescriptor hcd = new HColumnDescriptor("data"); //定义列族对象
htd.addFamily(hcd); //添加
admin.createTable(htd);//创建表
//添加数据:
Table table = connection.getTable(tableName);//获取Table对象
try {
byte[] row1=Bytes.toBytes("row1");
byte[] row2=Bytes.toBytes("row2");
Put put1=new Put(row1);
Put put2=new Put(row2);
byte[] columnFamily=Bytes.toBytes("data");
byte[] qualifier1=Bytes.toBytes(String.valueOf(1));
byte[] qualifier2=Bytes.toBytes(String.valueOf(2));
byte[] value1=Bytes.toBytes("张三丰");
byte[] value2=Bytes.toBytes("张无忌");
put1.addColumn(columnFamily, qualifier1, value1);;
put2.addColumn(columnFamily,qualifier2,value2);
table.put(put1);
table.put(put2);
} finally {
//使用完了要释放资源
table.close();
}
第三关:获取数据
命令行:
start-dfs.sh
start-hbase.sh
hadoop fs -ls /hbase
输出t_step3表中行号为row1,列族为data:1的值(以utf-8编码),
输出table_step3表中所有行的行名称(因为直接输出scannerResult会带有时间戳,所以输出行名方便测评)。
代码:
Configuration config = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(config);
Admin admin = connection.getAdmin();
TableName tableName = TableName.valueOf("t_step3");
Table table = connection.getTable(tableName);
#获取指定行的数据文章来源:https://www.toymoban.com/news/detail-776443.html
//获取数据
Get get = new Get(Bytes.toBytes("row1")); //定义get对象
Result result = table.get(get); //通过table对象获取数据
System.out.println("Result: " + result);
byte[] valueBytes = result.getValue(Bytes.toBytes("data"), Bytes.toBytes("1"));
String valueStr = new String(valueBytes,"utf-8");
System.out.println("value:" + valueStr);
#扫描表中的数据文章来源地址https://www.toymoban.com/news/detail-776443.html
Scan scan = new Scan();
ResultScanner scanner = table.getScanner(scan);
try {
for (Result scannerResult: scanner) {
System.out.println("Scan: " + scannerResult);
byte[] row = scannerResult.getRow();
System.out.println("rowName:" + new String(row,"utf-8"));
}
} finally {
scanner.close();
}
第四关:
代码:
Configuration config = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(config);
Admin admin = connection.getAdmin();
TableName tableName = TableName.valueOf("t_step4");
admin.disableTable(tableName);
admin.deleteTable(tableName);
到了这里,关于8-5 HBase 开发:使用Java操作HBase的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!