Hadoop2.6.0上调用C的API实现类似云盘的功能

作者: 云计算机网 分类: 云计算知识 发布时间: 2016-06-17 06:10

Hadoop-2.6.0上调用C的API实现类似云盘的功能(上传,下载,删除,重命名)

测试系统:CentOS6.6, hadoop-2.6.0

本次测试是调用hadoop下的C的API来访问HDFS实现类似云盘的上传,下载,删除,重命名的功能,其它功能还请有意者自行添加,废话少说,开始进入正题。

首先我们要能在hadoop-2.6.0上的C的API访问HDFS

下面开始我们的云盘功能:

首先我们在主函数中连接到我们的hadoop服务器,并创建一个用户自己的文件夹

int main(int argc, char **argv)
{
char CreatDirName[30]; /*创建文件夹和路径*/
char DirNamePath[50];
int Create;

hdfsFS fs = hdfsConnect("10.25.100.130", 9000); //连接到hadoop服务器

printf("请输入你想创建的文件夹和路径: ");
scanf("%s", CreatDirName);


Create = hdfsCreateDirectory(fs, CreatDirName);

printf("Create = %d ", Create);
if(Create == -1)
{
printf("创建失败! ");
exit(1);
}

while(1)
{
int num;

HdfsChoseMenu_Function();
scanf("%d", &num);
switch(num)
{
case 1:HdfsSendFile_Function(fs, CreatDirName); //Hdfs上传文件Function
break;
case 2:HdfsDownFile_Function(fs, CreatDirName); //下载文件Function
break;
case 3:HdfsDelete_Function(fs); //HdfsDelete_Function
break;
case 4:HdfsRename_Function(fs); //HdfsRename_Function
break;
case 0:HdfsQuit_Function(fs);
break;
default:printf("PLease input Error!!! ");
}
}
}

上传文件到服务器:

void HdfsSendFile_Function(hdfsFS fs, char CreatDirName[]) //Hdfs上传文件Function
{
char SendFileName[30]; //FileName
char SendFilePath[50]; //FilePath
char buffer[LENGTH]; //BufferFile

printf("请输入要上传的文件名: ");
scanf("%s", SendFileName);
sprintf(SendFilePath, "%s/%s", CreatDirName, SendFileName);
hdfsFile OpenFileName = hdfsOpenFile(fs, SendFilePath, O_WRONLY|O_CREAT, 0, 0, 0);


FILE *fp = fopen(SendFileName, "r");


if(NULL == fp)
{
printf("File:%s Not Found ", SendFileName);
}
else
{
bzero(buffer, LENGTH);
tSize length = 0;
while((length = fread(buffer, sizeof(char), LENGTH, fp)) > 0)
{
printf("length = %d ", length);
tSize num_written_bytes = hdfsWrite(fs, OpenFileName, buffer, length);
printf("num_written_bytes = %d ", num_written_bytes);
if (hdfsFlush(fs, OpenFileName))
{
fprintf(stderr, "Failed to 'flush' %s ", SendFilePath);
exit(-1);
}
bzero(buffer, LENGTH);
}
fclose(fp);
hdfsCloseFile(fs, OpenFileName);
printf(" >>>上传文件成功!!! ");
}
}

下载文件:

  • 商务部:前4月服务进出口稳定向好 增速明显提升

    央视网消息:商务部昨天(12日)发布的1-4月我国服务贸易进出口显示:1-4月,我国服务进出口增速明...

    06月13日 17:18

    伊利以创新书写“让世界共享健康”未来

    蒸汽机喷吐着白雾,带来了工业时代;电气惠及千家万户,照亮了整个世界;信息技术诞生和应用,世界变成了地...

    06月13日 10:46

    用户达“亿级” 北斗靠什么助全球互联互通?

    新华社维也纳6月12日电(记者赵菲菲王子辰于跃)北斗用户数量达到“亿级以上”水平;全球约有两到三亿智...

    06月12日 16:00

    震撼感动!中国航天首次海上发射纪实

    点火发射瞬间6月5日中午12点06分,我国在黄海海域使用长征十一号运载火箭,成功完成一箭七星海上发射...

    06月12日 03:39

    前4个月网上零售额超过三万亿元

    央视网消息:最新统计显示,今年前4个月我国网上零售额超过三万亿元,同比增长17.8%,信息消费保持快...

  • 相关推荐:

  • 习近平为上合组织发展注
  • 华为云电脑与网易游戏合
  • 详解ftp文件上传下载命令
  • 如何在Linux实现文件上传
  • 详解Linux ftp 命令行中下
  • FTP突然连接不上了怎么办
  • 在华为P30发布会上 华为
  • 陆离解盘:黄金十字修正
  • 绿色虚拟化应要轻装上阵
  • 你未必知道虚拟机是如何
  • 网站内容禁止违规转载,转载授权联系中国云计算网