Hbase是用Java完成的,在其中Java API是原生态适用的,别的计算机语言插口必须受勤俭节约协议书的适用。hbase的官方网编码库中包括了Java完成的原生态浏览手机客户端,org.apache.hadoop.hbase.client的库中的有关类全是与Hbase数据信息存储系统有关的API。

操作过程有:HBase配备,HBase表管理方法,列族管理方法,列管理方法,数据信息控制等。

关联性依靠

的官方网Jar包坐落于HBase安装文件下的lib根目录中。Maven一般用以管理方法Jar相互依赖。关键应用hbase-clientt-x.x.x.jar和hbase-common-x.x.x.jar..

Maven管理方法相互依赖,并加上:

org.apache.hbase hbase-client 2.4.1 org.apache.hbase hbase-common 2.4.1

导进的基本上类有:

import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.*;import org.apache.hadoop.hbase.client.*;import org.apache.hadoop.hbase.util.Bytes;

运用程序编写插口的类型

管理方法Hbase,随后应用管理方法页面建立,删掉和变更表。数据信息CRUD,应用表插口等。主要是管理方法和表插口及其配备,ioctl,放,获得,結果和扫描仪。

Admin,管理方法HBase数据库查询的表信息内容的插口。HBaseConfiguration,Hbase的配备类。HTableDescriptor,表的叙述类,包括了表的名称以及相匹配表的列族。HClounmDescriptor,列族叙述类,维护保养着有关列族的信息内容,比如版本信息,缩小设定等。HTable,表的管理类专业,和HBase表立即通讯。Put,数据信息增加改动管理类专业,对单独行实行加上实际操作。Get,数据获取管理类专业,对单独行执行查询实际操作。Result,結果类,储存Get或是Scan实际操作后获得表的单行值。Scan,限制搜索类,对好几个行执行查询实际操作。ResultScanner,获得scan值的接口类。

Java客户端软件

创建联接,在分布式系统自然环境下,手机客户端浏览 HBase 必须根据 ZooKeeper 的具体位置和端口号来获得当今活跃性的 Master 和需要的 RegionServer 详细地址。在Hbase3.0 中,能够立即应用Master详细地址。Configuration cf = HBaseConfiguration.create();//默认设置也是2181// configuration.set("hbase.zookeeper.property.clientPort", "2181");cf.set("hbase.zookeeper.quorum", "10.0.3.71");// v3.0可只配备master详细地址。// cf.set("hbase.master", "10.0.3.71:16000");Connection conn = ConnectionFactory.createConnection(cf);//应用完后,必须关掉联接void close();表实际操作,全是应用 Admin 插口,务必启用 Connection.getAdmin() 方式回到一个子目标。String tablename = "TableName";TableName tableName = TableName.valueOf(tablename);Admin admin = conn.getAdmin();//Admin常见的插口如下所示://表是不是存有boolean tableExists(TableName tableName);//列举全部表List listTableDescriptors();//删除表,先禁止使用表,再删掉void disableTable(TableName tableName);void deleteTable(TableName tableName);//开启已禁止使用的表void enableTable(TableName tableName);//给表加字段名void addColumnFamily(TableName tableName, ColumnFamilyDescriptor columnFamily);//创建表,必须特定列族String columnname = "cf";List families = new ArrayList();ColumnFamilyDescriptor cfDesc = ColumnFamilyDescriptorBuilder.newBuilder(columnname.getBytes()).build();families.add(cfDesc);TableDescriptor tabDesc = TableDescriptorBuilder.newBuilder(tableName).setColumnFamilies(families).build();admin.createTable(tabDesc);admin.getConnection().close();数据信息浏览,根据Table对象连接到Hbase开展实际操作。增加数据信息如下所示://必须先有Table与TableName案例Table table = conn.getTable(tableName);//一行,主要参数是rowKeyPut put = new Put ("rowKeyName".getBytes());//加字段名值:主要参数分别是列族,列,值put.add("cfName".getBytes(),"colName".getBytes(),"value001".getBytes());table.put(put);

获得单行数据信息如下所示:

Get get = new Get("rowKeyName".getBytes());Result result = table.get(get);//从結果中取得模块值for (Cell cell : result.rawCells()) { //列族名 cell.getFamilyArray() //字段名 cell.getQualifierArray() //值 cell.getValueArray() s}

比较有限检索:能够特定版本信息,起止号码,完毕号码,列族,列限定符,传参数量限制等。

Scan scan = new Scan();//能够特定scan主要参数:addColumn,setTimeRange,setBatchResultScanner resutScanner = table.getScanner(scan);//取得結果集for(Result result: resutScanner){ //对结论开展列值获取 result.rawCells()}

联接到手机客户端时很有可能产生的不正确。

NoNode for /hbase/master master沒有一切正常运行,将hbase的master连接点重新启动一下。Master is initializing master在zookeeper中的数据信息异常,删掉后,重新启动一下hbase。hdfs中的文档也需要删掉一下。

评论(0条)

刀客源码 游客评论