lenchv / hive-driver

Driver for connection to Apache Hive via Thrift API
MIT License
40 stars 9 forks source link
hadoop hive hivejs hiveserver2 javascript js kerberos ldap node-js sasl thrift

Hive Driver

npm test coverage

Description

Hive Driver is a Java Script driver for connection to Apache Hive via Thrift API.

This driver can connect with SASL authentication mechanisms (such as LDAP, PLAIN, Kerberos) using both HTTP and TCP transport.

Installation

npm i hive-driver

If you'd like to use Kerberos, you have to install and build the kerberos module on your own

npm i kerberos

Usage

examples/usage.js

const hive = require('hive-driver');
const { TCLIService, TCLIService_types } = hive.thrift;
const client = new hive.HiveClient(
    TCLIService,
    TCLIService_types
);

client.connect(
    {
        host: 'localhost',
        port: 10000
    },
    new hive.connections.TcpConnection(),
    new hive.auth.NoSaslAuthentication()
).then(async client => {
    const session = await client.openSession({
        client_protocol: TCLIService_types.TProtocolVersion.HIVE_CLI_SERVICE_PROTOCOL_V10
    });
    const response = await session.getInfo(
        TCLIService_types.TGetInfoType.CLI_DBMS_VER
    );

    console.log(response.getValue());

    await session.close();
}).catch(error => {
    console.log(error);
});

For more details see: Getting Started

Test

Unit tests:

npm run test

e2e tests:

npm run e2e

NOTICE

e2e tests use dockerized Hive instance, for more details see: .docker

Contributing

See CONTRIBUTING.md

Issues

If you find some issues, feel free to create an issue or send a pull request.

License

MIT License

Copyright (c) 2020 Volodymyr Liench