一、实验目的
1. 理解HDFS在Hadoop体系结构中的角色;
2. 熟练使用HDFS操作常用的Shell命令;
3. 熟悉HDFS操作常用的Java API。
二、实验平台
操作系统:Linux(deepin)
Hadoop版本:2.7.7
JDK版本:1.8
Java IDE:Eclipse
三、实验内容
1. 在分布式文件系统HDFS主目录,使用java 编程分别实现:
- 查看文件hadoop.txt是否存在,如果不存在,请创建。(HdfsExpTask1)
- hadoop.txt写入内容。(HdfsExpTask2)
- 读取hadoop.txt文件内容。(HdfsExpTask3)
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
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.FileSystem;
import org.apache.hadoop.fs.Path;
public class HdfsExpTask1 {
public static void main(String[] args) {
try {
Path filePath = new Path("hadoop.txt");
Configuration config = new Configuration();
config.set("fs.defaultFS", "hdfs://localhost:9000/");
FileSystem fs = FileSystem.get(config);
if(fs.exists(filePath)) {
System.out.println(filePath+" exists.");
} else {
FSDataOutputStream ops = fs.create(filePath);
ops.close();
fs.close();
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
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.FileSystem;
import org.apache.hadoop.fs.Path;
public clas