Hadoop Java API 读写文件系统
来源:互联网 发布:mac版qq怎么远程控制 编辑:程序博客网 时间:2024/05/20 13:16
package com.zt.hdfs;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.DistributedFileSystem;
import org.apache.hadoop.io.IOUtils;
public class Hdfs {
private static Configuration configuration;
private static URI uri;
private static FileSystem fileSystem;
private static FileSystem localSystem;
public static void main(String [] args) throws IOException, URISyntaxException{ init(); getFileStatus("/data/a.txt"); deleteFileOrDir("/data/a.txt",true); mkdir("/data"); createFile("/data/b.txt"); getFileStatusFromDir("/data"); writeFile("/data/b.txt"); readFile("/data/b.txt"); deleteFileOrDir("/test", true); mergeFile("/home/hadoop/test/", "/test/merge.txt");}/* * initialize the Haddop Cluster configuration */public static void init() throws URISyntaxException, IOException{ configuration = new Configuration(); URI uri = new URI("hdfs://Master:9000"); fileSystem = (DistributedFileSystem) FileSystem.get(uri, configuration); localSystem = FileSystem.getLocal(configuration);}/* * create File * */public static void createFile(String fileName) throws IllegalArgumentException, IOException{ FSDataOutputStream outputStream = fileSystem.create(new Path(fileName));}public static void readFile(String fileName) throws IllegalArgumentException, IOException{ FSDataInputStream inputStream = fileSystem.open(new Path(fileName)); IOUtils.copyBytes(inputStream, System.out, configuration); IOUtils.closeStream(inputStream);}public static void writeFile(String fileName) throws IllegalArgumentException, IOException{ FSDataOutputStream fsDataOutputStream = fileSystem.create(new Path(fileName)); byte[] bytes = "hello, hadoop".getBytes(); fsDataOutputStream.write(bytes, 0, bytes.length); fsDataOutputStream.close();}/* * create a directory */public static void mkdir(String dirName) throws IOException{ Path dir = new Path(dirName); boolean flag = fileSystem.mkdirs(dir); if (flag) { System.out.println("success to mkdir " + dirName); }else { System.out.println("fialed to mkdir " + dirName); }}/* * delete a file or directory */public static void deleteFileOrDir(String dirName,boolean recursive) throws IllegalArgumentException, IOException { boolean flag = fileSystem.delete(new Path(dirName), recursive); System.out.println("flag=" + flag);}/* * list a detail information about a file */public static void getFileStatus(String filePath) throws IOException { Path path = new Path(filePath); FileStatus fileStatus = fileSystem.getFileStatus(path); System.out.println(fileStatus); System.out.println("path= " +fileStatus.getPath() ); System.out.println("IsDirectory=" + fileStatus.isDirectory()); System.out.println("length:" + fileStatus.getLen()); System.out.println("replication=" + fileStatus.getReplication()); System.out.println("owner:" + fileStatus.getOwner()); System.out.println("group:" + fileStatus.getGroup()); System.out.println("Permission:" + fileStatus.getPermission()); System.out.println("isSymlink:" + fileStatus.isSymlink()); System.out.println("blockSize=" + fileStatus.getBlockSize() / 1024 / 1024 + "M");}/* * get all files detail information in a directory */public static void getFileStatusFromDir(String dirName) throws FileNotFoundException, IllegalArgumentException, IOException{ FileStatus[] listStatus = fileSystem.listStatus(new Path(dirName)); for (FileStatus fileStatus : listStatus) { System.out.println(fileStatus); }}/* * merge file from local file system to Hdfs */public static void mergeFile(String dirName,String hdfsFileName) throws FileNotFoundException, IllegalArgumentException, IOException{ FileStatus[] listStatus = localSystem.listStatus(new Path(dirName)); Path hdfsfile = new Path(hdfsFileName); FSDataOutputStream fsDataOutputStream = fileSystem.create(new Path(hdfsFileName)); for (FileStatus fileStatus : listStatus) { Path path = fileStatus.getPath(); FSDataInputStream fsDataInputStream = localSystem.open(path); byte[] buffer = new byte[256]; int len ; while((len = fsDataInputStream.read(buffer)) > 0){ fsDataOutputStream.write(buffer, 0, len); } fsDataInputStream.close(); } fsDataOutputStream.close();}
}
- Hadoop Java API 读写文件系统
- hadoop 读写java api
- Hadoop 文件系统API开发编译
- (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
- Java API读写HDFS。
- Java API 访问Hadoop的HDFS文件系统 如果不用FileSystem.get(URI.create("hdfs://.......:9000/"),conf)
- Java 读取 Hadoop 文件系统 文件
- JAVA 操作hadoop分布式文件系统
- Hadoop总结:在java中使用FileSystem的api读写数据(能力工场)
- Java调用Hadoop API
- Hadoop:Java API实现
- Hadoop中的Java api
- JAVA API操作HDFS文件系统
- JAVA API操作HDFS文件系统
- java API 操作HDFS文件系统
- hadoop java HDFS 读写操作
- Hadoop中文件读写(Java)
- Hadoop中文件读写(Java)
- 关于delete free 与 null
- JavaScriptCore 简介
- 列表:FontAwesome/iconfont/高斯模糊
- 在64位Win7操作系统中安装Microsoft Access Engine的解决方案
- C Primer Plus10-3
- Hadoop Java API 读写文件系统
- 8. String to Integer (atoi)
- mysql添加多个字段
- maven+spring+ehcache缓存注解 学习总结
- C Primer Plus10-4
- org.hibernate.NonUniqueObjectException: a different object with the same identifier value was ...
- Android SQLite数据库的使用及常用的增删改查方法、无sql语句的方法
- HDU 5584 LCM Walk(number theory && GCD)
- C Primer Plus10-5