如果由于业务需求无法用python、java以及命令行来操作HDFS,需要用c++的话,不用着急,libhdfs将是为你带来方便。Libhdfs是专门为c以及c++开发者提供的操作HDFS的API库,下面就是两个demo的介绍:
- 向HDFS的文件中写数据
- 从HDFS的文件中读数据
向HDFS的文件中写数据
代码如下:
#ifndef WRITE_H
#define WRITE_H
#include <iostream>
#include "hdfs.h"
#include <stdlib.h>
#include <string.h>
using namespace std;
class WriteData{
public:
WriteData(){
}
virtual ~WriteData(){
}
void writeData(char* writepath, char* data){
//连接HDFS
hdfsFS fs = hdfsConnect("default", 8080);
if (!fs){
cout <<"cannot connect to HDFS"<<endl;
exit(1);
}
cout <<"connect success!" <<endl;
//检查写入的文件是否存在
int a = hdfsExists(fs,writepath);
cout <<a<<endl;
hdfsFile writeFile;
if (a