猿问

请问应用程序是通过(oracle jdbc连接)啥连接到HBase数据库的?

通过(关系型是statement和sql进行增删)啥进行增删改查的?是api提供类或方法操作HMaster来进行的吗?类似PreparedStatement(貌似是jdbc api提供)编译sql进行操作?
有没有类似mysql数据库进行建表等操作啊,也就是数据库详细设计阶段中比如建表索引等是通过后台的什么东西操作的(mysql等关系型是通过sql在后台操作)?
通过数据库后台查询一条记录是通过什么工具(关系型是第三方工具或者后台的sql界面)以怎么的方式(关系型是表格)进行显示的啊?
讲讲用HBase具体怎么搭建分布式数据环境啊,不是安装HBase,类似与在mysql数据库中创建一个具体的数据库,其他含有表格等,也就是一个完整的数据库出来。(学习中,问题很多很模糊)

天涯尽头无女友
浏览 97回答 1
1回答

手掌心

给你一个类的代码,你看看就知道怎么连接的了&nbsp;import&nbsp;java.io.IOException;import&nbsp;java.util.Map;&nbsp;import&nbsp;org.apache.hadoop.conf.Configuration;import&nbsp;org.apache.hadoop.hbase.HBaseConfiguration;import&nbsp;org.apache.hadoop.hbase.HColumnDescriptor;import&nbsp;org.apache.hadoop.hbase.HTableDescriptor;import&nbsp;org.apache.hadoop.hbase.client.HBaseAdmin;import&nbsp;org.apache.hadoop.hbase.client.HTable;import&nbsp;org.apache.hadoop.hbase.client.Put;import&nbsp;org.apache.hadoop.hbase.client.Result;&nbsp;public&nbsp;class&nbsp;Htable&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;throws&nbsp;IOException&nbsp;{//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Configuration&nbsp;hbaseConf&nbsp;=&nbsp;HBaseConfiguration.create();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Configuration&nbsp;HBASE_CONFIG&nbsp;=&nbsp;new&nbsp;Configuration();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//与hbase/conf/hbase-site.xml中hbase.master配置的值相同&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HBASE_CONFIG.set("hbase.master",&nbsp;"9.186.89.27:60000");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//与hbase/conf/hbase-site.xml中hbase.zookeeper.quorum配置的值相同&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HBASE_CONFIG.set("hbase.zookeeper.quorum",&nbsp;"9.186.89.27,9.186.89.29,9.186.89.31,9.186.89.33,9.186.89.34");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//与hbase/conf/hbase-site.xml中hbase.zookeeper.property.clientPort配置的值相同&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HBASE_CONFIG.set("hbase.zookeeper.property.clientPort",&nbsp;"2181");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Configuration&nbsp;hbaseConf&nbsp;=&nbsp;HBaseConfiguration.create(HBASE_CONFIG);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HBaseAdmin&nbsp;admin&nbsp;=&nbsp;new&nbsp;HBaseAdmin(hbaseConf);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;set&nbsp;the&nbsp;name&nbsp;of&nbsp;table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HTableDescriptor&nbsp;htableDescriptor&nbsp;=&nbsp;new&nbsp;HTableDescriptor("test11".getBytes());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;set&nbsp;the&nbsp;name&nbsp;of&nbsp;column&nbsp;clusters&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;htableDescriptor.addFamily(new&nbsp;HColumnDescriptor("cf1"));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(admin.tableExists(htableDescriptor.getName()))&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;admin.disableTable(htableDescriptor.getName());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;admin.deleteTable(htableDescriptor.getName());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;create&nbsp;a&nbsp;table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;admin.createTable(htableDescriptor);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;get&nbsp;instance&nbsp;of&nbsp;table.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HTable&nbsp;table&nbsp;=&nbsp;new&nbsp;HTable(hbaseConf,&nbsp;"test11");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;for&nbsp;is&nbsp;number&nbsp;of&nbsp;rows&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;3;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;the&nbsp;ith&nbsp;row&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Put&nbsp;putRow&nbsp;=&nbsp;new&nbsp;Put(("row"&nbsp;+&nbsp;i).getBytes());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;set&nbsp;the&nbsp;name&nbsp;of&nbsp;column&nbsp;and&nbsp;value.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;putRow.add("cf1".getBytes(),&nbsp;(i+"col1").getBytes(),&nbsp;(i+"vaule1").getBytes());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;putRow.add("cf1".getBytes(),&nbsp;(i+"col2").getBytes(),&nbsp;(i+"vaule2").getBytes());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;putRow.add("cf1".getBytes(),&nbsp;(i+"col3").getBytes(),&nbsp;(i+"vaule3").getBytes());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;table.put(putRow);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;get&nbsp;data&nbsp;of&nbsp;column&nbsp;clusters&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(Result&nbsp;result&nbsp;:&nbsp;table.getScanner("cf1".getBytes()))&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;get&nbsp;collection&nbsp;of&nbsp;result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(Map.Entry<byte[],&nbsp;byte[]>&nbsp;entry&nbsp;:&nbsp;result.getFamilyMap("cf1".getBytes()).entrySet())&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;column&nbsp;=&nbsp;new&nbsp;String(entry.getKey());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;value&nbsp;=&nbsp;new&nbsp;String(entry.getValue());&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(column&nbsp;+&nbsp;","&nbsp;+&nbsp;value);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;}}
随时随地看视频慕课网APP
我要回答