您的位置:首页 > 运维架构

Hadoop 学习笔记(一) HDFS API

2013-11-23 11:29 423 查看
http://www.cnblogs.com/liuling/p/2013-6-17-01.html 这个也不错 http://www.teamwiki.cn/hadoop/thrift      thrift编程

1.上传本地文件到HDFS

package proj;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class CopyFile {
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
//要点:没有这句会传到本地文件系统,而不是hdfs
conf.set("fs.default.name","hdfs://localhost:9000");
FileSystem hdfs = FileSystem.get(conf);
Path src = new Path("/codes/c/hello.c");
Path dst = new Path("in");
hdfs.copyFromLocalFile(src, dst);
System.out.println("Upload to" + conf.get("fs.default.name"));
FileStatus[] files = hdfs.listStatus(dst);
for (FileStatus fileStatus : files) {
System.out.println(fileStatus.getPath());
}
}
}


2.创建HDFS文件
package proj;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class CreateFile {

public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
//要点:没有这句会传到本地文件系统,而不是hdfs
conf.set("fs.default.name","hdfs://localhost:9000");
FileSystem hdfs = FileSystem.get(conf);
Path dfs = new Path("in/test.txt");
FSDataOutputStream outputStream = hdfs.create(dfs);
byte[] buff = "hello prince of persia".getBytes();
outputStream.write(buff, 0, buff.length);
System.out.println("run over");
}

}


3.重命名
package proj;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class Rename {

public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
//要点:没有这句会传到本地文件系统,而不是hdfs
conf.set("fs.default.name","hdfs://localhost:9000");
FileSystem hdfs = FileSystem.get(conf);
Path frpath = new Path("in/test.txt");
Path topath = new Path("in/test3.txt");
boolean isRename = hdfs.rename(frpath, topath);
System.out.println(isRename);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: