# nhdfs

> Node.js Native HDFS library wrapper

Latest version **0.0.4** (published 2018-03-05) · MIT license · 0 weekly downloads

## Install

```sh
npm install nhdfs
pnpm add nhdfs
yarn add nhdfs
bun add nhdfs
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.4 |
| Published | 2018-03-05 |
| First published | 2017-07-29 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 1.8 MB |
| Known vulnerabilities | 0 |
| Install scripts | yes |
| Author | timout |
| Maintainers | timout |
| Keywords | HDFS, libhdfs3 |

## Links

- npm: https://www.npmjs.com/package/nhdfs
- Repository: https://github.com/timout/nhdfs
- Issues: https://github.com/timout/nhdfs/issues
- npm.io page: https://npm.io/package/nhdfs

## Dependencies (2)

- [bindings](https://npm.io/package/bindings.md) ^1.2.1
- [node-addon-api](https://npm.io/package/node-addon-api.md) ^1.0.0

## Recent versions

- 0.0.4 (latest) — 2018-03-05
- 0.0.3 — 2017-10-08
- 0.0.2 — 2017-08-15
- 0.0.1 — 2017-07-29

## README

nhdfs
========================

**Node.js Native HDFS library wrapper**

#### Native hdfs library: 

 - [Pivotal libhdfs3](https://github.com/apache/incubator-hawq/tree/master/depends/libhdfs3)
 

### Requirement

To build nhdfs the following is required

    Node.js(8.6+) the library uses ABI-stable N-API for building the native Addon.
    cmake (2.8+)                    http://www.cmake.org/
    boost (tested on 1.53+)         http://www.boost.org/
    google protobuf                 http://code.google.com/p/protobuf/
    libxml2                         http://www.xmlsoft.org/
    kerberos                        http://web.mit.edu/kerberos/
    libuuid                         http://sourceforge.net/projects/libuuid/
    libgsasl                        http://www.gnu.org/software/gsasl/
    openssl                         https://www.openssl.org/

### Usage

**Note:** 
1) the module must be installed before use and N-API must be enabled on the 
command-line by adding --napi-modules (no need that option starting Node.js 8.6.0).
2) For Mac users, openssl must be installed with brew


``` js
const createFS = require('nhdfs').createFS;

const fs = createFS({service:"namenode", port:9000});
fs.list(".").then((list) => {
    list.forEach((element) => {
        console.log(element);
    });
})
.catch( (err) => {
    console.log(err);
})
```

#### Ways to connect
- By defining LIBHDFS3_CONF env variable: path to libhdfs3 config file or to hdfs-site.xml.  
  or by defining HADOOP_CONF_DIR env variable: Module will check if it has hdfs-site.xml inside.  
  or by defining HADOOP_CONF_DIR env variable defined: Module will check if it has hdfs-site.xml inside.  
    ``` js
    const createFS = require('nhdfs').createFS;
    const fs = createFS({service:"nameservice"});
    ```
- By providing path to config fileHADOOP_CONF_DIR env variable defined. Module will check if it has hdfs-site.xml inside.
    ``` js
    const createFS = require('nhdfs').createFS;
    const fs = createFS({service:"nameservice1", configurationPath:'/opt/hadoop/conf/hdfs-site.xml'});
    ```
- By providing NameNode host and port
    ``` js
    const createFS = require('nhdfs').createFS;
    const fs = createFS({service:"namenodehost", port:9000});
    ```

See [examples](https://github.com/timout/nhdfs/tree/master/examples) for more usage.

---
_Source: https://npm.io/package/nhdfs · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
