0.1.15 • Published 7 years ago
hbase-rpc-client v0.1.15
hbase-rpc-client
CoffeeScript HBase Implementation with protobuf support based on https://github.com/alibaba/node-hbase-client/
Installation
npm install -S hbase-rpc-client
Supported HBase versions
- 0.98.x
- 1.0.x
- 1.2.x
Features
- get
- put
- delete
- mget
- mput
- mdelete
- checkAndPut
- checkAndDelete
- scan: √ filter √ filterList * √ reverse scan
- increment
- incrementColumnValue
- getRowOrBefore
- mutateRow
- append
Create a hbase client through zookeeper
hbase = require "hbase-rpc-client"
client = hbase
zookeeperHosts: ["localhost"] # required
zookeeperRoot: "/hbase"
zookeeperReconnectTimeout: 20000
rootRegionZKPath: "/meta-region-server"
rpcTimeout: 30000
callTimeout: 5000
tcpNoDelay: no
tcpKeepAlive: yes
realUser: "someRealUser"
effectiveUser: "someEffectiveUser"
client.on "error", (err) ->
console.log "hbase client error:", err
In case you experience slow communication with hbase, please see issue #24 and try to set tcpNoDelay: true
Timeouts explained:
- zookeeperReconnectTimeout - Time after zookeeper watcher creates new zk client upon receiving following events: closing, session_expired or authentication_failed (other events are handled by node-zookeeper-client). Default: 20000ms (set by zookeeper-watcher)
- rpcTimeout - Time after hbase-rpc-client emits an error if it doesn't manage to ensure zookeeper connection or doesn't manage to get region server connection. Default: 30000ms
- callTimeout - Time after each operation call on hbase timeouts. Default: 5000ms
put
Values can be only strings or buffers.
put table, put, callback
put = new hbase.Put rowKey
put.add cf, qualifier, value
client.put table, put, (err, res) ->
console.log arguments
get
get table, get, callback
get = new hbase.Get rowKey
client.get table, get, (err, res) ->
console.log arguments
delete
delete table, delete, callback
del = new hbase.Delete rowKey
client.delete table, del, (err, res) ->
console.log arguments
mput
Values can be only strings or buffers.
mput table, arrayOfPutObjects, callback
mput table, arrayOfObjects, callback
put1 = new hbase.Put rowKey1
put1.add cf1, qualifier1, value1
put2 = new hbase.Put rowKey2
put2.add cf2, qualifier2, value2
client.mput table, [put1, put2], (err, res) ->
console.log arguments
put1 =
row: rowKey1
put1["#{cf1}:#{qualifier1}"] = value1
put2 =
row: rowKey2
put2["#{cf2}:#{qualifier2}"] = value2
client.mput table, [put1, put2], (err, res) ->
console.log arguments
mget
mget table, arrayOfGetObjects, callback
mget table, arrayOfObjects, callback
get1 = new hbase.Get rowKey1
get2 = new hbase.Get rowKey2
client.mget table, [get1, get2], (err, res) ->
console.log arguments
client.mget table, [rowKey1, rowKey2], (err, res) ->
console.log arguments
mdelete
mdelete table, arrayOfDeleteObjects, callback
mdelete table, arrayOfObjects, callback
delete1 = new hbase.Delete rowKey1
delete2 = new hbase.Delete rowKey2
client.mdelete table, [delete1, delete2], (err, res) ->
console.log arguments
client.mdelete table, [rowKey1, rowKey2], (err, res) ->
console.log arguments
scan
scanner = getScanner table, startRow, stopRow
scanner.setFilter filter
scanner.setReversed()
scanner.next callback
scanner.each function, callback
scanner.toArray callback
scanner.close()
scan = client.getScanner table
scan.next (err, row) ->
console.log arguments
scan = client.getScanner table, startRow, stopRow
scan.next (err, row) ->
console.log arguments
scan = client.getScanner table
scan.setFilter columnPrefixFilter: prefix: columnPrefix
scan.next (err, row) ->
console.log arguments
scan = client.getScanner table
filter1 =
singleColumnValueFilter:
columnFamily: cf1
columnQualifier: qualifier1
compareOp: "EQUAL"
comparator:
substringComparator:
substr: value1
filterIfMissing: yes
latestVersionOnly: yes
filter2 =
singleColumnValueFilter:
columnFamily: cf2
columnQualifier: qualifier2
compareOp: "EQUAL"
comparator:
substringComparator:
substr: value2
filterIfMissing: yes
latestVersionOnly: yes
filterList1 = new hbase.FilterList
filterList2 = new hbase.FilterList
filterList3 = new hbase.FilterList "MUST_PASS_ONE"
filterList1.addFilter f1
filterList2.addFilter f2
filterList3.addFilter filterList1
filterList3.addFilter filterList2
scan.setFilter filterList3
scan.toArray (err, res) ->
console.log arguments
scan = client.getScanner table
scan.toArray (err, res) ->
console.log arguments
scan = client.getScanner table
scan.each (err, row) ->
return unless row # no more rows
# do something with row synchronously
scan = client.getScanner table
scan.each (err, row, done) ->
return unless row # no more rows
# do something with row asynchronously
done()
scan = client.getScanner table
scan.each (err, row, done) ->
# do something with row asynchronously
done()
, (err) ->
# error or no more rows
console.log err if err
checkAndPut
Values can be only strings or buffers.
checkAndPut table, rowKey, cf, qualifier, value, putObject, callback
put = new hbase.Put rowKey1
put.add cf1, qualifier1, value1
client.checkAndPut table, rowKey2, cf2, qualifier2, value2, put, (err, res) ->
console.log arguments
checkAndDelete
checkAndDelete table, rowKey, cf, qualifier, value, deleteObject, callback
del = new hbase.Put rowKey1
client.checkAndDelete table, rowKey2, cf2, qualifier2, value2, del, (err, res) ->
console.log arguments
increment
increment table, incrementObject, callback
increment = new hbase.Increment rowKey
increment.add cf1, qualifier1, incrementValue1
increment.add cf2, qualifier2, incrementValue2
client.increment table, increment, (err, res) ->
console.log arguments
incrementColumnValue
incrementColumnValue table, rowKey, cf, qualifier, value, callback
client.incrementColumnValue table, rowKey, cf, qualifier, incrementValue, (err, res) ->
console.log arguments
License
hbase-rpc-client is made available under the Apache License, version 2.0
0.1.15
7 years ago
0.1.14
7 years ago
0.1.13
7 years ago
0.1.12
7 years ago
0.1.11
8 years ago
0.1.10
9 years ago
0.1.9
9 years ago
0.1.8
9 years ago
0.1.7
9 years ago
0.1.6
9 years ago
0.1.5
10 years ago
0.1.4
10 years ago
0.1.3
10 years ago
0.1.2
10 years ago
0.1.1
10 years ago
0.1.0
10 years ago
0.0.3
10 years ago
0.0.2
10 years ago
0.0.1
10 years ago