使用Java Api怎么对HDFS进行操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
成都创新互联公司长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为尖草坪企业提供专业的网站制作、成都网站设计,尖草坪网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
使用到的jar包
junit junit 4.10 org.apache.hadoop hadoop-client ${hadoop.version}
然后就是操作HDFS的代码
package com.zuoyan.hadoop.hdfs; import java.io.File; import java.io.FileInputStream; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputStream; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.IOUtils; /** * use java api operate hdfs * * @author beifeng * */ public class HdfsApp { // get FileSystem public static FileSystem getFileSystem() throws Exception { Configuration conf = new Configuration(); FileSystem fileSystem = FileSystem.get(conf); return fileSystem; } public static void read(String fileName) throws Exception { FileSystem fileSystem = getFileSystem(); // read Path Path readPath = new Path(fileName); FSDataInputStream inStream = fileSystem.open(readPath); try { IOUtils.copyBytes(inStream, System.out, 4096, false); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } finally { // if Exception close Stream IOUtils.closeStream(inStream); } } public static void main(String[] args) throws Exception{ //String fileName = "/user/beifeng/mapreduce/wordcount/input/wc.input"; //read(fileName); FileSystem fileSystem = getFileSystem(); //write path String putFileName = "/user/beifeng/put-wc.input"; Path writePath = new Path(putFileName); FSDataOutputStream outputStream = fileSystem.create(writePath); FileInputStream inputStream = new FileInputStream( new File("/opt/modules/hadoop-2.5.0/wc.input")); try { IOUtils.copyBytes(inputStream, outputStream, 4096,false); } catch (Exception e) { // TODO: handle exception inputStream.close(); outputStream.close(); } } }
看完上述内容,你们掌握使用Java Api怎么对HDFS进行操作的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!