鍍金池/ 教程/ 大數(shù)據(jù)/ HBase更新數(shù)據(jù)
HBase禁用表
HBase創(chuàng)建表
HBase客戶端API
HBase安裝
HBase表描述和修改
HBase Admin API
HBase掃描
HBase創(chuàng)建數(shù)據(jù)
HBase列出表
HBase刪除數(shù)據(jù)
HBase讀取數(shù)據(jù)
HBase常用命令
HBase更新數(shù)據(jù)
HBase關(guān)閉
HBase架構(gòu)
HBase Shell
HBase Exists
HBase安全
HBase教程
HBase啟用表
HBase計數(shù)和截斷
HBase刪除表

HBase更新數(shù)據(jù)

可以使用put命令更新現(xiàn)有的單元格值。按照下面的語法,并注明新值,如下圖所示。

put table name’,’row ’,'Column family:column name',’new value

新給定值替換現(xiàn)有的值,并更新該行。

示例

假設(shè)HBase中有一個表emp擁有下列數(shù)據(jù)

hbase(main):003:0> scan 'emp'
 ROW              COLUMN+CELL
row1 column=personal:name, timestamp=1418051555, value=raju
row1 column=personal:city, timestamp=1418275907, value=Hyderabad
row1 column=professional:designation, timestamp=14180555,value=manager
row1 column=professional:salary, timestamp=1418035791555,value=50000
1 row(s) in 0.0100 seconds

以下命令將更新名為“Raju'員工的城市值為'Delhi'。

hbase(main):002:0> put 'emp','row1','personal:city','Delhi'
0 row(s) in 0.0400 seconds

更新后的表如下所示,觀察這個城市Raju的值已更改為“Delhi”。

hbase(main):003:0> scan 'emp'
  ROW          COLUMN+CELL
row1 column=personal:name, timestamp=1418035791555, value=raju
row1 column=personal:city, timestamp=1418274645907, value=Delhi
row1 column=professional:designation, timestamp=141857555,value=manager
row1 column=professional:salary, timestamp=1418039555, value=50000
1 row(s) in 0.0100 seconds

使用Java API更新數(shù)據(jù)

使用put()方法將特定單元格更新數(shù)據(jù)。按照下面給出更新表的現(xiàn)有單元格值的步驟。

第1步:實例化Configuration類

Configuration類增加了HBase的配置文件到它的對象。使用HbaseConfiguration類的create()方法,如下圖所示的配置對象。

Configuration conf = HbaseConfiguration.create();

第2步:實例化HTable類

有一類叫HTable,實現(xiàn)在HBase中的Table類。此類用于單個HBase的表進(jìn)行通信。在這個類實例,它接受配置對象和表名作為參數(shù)。實例化HTable類,如下圖所示。

HTable hTable = new HTable(conf, tableName);

第3步:實例化Put類

要將數(shù)據(jù)插入到HBase表中,使用add()方法和它的變體。這種方法屬于Put類,因此實例化Put類。這個類必須以字符串格式的列名插入數(shù)據(jù)。可以實例化Put類,如下圖所示。

Put p = new Put(Bytes.toBytes("row1"));

第4步:更新現(xiàn)有的單元格

Put 類的add()方法用于插入數(shù)據(jù)。它需要表示列族,列限定符(列名稱)3字節(jié)陣列,并要插入的值。將數(shù)據(jù)插入HBase表使用add()方法,如下圖所示。

p.add(Bytes.toBytes("coloumn family "), Bytes.toBytes("column
name"),Bytes.toBytes("value"));
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("city"),Bytes.toBytes("Delih"));

第5步:保存表數(shù)據(jù)

插入所需的行后,HTable類實例的put()方法添加如下所示保存更改。

hTable.put(p); 

第6步:關(guān)閉HTable實例

創(chuàng)建在HBase的表數(shù)據(jù)之后,使用close()方法,如下所示關(guān)閉HTable實例。

hTable.close();

下面給出的是完整的程序,在一個特定的表更新數(shù)據(jù)。

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable上一篇:HBase Admin API下一篇:HBase掃描