首页 / JAVA / HDFS的JavaAPI
HDFS的JavaAPI
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了HDFS的JavaAPI,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2277字,纯文字阅读大概需要4分钟。
内容图文
配置windows平台的Hadoop环境
在 windows 上做 HDFS 客户端应用开发,需要设置 Hadoop 环境,而且要求是windows 平台编译的 Hadoop,不然会报以下的错误:
Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
参考:https://blog.csdn.net/huyishero/article/details/72896484
创建Maven工程,引入pom依赖
< dependencies > < dependency > < groupId >org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.7.4</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.7.4</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.7.4</version></dependency></dependencies>
客户端对象
在 java 中操作 HDFS,主要涉及以下 Class:
Configuration:该类的对象封转了客户端或者服务器的配置;
FileSystem:该类的对象是一个文件系统对象,可以用该对象的一些方法来对文件进行操作,通过 FileSystem 的静态方法 get 获得该对象。
FileSystem fs = FileSystem.get(conf)
get 方法从 conf 中的一个参数 fs.defaultFS 的配置值判断具体是什么类型的文件系统。如果我们的代码中没有指定 fs.defaultFS,并且工程 classpath下也没有给定相应的配置,conf中的默认值就来自于hadoop的jar包中的core-default.xml , 默认值 为 : file:/// ,则获取的将 不 是 一 个DistributedFileSystem 的实例,而是一个本地文件系统的客户端对象。
示例代码
1 public class TestHDFS { 2 3 public static void main(String[] args) throws Exception{ 4 Configuration conf = new Configuration(); 5//指定使用的是hdfs文件系统 6// conf.set("fs.defaultFS","hdfs://node-1:9000"); 7 8//FileSystem是hadoop操作文件系统的核心类 9//通过FileSystem的静态方法获取文件系统客户端对象 10// FileSystem fs = FileSystem.get(conf); 11//设置uri,conf,用户身份12 FileSystem fs = FileSystem.get(new URI("hdfs://node-1:9000"),conf,"root"); 1314//创建一个文件夹 15// fs.mkdirs(new Path("/createByJava")); 16//上传文件 17// fs.copyFromLocalFile(new Path("D:\\test.txt"),new Path("/createByJava/test.txt")); 18//下载文件 19// fs.copyToLocalFile(new Path("/createByJava/test.txt"),new Path("D:\\test\\test.txt")); 2021//stream形式读取本地的一个文件22 FileInputStream in = new FileInputStream(new File("D:\\test.txt")); 23//创建一个文件24 FSDataOutputStream out = fs.create(new Path("/test.txt")); 25//stream形式将本地文件上传到hdfs26 IOUtils.copy(in,out); 2728 fs.close(); 29 } 30 }
原文:https://www.cnblogs.com/jifengblog/p/9277004.html
内容总结
以上是互联网集市为您收集整理的HDFS的JavaAPI全部内容,希望文章能够帮你解决HDFS的JavaAPI所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。