Hadoop 2.7.3 的 HDFS API 操作,推荐用几个比较关键的 JAR 包组合来搞定,像是hadoop-commonhadoop-hdfs-client这些,基本是常驻选手,项目里没它们肯定跑不起来。

FileSystem的用法你早就用烂了,FileSystem.get(conf)拿到实例,各种createdelete操作都靠它。搭配FSDataInputStreamFSDataOutputStream,文件的读写就搞定了,流式效率也挺高。

Path用来管理文件路径,还挺灵活,写法像new Path("hdfs://namenode:9000/myfile"),语义清晰,看一眼就明白啥意思。Configuration这块呢,建议你一上来就设好默认 FS,不然连不上 NameNode 就尴尬了,比如conf.set("fs.defaultFS", "hdfs://namenode:9000")

如果你用的是 Hadoop 打包好的hadoop-client,那事情就简单多了,基本的依赖都打包好了,不用一一去拉依赖。还有,别忘了hadoop-auth,搞 Kerberos 或者启用安全认证的时候它是主力。

说到底,搞 HDFS API 操作,除了把 JAR 包配好,代码结构清晰也蛮重要。比如你要上传个文件到 HDFS,用fs.copyFromLocalFile就行,响应也快;要拉下来就反着用copyToLocalFile。写的时候注意下异常,不然 NameNode 挂了你都不知道哪儿错了。

如果你想了解更多 API 细节或者搞个完整例子看看,也可以去瞄一下这些文档:

如果你是搞大数据的,还是老老实实把这些 API 摸透,毕竟跟 HDFS 打交道可是家常便饭。