Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用node js连接配置单元服务器_Node.js_Hadoop_Hive - Fatal编程技术网

Node.js 如何使用node js连接配置单元服务器

Node.js 如何使用node js连接配置单元服务器,node.js,hadoop,hive,Node.js,Hadoop,Hive,我正在尝试使用jshs2连接配置单元,但无法建立连接。是 这是使用此npm连接蜂箱的正确方法。我的源代码如下: const jshs2 = require('jshs2'); const options = {}; options.auth = 'NOSASL'; options.host = 'host name'; options.port = '10000'; options.username = 'user name'; options.password = 'password'; op

我正在尝试使用jshs2连接配置单元,但无法建立连接。是 这是使用此npm连接蜂箱的正确方法。我的源代码如下:

const jshs2 = require('jshs2');
const options = {};
options.auth = 'NOSASL';
options.host = 'host name';
options.port = '10000';
options.username = 'user name';
options.password = 'password';
options.hiveType = 2;
const hiveConfig = new Configuration(options);
const idl = new IDLContainer();
async function main() {
        await idl.initialize(hiveConfig);
        const connection = await new HiveConnection(hiveConfig, idl);
        const cursor = await connection.connect();
        const res = await cursor.execute('SELECT * FROM orders LIMIT 10');
        if (res.hasResultSet) {
            const fetchResult = await cursor.fetchBlock();
            fetchResult.rows.forEach((row) => {
                console.log(row);
            });
        }
        cursor.close();
        connection.close();
}
main().then(() => {
        console.log('Finished.');
});

正如您在评论中提到的,您使用SASL auth,但的作者提到lib不支持SASL身份验证()

您可以在nodejs中使用或使用SASL连接配置单元

const-hive=require('hive-driver');
const{TCLIService,TCLIService_types}=hive.thrift;
const client=new hive.HiveClient(
副主席,
TCLIService_类型
);
const utils=新配置单元。配置单元(
TCLIService_类型
);
client.connect(
{
主机:'主机名',
港口:10000
},
新建配置单元.connections.TcpConnection(),
新的hive.auth.PlainTcpAuthentication({
用户名:“用户名”,
密码:“密码”
})
)。然后(异步客户端=>{
const session=wait client.openSession({
客户端协议:TCLIService\u types.TProtocolVersion.HIVE\u CLI\u服务\u协议\u V10
});
const operation=wait session.executeStatement(
'从订单限额10中选择*
);
wait utils.waitUntilReady(操作,false,()=>{});
等待utils.fetchAll(操作);
console.log(
utils.getResult(selectDataOperation.getValue())
);
等待操作。关闭();
等待会话。关闭();

});您得到的错误是什么?您使用的是哪个版本的节点?node js版本是v10.0.0.0,无法在连接上建立连接。connect()行没有得到任何响应。您使用的是Hiveserver还是Hiveserver2?Hiveserver2和hive.server2。身份验证设置为默认值,即SASL。我们不想改变服务器上的配置,除非我们需要使用NodeJS连接配置单元服务器。如果没有,请建议其他解决方案。请编辑您的问题并共享相关代码/文件。不是这样的。