Coder Social home page Coder Social logo

node-hbase-thrift2's Introduction

node-hbase-thrift2

NPM Version NPM Downloads

Yet another NodeJS HBase thrift2 client. Reinforcement the Reconnect support.

Installation

$ npm install --save node-hbase-thrift2

Usage

1. Create client

var HBase = require('node-hbase-thrift2')

var config = {
    hosts: ['host1','host2'],
    port: 9090,
    timeout:1000
};

var hbaseClient = HBase.createClient(config);

2. Get a row data

var get = HBase.Get('rowkey');
get.add('family'); // or
get.add('family', 'qualifier'); // or
get.add('family', 'qualifier', 1); // has timestamp
hbaseClient.get('table', get, function(err,data){
    if(err)
        console.log('error:', err);
    else
        console.log('get:', data);
});
get: {
    row: 'rowkey',
    columnValues: [
        {
            family: 'family',
            qualifier: 'qualifier',
            value: <Buffer 31>,
            timestamp: 1488469442863
        }
    ]
}

3. Put or Update columns value in a row

var put = HBase.Put('rowkey');
put.add('family', 'qualifier', 'value'); // or
put.add('family', 'qualifier', 'value', Date.now()); // has timestamp
put.add('family', 'qualifier', HBase.Int64(65535)); // direct number buffer
hbaseClient.put('table', put, function(err){
    if(err)
        console.log('error:', err);
    else
        console.log('put is successfully');
});

HBase.Int64()

Create node-int64 instance

4. Increment columns value in a row

var inc = HBase.Inc('rowkey');
inc.add('family', 'qualifier');
inc.add('family', 'qualifier2', 2);
hbaseClient.inc('table', inc, function(err, data){
    if(err)
        console.log('error:', err);
    else
        console.log('inc:', data);
});
inc: {
    row: 'rowkey',
    columnValues: [
        {
            family: 'family',
            qualifier: 'qualifier',
            value: <Buffer 00 00 00 00 00 00 00 01>,
            timestamp: 1488469442863
        },
        {
            family: 'family',
            qualifier: 'qualifier2',
            value: <Buffer 00 00 00 00 00 00 00 02>,
            timestamp: 1488469442863
        }
    ]
}

5. Delete some columns value or a row

var del = HBase.Del('rowkey');
del.add('family'); // or
del.add('family', 'qualifier'); // or
del.add('family', 'qualifier', 1); // has timestamp
hbaseClient.del('table', del, function(err){
    if(err)
        console.log('error:', err);
    else
        console.log('del is successfully');
});

6. Scan some rows

// scan number of rows
var numRows = 10;
var scan = HBase.Scan('startrow');
scan.add('family'); // or
scan.add('family', 'qualifier'); // or
scan.add('family', 'qualifier', 1); // has timestamp
hbaseClient.scan('table', scan, numRows, function(err, rows){
    if(err)
        console.log('error:', err);
    else
        console.log('scan has', rows.length);
});

// scan all rows
var batchRows = 10;
var scanAll = HBase.Scan();
hbaseClient.scanForEach('table', scanAll, batchRows, function(rows, next) {
    console.log('scanEach once:', rows.length);
    next(null); // interrupt when next(err)
}, function(err){
    if(err)
        console.log('error:', err);
    else
        console.log('scanEach is successfully');
});

License

ISC

node-hbase-thrift2's People

Contributors

vietor avatar

Watchers

 avatar  avatar

node-hbase-thrift2's Issues

how to filter

How can I add filter to scan.

What is the difference between scan and scanEach?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.