{"id":22968763,"url":"https://github.com/adaltas/node-hbase","last_synced_at":"2025-08-13T10:32:29.834Z","repository":{"id":1096845,"uuid":"955669","full_name":"adaltas/node-hbase","owner":"adaltas","description":"Asynchronous HBase client for NodeJs using REST","archived":false,"fork":false,"pushed_at":"2021-09-13T08:28:09.000Z","size":377,"stargazers_count":242,"open_issues_count":10,"forks_count":101,"subscribers_count":29,"default_branch":"master","last_synced_at":"2024-04-20T14:28:36.660Z","etag":null,"topics":["bigdata","driver","hbase","nodejs","rest"],"latest_commit_sha":null,"homepage":"https://hbase.js.org","language":"CoffeeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adaltas.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-10-02T00:24:42.000Z","updated_at":"2023-12-21T13:24:24.000Z","dependencies_parsed_at":"2022-08-16T12:00:42.180Z","dependency_job_id":null,"html_url":"https://github.com/adaltas/node-hbase","commit_stats":null,"previous_names":["wdavidw/node-hbase"],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adaltas%2Fnode-hbase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adaltas%2Fnode-hbase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adaltas%2Fnode-hbase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adaltas%2Fnode-hbase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adaltas","download_url":"https://codeload.github.com/adaltas/node-hbase/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229755273,"owners_count":18119201,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bigdata","driver","hbase","nodejs","rest"],"created_at":"2024-12-14T21:19:51.767Z","updated_at":"2024-12-14T21:19:59.563Z","avatar_url":"https://github.com/adaltas.png","language":"CoffeeScript","funding_links":[],"categories":["Libraries and Clients"],"sub_categories":[],"readme":"\n[![Build Status](https://secure.travis-ci.org/adaltas/node-hbase.png)](http://travis-ci.org/adaltas/node-hbase)\n\n[Node.js HBase](https://hbase.js.org) is a Node.JS client for the [Apache HBase](https://hbase.apache.org/)\ndatabase. It use the Rest API (Stargate) to communicate with HBase. Currently,\nall the API is implemented and the data exchange format is JSON (but protocol\nbuffer could follow).\n\nApache HBase is part of the Hadoop ecosystem. It describes itself as the Hadoop\ndatabase optimized for random, realtime read/write access to big data. It is an\nopen-source, distributed, versioned, column-oriented store modeled after Google\nBigtable.\n\nClient features include:\n\n*   Intuitive API following Apache HBase naming conventions\n*   Documentation and tests\n*   Full Implementation of the REST API\n*   Transparent encoding/decoding of values\n*   Scanner and filter support implementing the `stream.Readable` API\n*   Kerberos Support\n\n## About HBase\n\nApache HBase is part of the Hadoop ecosystem from the Apache Software Foundation. It \nis a column oriented database (think NoSql) that really scale and is modelled \nafter Google papers and its BigTable database.\n\n## Installing\n\nFrom your project directoy, via [npm](http://github.com/isaacs/npm):\n\n```bash\nnpm install hbase\n# Or without the krb5 optional dependency\nnpm install hbase --no-optional\n```\n\n## Documentation\n\n* [Index](https://hbase.js.org/learn/quickstart/)   \n  Getting started\n* [Client](https://hbase.js.org/api/client/)   \n  Server information and object factory\n* [Connection](https://hbase.js.org/api/connection/)   \n  HTTP REST requests\n* [Row](https://hbase.js.org/api/row/)   \n  CRUD operation on rows and columns\n* [Scanner](https://hbase.js.org/api/scanner/)   \n  Retrieve multiple rows and columns\n* [Table](https://hbase.js.org/api/table/)   \n  Create, modify and delete HBase tables\n\n## Quick example\n\nThe following code initialise a new HBase instance, create a table and a column family,\ninsert a record and read it.\n\n```javascript\nconst hbase = require('hbase')\n// Instantiate a new client\nclient = hbase({ host: '127.0.0.1', port: 8080 })\n// Create a table\nclient\n.table('my_table' )\n.create('my_column_family', function(err, success){\n  // Insert a record\n  client\n  .table('my_table' )\n  .row('my_row')\n  .put('my_column_family:my_column', 'my value', function(err, success){\n    // Read a record\n    client\n    .table('my_table' )\n    .row('my_row')\n    .get('my_column_family', function(err, [cell]){\n      // Validate the result\n      assert(cell.key, 'my_row')\n      assert(cell.column, 'my_column_family:my_column')\n      assert(cell.$, 'my value')\n    })\n  })\n})\n```\n\nOr shortly as:\n\n```javascript\n// Instantiate a new client\nrequire('hbase')({ host: '127.0.0.1', port: 8080 })\n// Create a table\n.table('my_table' )\n.create('my_column_family', function(err, success){\n  // Insert a record\n  this.put('my_column_family:my_column', 'my value', function(err, success){\n    // Read a record\n    this.get('my_column_family', function(err, [[cell]]){\n      // Validate the result\n      // ...\n    })\n  })\n})\n```\n\n## Using Kerberos/SPNEGO\n\nOptions accepts a krb5 object. Password and keytab authentication are supported. \nRefer to the [krb5] package for additionnal information on how to configure the\nkrb5 option.\n\nUsing a keytab:\n\n```javascript\nconst hbase = require('hbase');\nhbase({\n  host: '127.0.0.1',\n  port: 8080,\n  \"krb5\": {\n    \"principal\": \"{username}@{REALM}\",\n    \"keytab\": \"{path/to/keytab}\",\n    \"service_principal\": \"HTTP@{fqdn}\"\n  }\n})\n.version();\n```\n\nUsing a password:\n\n```javascript\nconst hbase = require('hbase');\nhbase({\n  host: '127.0.0.1',\n  port: 8080,\n  \"krb5\": {\n    \"principal\": \"{username}@{REALM}\",\n    \"password\": \"{password}\",\n    \"service_principal\": \"HTTP@{fqdn}\"\n  }\n})\n.version();\n```\n\n## Scanner and Filters\n\nThe scanner implement the `stream.Readable` API. For ease of usage, an optional\ncallback argument may be provided. For example:\n\n```bash\nclient\n.table('node_table')\n.scan({\n  startRow: 'my_row',\n  maxVersions: 1\n}, function(err, rows){\n  console.log(err, rows);\n});\n```\n\nis equivalent to:\n\n```coffee\nconst rows = [];\nscanner = client\n.table('node_table')\n.scan({\n  startRow: 'my_row',\n  maxVersions: 1\n});\nscanner.on('readable', function(){\n  while(chunk = scanner.read()){\n    rows.push(chunk);\n  }\n});\nscanner.on('error', function(err){\n  console.log(err);\n});\nscanner.on('end', function(){\n  console.log(rows);\n});\n```\n\nIt can be quite a pain to figure out what options can be sent\nwith a scanner request. You will find a lot of examples inside the \n[Scanner test][scanner] and also look at the [examples][mt_samples] published by\n[Marc Trudel][mt_home].\n\n## More documentation\n\n*   [Developer Guide](https://hbase.js.org/learn/developer/)\n*   [Contributor Guide](https://hbase.js.org/learn/contribute/)\n\n## Related projects\n\n*   [Official Apache HBase project](http://hbase.apache.org)\n*   [REST server bundled with HBase (Stargate)](https://wiki.apache.org/hadoop/Hbase/Stargate)\n\n## Contributors\n\n*   David Worms: \u003chttps://www.adaltas.com\u003e\n*   Michael Kurze: \u003chttps://github.com/michaelku\u003e\n*   Michal Taborsky: \u003chttps://github.com/whizz\u003e\n*   Pierre Sauvage: \u003chttps://github.com/Pierrotws\u003e\n\nThis package is developed by [Adaltas](http://www.adaltas.com).\n\n[ryba]: https://github.com/ryba-io/ryba\n[scanner]: https://github.com/adaltas/node-hbase/blob/master/test/scanner.coffee\n[mt_samples]: https://gist.github.com/3979381\n[mt_home]: https://github.com/stelcheck\n[krb5]: https://github.com/adaltas/node-krb5\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadaltas%2Fnode-hbase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadaltas%2Fnode-hbase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadaltas%2Fnode-hbase/lists"}