gpt4 book ai didi

node.js - 将 node.js 应用程序连接到配置单元时出错

转载 作者:搜寻专家 更新时间:2023-10-31 23:46:38 27 4
gpt4 key购买 nike

我已经使用 node-hive 和 thrift 将我的 node js 应用程序连接到 hive,但它们都不起作用。是否有任何其他 Node 模块用于连接到配置单元?

最佳答案

作为 Node node-thrift-hivenode-hive两个模块都被放弃了,还没有提交 4 到 5 岁,我有同样的问题,我正在使用 Node 0.12,以下是我的解决方案。

步骤-1:你必须设置 Hiveserver2 ,我的 hive 版本是 1.2 和 hadoop 版本 2.7

https://cwiki.apache.org/confluence/display/Hive/Setting+Up+HiveServer2

如果您不想执行第 1 步,请将您的 Node js 升级到 4.5 > 并使用 jshs2 npm

在我的例子中,我不想升级我的 Node 版本,所以我尝试通过 JDBC 驱动程序连接 JDBC npm

第二步:使用下面的代码连接hive并获取数据

var JDBC = require('jdbc');
var jinst = require('jdbc/lib/jinst');

// isJvmCreated will be true after the first java call. When this happens, the
// options and classpath cannot be adjusted.
if (!jinst.isJvmCreated()) {
// Add all java options required by your project here. You get one chance to
// setup the options before the first java call.
jinst.addOption("-Xrs");
// Add all jar files required by your project here. You get one chance to
// setup the classpath before the first java call.
jinst.setupClasspath(['./drivers/hsqldb.jar',
'./drivers/derby.jar',
'./drivers/derbyclient.jar',
'./drivers/derbytools.jar',
'./lib/drivers/hive-jdbc-1.2.1.jar',
'./lib/drivers/hive-exec-1.2.1.jar',
'./lib/drivers/hive-common-1.2.1.jar',
'./lib/drivers/hive-metastore-1.2.1.jar',
'./lib/drivers/hive-service-1.2.1.jar',
'./lib/drivers/httpclient-4.3.jar',
'./lib/drivers/httpcore-4.3.jar',
'./lib/drivers/libthrift-0.9.1.jar',
'./lib/drivers/libfb303-0.9.0.jar',
'./lib/drivers/hadoop-common-2.7.1.jar',
'./lib/drivers/slf4j-api-1.7.21.jar',
'./lib/drivers/org-apache-commons-logging.jar'
]);
}

var config = {
url: 'jdbc:hive2://127.0.0.1:10000',
user : 'demo',
password: '',
minpoolsize: 2,
maxpoolsize: 3
};

var testpool = null;
var testconn = null;
var hsqldb = new JDBC(config);

hsqldb.initialize(function(err) {
if (err) {
console.log(err);
}
});

hsqldb.reserve(function(err, connObj) {
console.log("Using connection: " + connObj.uuid);
var conn = connObj.conn;
conn.createStatement(function(err, statement) {
statement.executeQuery("select * from test1 limit 1",function(err,resultSet){
//console.log(resultSet);
resultSet.toObjArray(function(err, results) {
console.log(results);
});

});
});
});

关于node.js - 将 node.js 应用程序连接到配置单元时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38670740/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com