All Projects → adaltas → Node Hbase

adaltas / Node Hbase

Licence: mit
Asynchronous HBase client for NodeJs using REST

Programming Languages

coffeescript
4710 projects

Projects that are alternatives of or similar to Node Hbase

yuzhouwan
Code Library for My Blog
Stars: ✭ 39 (-82.74%)
Mutual labels:  bigdata, hbase
dockerfiles
Multi docker container images for main Big Data Tools. (Hadoop, Spark, Kafka, HBase, Cassandra, Zookeeper, Zeppelin, Drill, Flink, Hive, Hue, Mesos, ... )
Stars: ✭ 29 (-87.17%)
Mutual labels:  bigdata, hbase
BigDataTools
tools for bigData
Stars: ✭ 36 (-84.07%)
Mutual labels:  bigdata, hbase
Datafaker
Datafaker is a large-scale test data and flow test data generation tool. Datafaker fakes data and inserts to varied data sources. 测试数据生成工具
Stars: ✭ 327 (+44.69%)
Mutual labels:  bigdata, hbase
God Of Bigdata
专注大数据学习面试,大数据成神之路开启。Flink/Spark/Hadoop/Hbase/Hive...
Stars: ✭ 6,008 (+2558.41%)
Mutual labels:  bigdata, hbase
Bigdata Interview
🎯 🌟[大数据面试题]分享自己在网络上收集的大数据相关的面试题以及自己的答案总结.目前包含Hadoop/Hive/Spark/Flink/Hbase/Kafka/Zookeeper框架的面试题知识总结
Stars: ✭ 857 (+279.2%)
Mutual labels:  bigdata, hbase
Bigdataguide
大数据学习,从零开始学习大数据,包含大数据学习各阶段学习视频、面试资料
Stars: ✭ 817 (+261.5%)
Mutual labels:  bigdata, hbase
Bigdata Notes
大数据入门指南 ⭐
Stars: ✭ 10,991 (+4763.27%)
Mutual labels:  bigdata, hbase
Springboot Examples
spring boot 实践系列
Stars: ✭ 216 (-4.42%)
Mutual labels:  rest
Serverest
APIs REST simulando loja virtual para servir de estudo de testes de API de forma manual ou automatizada
Stars: ✭ 223 (-1.33%)
Mutual labels:  rest
Eve Sqlalchemy
SQLAlchemy data layer for Eve-powered RESTful APIs
Stars: ✭ 215 (-4.87%)
Mutual labels:  rest
Restito
Restito - mocking framework for testing rest clients
Stars: ✭ 217 (-3.98%)
Mutual labels:  rest
Digital Restaurant
DDD. Event sourcing. CQRS. REST. Modular. Microservices. Kotlin. Spring. Axon platform. Apache Kafka. RabbitMQ
Stars: ✭ 222 (-1.77%)
Mutual labels:  rest
Gimel
Big Data Processing Framework - Unified Data API or SQL on Any Storage
Stars: ✭ 216 (-4.42%)
Mutual labels:  hbase
Driverstoreexplorer
Driver Store Explorer [RAPR]
Stars: ✭ 3,095 (+1269.47%)
Mutual labels:  driver
Ray
a framework that helps you to deliver well-designed python APIs
Stars: ✭ 215 (-4.87%)
Mutual labels:  rest
Sparkrdma
RDMA accelerated, high-performance, scalable and efficient ShuffleManager plugin for Apache Spark
Stars: ✭ 215 (-4.87%)
Mutual labels:  bigdata
Guzzle Services
Provides an implementation of the Guzzle Command library that uses Guzzle service descriptions to describe web services, serialize requests, and parse responses into easy to use model structures.
Stars: ✭ 226 (+0%)
Mutual labels:  rest
Vigem
Virtual Gamepad Emulation Framework
Stars: ✭ 225 (-0.44%)
Mutual labels:  driver
Spring Hateoas Examples
Collection of examples on how (and why) to build hypermedia-driven apps with Spring HATEOAS
Stars: ✭ 219 (-3.1%)
Mutual labels:  rest

