<div class="content" id="articleContent">
<div class="ad-wrap">
<p><a href="https://my.oschina.net/u/2663968/blog/3061697" style="color:#A00;font-weight:bold;">2019独角兽企业重金招聘Python工程师标准>>> </a> <img alt="hot3.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-cf0d92129138e2c138e143696168013a.png"></p>
</div>
<div class="markdown_views">
<div class="article_content tracking-ad">
<div class="markdown_views">
<p>我的HBase版本是0.98 <br> 首先说明一下,如果用eclipse操作hbase时,如果报Unknown host错误,找不到主机,是因为你没有配IP地址的映射 <br> 方法是 找到你的系统盘里面的C:\Windows\System32\drivers\etc下的hosts文件,打开,增加一个映射 <br> 加一个映射</p>
<pre class="brush:prettyprint;toolbar:true"><code class="hljs has-numbering"> 192.168.52.140 master</code>
</pre>
<ul><li>1</li></ul>
<div class="save_code tracking-ad">
<img alt="18173310_cIne.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-38f2860264e1a0d95d1d6b8382a66a20.png">
</div>
<p>话不多说,直接看代码,注释很详细</p>
<pre class="brush:prettyprint;toolbar:true"><code class="hljs avrasm has-numbering">
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
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.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
public class MyHbaseApi {
public static void main(String[] args) {
Admin admin=null;
Connection con=null;
try {
//1.获得配置文件对象
Configuration conf=HBaseConfiguration.create();
//设置配置参数
conf.set("hbase.zookeeper.quorum", "192.168.52.140");
//2.建立连接
con=ConnectionFactory.createConnection(conf);
//3.获得会话
admin=con.getAdmin();
//System.out.println(con);
//System.out.println(admin);
//4.操作
//建立数据库
//创建表名对象
TableName tn=TableName.valueOf("stu");
//a.判断数据库是否存在
if(admin.tableExists(tn)){
System.out.println("====> 表存在,删除表....");
//先使表设置为不可编辑
admin.disableTable(tn);
//删除表
admin.deleteTable(tn);
System.out.println("表删除成功.....");
}
System.out.println("===>表不存在,创建表......");
//创建表结构对象
HTableDescriptor htd=new HTableDescriptor(tn);
//创建列族结构对象
HColumnDescriptor hcd1=new HColumnDescriptor("fm1");
HColumnDescriptor hcd2=new HColumnDescriptor("fm2");
htd.addFamily(hcd1);
htd.addFamily(hcd2);
//创建表
admin.createTable(htd);
System.out.println("创建表成功...");
//向表中插入数据
//a.单个插入
Put put =new Put(Bytes.toBytes("row01"));//参数是行健row01
put.addColumn(Bytes.toBytes("fm1"), Bytes.toBytes("col1"), Bytes.toBytes("value01"));
//获得表对象
Table table=con.getTable(tn);
table.put(put);
//批量插入
Put put01 =new Put(Bytes.toBytes("row02"));//参数是行健row02
put01.addColumn(Bytes.toBytes("fm2"), Bytes.toBytes("col2"), Bytes.toBytes("value02")).
addColumn(Bytes.toBytes("fm2"), Bytes.toBytes("col3"), Bytes.toBytes("value03"));
Put put02 =new Put(Bytes.toBytes("row03"));//参数是行健row01
put02.addColumn(Bytes.toBytes("fm1"), Bytes.toBytes("col4"), Bytes.toBytes("value04"));
List<Put> puts=Arrays.asList(put01,put02);
//获得表对象
Table table02=con.getTable(tn);
table02.put(puts);
//读取操作
//scan
Scan scan=new Scan();
//获得表对象
Table table03=con.getTable(tn);
//得到扫描的结果集
ResultScanner rs=table03.getScanner(scan);
for(Result result:rs){
//得到单元格集合
|
|