c/c++ 访问 hdfs

在hadoop安装的目录中,有include/目录,包括了使用c/c++访问hdfs的接口头文件hdfs.h

1.建立、关闭与HDFS连接:hdfsConnect()、hdfsConnectAuUser()、hdfsDisconnect()。hdfsConnect()实际上是直接调用hdfsConnectAsUser。

2.打开、关闭HDFS文件:hdfsOpenFile()、hdfsCloseFile().当用hdfsOpenFile()创建文件时,可以指定replication和blocksize参数。写打开一个文件时,隐含O_TRUNC标志,文件会被截断,写入是从文件头开始的。

3.读HDFS文件:hdfsRead(),hdfsPread.只要在两个函数返回零时,才能断点到了文件末尾。

4.写HDFS文件:hdfsWrite().HDFS不支持随机写,只能是从文件头顺序写入。

5.查询HDFS文件信息:hdfsGetPathInfo()

6.查询和设置HDFS文件读写偏移量:hdfsSeek(),hdfsTell()

7.查询数据块所在节点信息:hdfsGetHosts().返回一个或多个数据块所在数据节点的信息,一个数据块可能存在多个数据节点上。

8.libhdfs中的函数是通过jni调用JAVA虚拟机,在虚拟机中构造对应的HDFS的JAVA类,然后反射调用该类的功能函数。总会发生JVM和程序之间内存拷贝的动作,性能方面值得注意。

9.HDFS不支持多个客服端同时写入的操作,无文件或是记录锁的概念。

 

//一个简单示例

//opera_hdfs.h

#ifndef __OPERA_HDFS_H

#define _

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值