基于Java操作HBase数据库
2012-01-24 21:19
405 查看
参考资料:http://www.linezing.com/blog/?p=713
代码如下:
假设已经整合了Hive和Hbase:/article/8219918.html
如果在这里插入新的数据,我们完全可以通过Hive把记录都查询出来:/article/8219923.html
其他资料:
/article/9054831.html
http://qa.taobao.com/?p=13894
http://www.javabloger.com/article/apache-hbase-shell-and-java-api-html.html
代码如下:
package com.yuxipacific; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.HColumnDescriptor; import org.apache.hadoop.hbase.HTableDescriptor; import org.apache.hadoop.hbase.KeyValue; import org.apache.hadoop.hbase.MasterNotRunningException; import org.apache.hadoop.hbase.ZooKeeperConnectionException; import org.apache.hadoop.hbase.client.Delete; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HBaseAdmin; import org.apache.hadoop.hbase.client.HTable; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.util.Bytes; public class HBase { private static Configuration conf = null; static { conf = HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum", "slave"); conf.set("hbase.zookeeper.property.clientPort", "2222"); } public static void main(String[] args) throws IOException { System.out.println("-------------------------------------------------"); selectRow("xyz", "100"); System.out.println("-------------------------------------------------"); writeRow("xyz", "cf1", "val", "500", "test_data"); System.out.println("-------------------------------------------------"); scaner("xyz"); } public static void createTable(String tablename, String[] cfs) throws IOException { HBaseAdmin admin = new HBaseAdmin(conf); if (admin.tableExists(tablename)) { System.out.println("table already exist."); } else { HTableDescriptor tableDesc = new HTableDescriptor(tablename); for (int i = 0; i < cfs.length; i++) { tableDesc.addFamily(new HColumnDescriptor(cfs[i])); } admin.createTable(tableDesc); System.out.println("create table ok."); } } public static void deleteTable(String tablename) throws IOException { try { HBaseAdmin admin = new HBaseAdmin(conf); admin.disableTable(tablename); admin.deleteTable(tablename); System.out.println("delete table ok."); } catch (MasterNotRunningException e) { e.printStackTrace(); } catch (ZooKeeperConnectionException e) { e.printStackTrace(); } } public static void writeRow(String tablename, String family, String qualifier, String rowKey, String value) { try { HTable table = new HTable(conf, tablename); Put put = new Put(Bytes.toBytes(rowKey)); put.add(Bytes.toBytes(family), Bytes.toBytes(qualifier), Bytes.toBytes(value)); table.put(put); } catch (IOException e) { e.printStackTrace(); } } public static void deleteRow(String tablename, String rowkey) throws IOException { HTable table = new HTable(conf, tablename); List<Delete> list = new ArrayList<Delete>(); Delete delete = new Delete(rowkey.getBytes()); list.add(delete); table.delete(list); System.out.println("delete row ok."); } public static void selectRow(String tablename, String rowKey) throws IOException { HTable table = new HTable(conf, tablename); Get g = new Get(rowKey.getBytes()); Result rs = table.get(g); for (KeyValue kv : rs.raw()) { System.out.print(new String(kv.getRow()) + " "); System.out.print(new String(kv.getFamily()) + ":"); System.out.print(new String(kv.getQualifier()) + " "); System.out.print(kv.getTimestamp() + " "); System.out.println(new String(kv.getValue())); } } public static void scaner(String tablename) { try { HTable table = new HTable(conf, tablename); Scan s = new Scan(); ResultScanner rs = table.getScanner(s); for (Result r : rs) { KeyValue[] kv = r.raw(); for (int i = 0; i < kv.length; i++) { System.out.print(new String(kv[i].getRow()) + " "); System.out.print(new String(kv[i].getFamily()) + ":"); System.out.print(new String(kv[i].getQualifier()) + " "); System.out.print(kv[i].getTimestamp() + " "); System.out.println(new String(kv[i].getValue())); } } } catch (IOException e) { e.printStackTrace(); } } }
假设已经整合了Hive和Hbase:/article/8219918.html
如果在这里插入新的数据,我们完全可以通过Hive把记录都查询出来:/article/8219923.html
package com.yuxipacific; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Hive { public static void main(String[] args) throws Exception { Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver"); String querySQL="SELECT * FROM hbase_table_1"; Connection con = DriverManager.getConnection("jdbc:hive://192.168.11.124:10000/default", "", ""); Statement stmt = con.createStatement(); ResultSet res = stmt.executeQuery(querySQL); while (res.next()) { System.out.println("Result: key:"+res.getString(1) +" –> value:" +res.getString(2)); } } }更多Java操作代码,参阅:https://cwiki.apache.org/confluence/display/Hive/HiveClient
其他资料:
/article/9054831.html
http://qa.taobao.com/?p=13894
http://www.javabloger.com/article/apache-hbase-shell-and-java-api-html.html
相关文章推荐
- java在window系统上使用mapreduce操作hbase数据库
- 从Windows下Java程序如何操作Linux下Hbase数据库表过程、难点的心得历程
- 【Hbase】Java调用Hbase接口实现数据库操作
- java操作hbase数据库
- 基于java实现的数据库操作
- java API 操作 hbase 数据库(这不是简单的例子,是可以用于运营系统的高性能源码)
- 基于JDBC的java数据库操作框架DB-helper(目前仅支持mysql)
- java实现hbase数据库的增删改查操作(新API)
- Java API操作Hbase(基于0.96新的api)
- 基于Java对象的数据库增删改查操作
- Java -- 数据库 多表操作,1对多,多对多,1对1。 基于dbutils框架
- Java -- 数据库 多表操作,1对多,多对多,1对1。 基于dbutils框架
- 基于Java的XML文件模拟数据库进行增删改查操作
- Java基于JDBC连接数据库及显示数据操作示例
- Java数据库操作基本流程
- JAVA本地程序使用FileSystemXmlApplicationContext读取application-datasorce.xml进行数据库操作
- 方正平台使用小妙招之在Java中通过SQL标记完成数据库的操作
- java通过jdbc操作数据库
- 基于Java多线程操作文件案例分享
- java JDBC数据库操作