(一)写入文件
在net.hw.hdfs包中创建writeFileOnHDFS类
1、将数据直接写入HDFS文件 【在/ied01目录中创建hello.txt文件,创建write1()方法】
注:
package net.hw.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;
import java.net.URI;
public class WriteFileOnHDFS {
@Test
public void write1() throws Exception {
// 创建配置对象
Configuration conf = new Configuration();
// 定义统一资源标识符(uri: uniform resource identifier)
String uri = "hdfs://master:9000";
// 创建文件系统对象(基于HDFS的文件系统)
FileSystem fs = FileSystem.get(new URI(uri), conf);
// 创建路径对象(指向文件)
Path path = new Path(uri + "/ied01/hello.txt");
// 创建文件系统数据字节输出流(出水管:数据从程序到文件)
FSDataOutputStream out = fs.create(path);
// 通过字节输出流向文件写数据
out.write("Hello Hadoop World".getBytes());
// 关闭文件系统数据字节输出流
out.close();
// 关闭文件系统对象
fs.close();
// 提示用户写文件成功
System.out.println("文件[" + path + "]写入成功!");
}
}
运行write1方法,查看结果 【报错,将是没有数据节点可以写入数据】
运行程序,查看结果
利用Hadoop WebUI 界面查看hello.txt文件
将本地文件写入HDFS文件
在姓名根目录创建一个文本文件test.txt
注:可以再往下空一格
创建write2方法
运行write2方法,查看结果
注:将本地文件复制或上传到HDFS
编写write2方法 【注:导包问题】
查看write2方法,查看结果
shell上面查看/ied01/test.txt内容
(二)、读取HDFS文件
两个命令:hdfs dfs -cat 和 hdfs dfs -get
在net.hw.hdfs包中创建ReadFileOnHDFS类
1、读取HDFS在控制台显示 【读取hdfs://master:9000/ied01/test.txt文件】
编写read1方法
注:
package net.hw.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;