HDFS C API 获取文件大小示例
在 HDFS C API 中,可以使用'hdfsGetPathInfo'函数来获取文件的大小。下面是一个获取文件大小的示例:
#include <stdio.h>
#include <stdlib.h>
#include "hdfs.h"
int main() {
// HDFS连接信息
const char *nn = "hdfs://localhost:9000";
const char *user = "hadoop";
// 文件路径
const char *path = "/path/to/file.txt";
// HDFS文件系统句柄
hdfsFS fs = hdfsConnect(nn, 0);
if (!fs) {
fprintf(stderr, "Failed to connect to HDFS\n");
exit(1);
}
// 获取文件信息
hdfsFileInfo *info = hdfsGetPathInfo(fs, path);
if (!info) {
fprintf(stderr, "Failed to get file info\n");
exit(1);
}
// 输出文件大小
printf("File size: %ld bytes\n", info->mSize);
// 释放资源
hdfsFreeFileInfo(info, 1);
hdfsDisconnect(fs);
return 0;
}
上述示例中,首先通过'hdfsConnect'函数连接到HDFS,然后使用'hdfsGetPathInfo'函数获取文件的信息,其中包括文件大小。最后,通过访问'mSize'字段来获取文件的大小。请注意,'hdfsGetPathInfo'函数返回的是一个'hdfsFileInfo'结构体指针,通过访问'mSize'字段来获取文件大小。
需要注意的是,示例中的'nn'和'user'变量需要根据实际的Hadoop集群配置进行修改。
原文地址: https://www.cveoy.top/t/topic/qx5p 著作权归作者所有。请勿转载和采集!