IDEA中編寫Maven項目
1.打開IDEA新建項目2.選擇java語言,構建系統選擇Maven
3.IDEA中配置Maven
注:這些文件都是我們老師幫我們在網上找了改動后給我們的,大家可自行在網上查找
編寫代碼測試HDFS連接
1.在之前創建的pom.xml文件中添加下列代碼<dependencies>
? ? <dependency>
? ? ? ? <groupId>org.apache.hadoop</groupId>
? ? ? ? <artifactId>hadoop-client</artifactId>
? ? ? ? <version>3.1.3</version>
? ? </dependency>
? ? <dependency>
? ? ? ? <groupId>junit</groupId>
? ? ? ? <artifactId>junit</artifactId>
? ? ? ? <version>4.12</version>
? ? </dependency>
? ? <dependency>
? ? ? ? <groupId>org.slf4j</groupId>
? ? ? ? <artifactId>slf4j-log4j12</artifactId>
? ? ? ? <version>1.7.30</version>
? ? </dependency>
</dependencies>
注:這里的dependencies要這一步中的hadoop-client要和我們前面客戶端準備中下載的hadoop保持一致。
2.配置日志信息。在項目的src/main/resources目錄下,新建一個文件,命名為“log4j.properties”。
在文件中填入如下配置信息:
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout ?log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
3.創建包為org.example,并在下面創建Main類
編寫代碼如下:package org.example;
?
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
?
import java.io.IOException;
import java.net.URISyntaxException;
?
public class Main {
? ? public static void main(String[] args) throws URISyntaxException, IOException, InterruptedException {
? ? ? ? Configuration conf = new Configuration();
? ? ? ? conf.set("fs.defaultFS", "hdfs://hadoop100:8020"); // hadoop100是namenode所在的節點
? ? ? ? conf.set("hadoop.job.ugi", "root");
? ? ? ? FileSystem fs = FileSystem.get(conf);
? ? ? ? FileStatus[] fileStatuses = fs.listStatus(new Path("/"));
?
? ? ? ? // 打印文件信息
? ? ? ? System.out.println("根目錄下的文件和目錄信息:");
? ? ? ? for (FileStatus fileStatus : fileStatuses) {
? ? ? ? ? ? System.out.println("路徑: " + fileStatus.getPath());
? ? ? ? }
? ? ? ? fs.close();
? ? }
}
4.運行
如果程序執行沒有錯誤,就會打印出如下目錄