node.js和hdfs

js4nwp54  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(509)

我需要阅读node.js和hdfs的相关信息。我和centos一起工作。我在hdfs中有一个文件,我想在控制台中读取和打印它。我编写了一个node.js程序来编写一个文件,它可以正常工作。但是当我想打印一个hdfs文件时,它不起作用。
这是我的密码:

var WebHDFS = require('webhdfs');

var hdfs = WebHDFS.createClient({
    user: 'webuser',
    host: 'localhost',
    port: 80,
    path: '/user/cloudera/consultaBicing/numerobicis'
});

var fs = require('fs');

fs.readFile('/home/cloudera/proyecto/nodejs/node-v0.10.17/node_modules/express/prueba.txt',bar)

function bar(err,data) {
   err ? Function("error","throw error") (err) :console.log(data.toString());
}

hdfs.createReadStream('hdfs://localhost:8020/user/cloudera/consultaBicing/numerobicis', function(err, data){
    if(err) {
        return console.log(err);
    };
    console.log(data.toString());
}); 

hdfs.readFile('hdfs://localhost:8020/user/cloudera/consultaBicing/numerobicis', function(err,dat    a) {
    if (err) {
        return console.log(err)
    };

    console.log('imprimiendo');
    console.log(data.toString());
});

有人能给我提供有关hdfs和node.js的信息吗?

8qgya5xd

8qgya5xd1#

使用模块中的内置函数可以执行以下操作:
注意:url位置是hdfs上的位置,而不是本地文件路径

var fileLocationURL = '/user/cloudera/orotherpath/textfileonHDFS.txt';
var WebHDFS = require('webhdfs');
var hdfs = WebHDFS.createClient({
  user: 'webuser',
  host: 'localhost',
  port: 50070,
  path: '/webhdfs/v1'
});

readHDFSFile(fileLocationURL);

function readHDFSFile(locationOfHDFSFile){

var remoteFileStream = hdfs.createReadStream(locationOfHDFSFile);

remoteFileStream.on('error', function onError (err) {
  // Do something with the error
console.log(err);
});

remoteFileStream.on('data', function onChunk (chunk) {
  // Do something with the data chunk
console.log(chunk.toString());
});

remoteFileStream.on('finish', function onFinish () {
  // Upload is done
});

}

相关问题