在ubuntu中,完成以下2个编程任务(采用eclipse)
1、在本地新建文本文件,文件名为“学号+姓名”,然后上传到hdfs中
2、遍历HDFS的文件夹
先启动Hadoop
cd /usr/local/hadoop
./sbin/start-dfs.sh
启动eclipse
cd /usr/local/eclipse
./eclipse
任务一:
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.BufferedWriter;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public class LocalFileToHDFS {
public static void main(String[] args) {
try {
// 初始化Hadoop配置
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://localhost:9000"); // 设置HDFS地址
// 获取HDFS文件系统对象
FileSystem fs = FileSystem.get(conf);
// 本地文件路径及内容
String localFilePath = "/home/hadoop/你的学号和姓名.txt";
String content = "你的学号和姓名";
// 在本地创建文件并写入内容
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fs.create(new Path(localFilePath))));
writer.write(content);
writer.close();
// 上传文件到HDFS
Path hdfsFilePath = new Path("/user/hadoop/input/"); // HDFS中的路径
fs.copyFromLocalFile(new Path(localFilePath), hdfsFilePath);
System.out.println("文件已成功上传到 HDFS。");
} catch (Exception e) {
e.printStackTrace();
}
}
}
结果可以在http://localhost:9870上查看是否成功
任务二:
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.Path;
public class HdfsTraversal {
public static void main(String[] args) {
try {
// 初始化Hadoop配置
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://localhost:9000"); // 设置HDFS地址
// 获取HDFS文件系统对象
FileSystem fs = FileSystem.get(conf);
// 遍历HDFS文件夹
Path hdfsFolderPath = new Path("/user/hadoop/input/");
FileStatus[] fileStatuses = fs.listStatus(hdfsFolderPath);
System.out.println("HDFS 文件夹中的文件:");
for (FileStatus status : fileStatuses) {
System.out.println(status.getPath().toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
结果:
OVER