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" clienton "error" consolelog "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 = rowKeyputadd cfqualifiervalue clientput tableput consolelog arguments
get
get table, get, callback
get = rowKey clientget tableget consolelog arguments
delete
delete table, delete, callback
del = rowKey clientdelete tabledel consolelog arguments
mput
Values can be only strings or buffers.
mput table, arrayOfPutObjects, callback
mput table, arrayOfObjects, callback
put1 = rowKey1put1add cf1qualifier1value1 put2 = rowKey2put2add cf2qualifier2value2 clientmput tableput1put2 consolelog arguments
put1 = row: rowKey1put1":"= value1 put2 = row: rowKey2put2":"= value2 clientmput tableput1put2 consolelog arguments
mget
mget table, arrayOfGetObjects, callback
mget table, arrayOfObjects, callback
get1 = rowKey1get2 = rowKey2 clientmget tableget1get2 consolelog arguments
clientmget tablerowKey1rowKey2 consolelog arguments
mdelete
mdelete table, arrayOfDeleteObjects, callback
mdelete table, arrayOfObjects, callback
delete1 = rowKey1delete2 = rowKey2 clientmdelete tabledelete1delete2 consolelog arguments
clientmdelete tablerowKey1rowKey2 consolelog 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 = clientgetScanner table scannext consolelog arguments
scan = clientgetScanner tablestartRowstopRow scannext consolelog arguments
scan = clientgetScanner tablescansetFilter columnPrefixFilter: prefix: columnPrefix scannext consolelog arguments
scan = clientgetScanner 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 = filterList2 = filterList3 = "MUST_PASS_ONE" filterList1addFilter f1filterList2addFilter f2 filterList3addFilter filterList1filterList3addFilter filterList2 scansetFilter filterList3scantoArray consolelog arguments
scan = clientgetScanner table scantoArray consolelog arguments
scan = clientgetScanner table scaneach return unless row # no more rows # do something with row synchronously
scan = clientgetScanner table scaneach return unless row # no more rows # do something with row asynchronously done
scan = clientgetScanner table scaneach # do something with row asynchronously done # error or no more rows consolelog err if err
checkAndPut
Values can be only strings or buffers.
checkAndPut table, rowKey, cf, qualifier, value, putObject, callback
put = rowKey1putadd cf1qualifier1value1 clientcheckAndPut tablerowKey2cf2qualifier2value2put consolelog arguments
checkAndDelete
checkAndDelete table, rowKey, cf, qualifier, value, deleteObject, callback
del = rowKey1 clientcheckAndDelete tablerowKey2cf2qualifier2value2del consolelog arguments
increment
increment table, incrementObject, callback
increment = rowKeyincrementadd cf1qualifier1incrementValue1incrementadd cf2qualifier2incrementValue2 clientincrement tableincrement consolelog arguments
incrementColumnValue
incrementColumnValue table, rowKey, cf, qualifier, value, callback
clientincrementColumnValue tablerowKeycfqualifierincrementValue consolelog arguments
License
hbase-rpc-client is made available under the Apache License, version 2.0