node.js - 我应该使用哪个 nodejs 库来写入 HDFS?

标签 node.js hadoop hdfs webhdfs

我有一个 nodejs 应用程序,我想将数据写入 hadoop HDFS 文件系统。我见过两个主要的 nodejs 库可以做到这一点:node-hdfs 和 node-webhdfs。有人试过吗?有什么提示吗?我应该在生产中使用哪一个?

我倾向于使用 node-webhdfs,因为它使用 WebHDFS REST API。 node-hdfs 似乎是一个 c++ 绑定(bind)。

任何帮助将不胜感激。

最佳答案

您可能想查看 webhdfs图书馆。它为 WebHDFS REST API 调用提供了漂亮而直接的(类似于 fs 模块 API)接口(interface)。

写入远程文件:

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
});

关于node.js - 我应该使用哪个 nodejs 库来写入 HDFS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20929000/

相关文章:

node.js - 如何使用 inversifyjs 容器作为服务定位器

javascript - 需要我的模块的多个文件正在覆盖它的变量

java - windows下运行hadoop作业

scala - 我们可以在IDE中使用spark.sql API创建表吗

hadoop - 在具有附加列的新外部表中插入 2 个 Hive 外部表的数据

javascript - node.js - 互变量

node.js - 测试 child_process.exec 标准输出

java - Hadoop - 管道分隔符无法识别

hadoop - 如何从Mapper或Reducer发出值列表?

hadoop - 无法关闭文件,因为最后一个 block 没有足够数量的副本