Build Status

Node.js HBase is a Node.JS client for the Apache HBase database. It use the Rest API (Stargate) to communicate with HBase. Currently, all the API is implemented and the data exchange format is JSON (but protocol buffer could follow).

Apache HBase is part of the Hadoop ecosystem. It describes itself as the Hadoop database optimized for random, realtime read/write access to big data. It is an open-source, distributed, versioned, column-oriented store modeled after Google Bigtable.

Client features include:

  • Intuitive API following Apache HBase naming conventions
  • Documentation and tests
  • Full Implementation of the REST API
  • Transparent encoding/decoding of values
  • Scanner and filter support implementing the stream.Readable API
  • Kerberos Support

About HBase

Apache HBase is part of the Hadoop ecosystem from the Apache Software Foundation. It is a column oriented database (think NoSql) that really scale and is modelled after Google papers and its BigTable database.

Installing

Via npm:

npm install hbase

Documentation

  • Index
    Getting started
  • Client
    Server information and object factory
  • Connection
    HTTP REST requests
  • Row
    CRUD operation on rows and columns
  • Scanner
    Retrieve multiple rows and columns
  • Table
    Create, modify and delete HBase tables

Quick example

The following code initialise a new HBase instance, create a table and a column family, insert a record and read it.

const hbase = require('hbase')
// Instantiate a new client
client = hbase({ host: '127.0.0.1', port: 8080 })
// Create a table
client
.table('my_table' )
.create('my_column_family', function(err, success){
  // Insert a record
  client
  .table('my_table' )
  .row('my_row')
  .put('my_column_family:my_column', 'my value', function(err, success){
    // Read a record
    client
    .table('my_table' )
    .row('my_row')
    .get('my_column_family', function(err, [cell]){
      // Validate the result
      assert(cell.key, 'my_row')
      assert(cell.column, 'my_column_family:my_column')
      assert(cell.$, 'my value')
    })
  })
})

Or shortly as:

// Instantiate a new client
require('hbase')({ host: '127.0.0.1', port: 8080 })
// Create a table
.table('my_table' )
.create('my_column_family', function(err, success){
  // Insert a record
  this.put('my_column_family:my_column', 'my value', function(err, success){
    // Read a record
    this.get('my_column_family', function(err, [[cell]]){
      // Validate the result
      // ...
    })
  })
})

Using Kerberos/SPNEGO

Options accepts a krb5 object. Password and keytab authentication are supported. Refer to the krb5 package for additionnal information on how to configure the krb5 option.

Using a keytab:

const hbase = require('hbase');
hbase({
  host: '127.0.0.1',
  port: 8080,
  "krb5": {
    "principal": "{username}@{REALM}",
    "keytab": "{path/to/keytab}",
    "service_principal": "[email protected]{fqdn}"
  }
})
.version();

Using a password:

const hbase = require('hbase');
hbase({
  host: '127.0.0.1',
  port: 8080,
  "krb5": {
    "principal": "{username}@{REALM}",
    "password": "{password}",
    "service_principal": "[email protected]{fqdn}"
  }
})
.version();

Scanner and Filters

The scanner implement the stream.Readable API. For ease of usage, an optional callback argument may be provided. For example:

client
.table('node_table')
.scan({
  startRow: 'my_row',
  maxVersions: 1
}, function(err, rows){
  console.log(err, rows);
});

is equivalent to:

const rows = [];
scanner = client
.table('node_table')
.scan({
  startRow: 'my_row',
  maxVersions: 1
});
scanner.on('readable', function(){
  while(chunk = scanner.read()){
    rows.push(chunk);
  }
});
scanner.on('error', function(err){
  console.log(err);
});
scanner.on('end', function(){
  console.log(rows);
});

It can be quite a pain to figure out what options can be sent with a scanner request. You will find a lot of examples inside the Scanner test and also look at the examples published by Marc Trudel.

More documentation

Related projects

Contributors

This package is developed by Adaltas.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].