var WebHDFS = require('webhdfs');
var hdfs = WebHDFS.createClient();
var localFileStream = fs.createReadStream('/path/to/local/file');
var remoteFileStream = hdfs.createWriteStream('/path/to/remote/file');
localFileStream.pipe(remoteFileStream);
remoteFileStream.on('error', function onError (err) {
// Do something with the error
});
remoteFileStream.on('finish', function onFinish () {
// Upload is done
});
正在读取远程文件:
var WebHDFS = require('webhdfs');
var hdfs = WebHDFS.createClient();
var remoteFileStream = hdfs.createReadStream('/path/to/remote/file');
remoteFileStream.on('error', function onError (err) {
// Do something with the error
});
remoteFileStream.on('data', function onChunk (chunk) {
// Do something with the data chunk
});
remoteFileStream.on('finish', function onFinish () {
// Upload is done
});
2条答案
按热度按时间dphi5xsq1#
您可能想查看webhdfs库。它提供了很好的和直接的(类似于
fs
模块api)接口,用于webhdfs rest api调用。正在写入远程文件:
正在读取远程文件:
jfewjypa2#
不是好消息!!!
不要使用节点hdfs。虽然看起来很有希望,但现在已经过时两年了。我试图编译它,但它与当前libhdfs的符号不匹配。如果你想使用这样的东西,你就必须使自己的nodejs绑定。
你可以使用node-webhdfs,但是我觉得这没有什么优势。最好使用httpnodejs库来发出您自己的请求。这里最困难的部分是尽量保持nodejs的异步特性,因为您可能希望首先创建一个文件夹,然后在成功创建它之后,创建一个文件,最后写入或附加数据。所有通过http的请求,你必须发送并等待答案,然后继续。。。。
至少node-webhdfs可能是一个很好的参考,让您看看并开始自己的代码。
比尔,法比奥·莫雷拉