一、安装win10编译过的hadoop
1、将编译好的hadoop包放在非中文目录
2、配置HADOOP_HOME环境变量
3、将hadoop包的bin目录加到PATH环境变量中
二、在idea中创建一个maven项目
1、创建maven项目
2、导入相应的依赖坐标+日志添加
在pom.xml文件中添加:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.7.2</version>
</dependency>
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${
JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
</dependencies>
3、编辑"log4j.properties"文件
需要在项目的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
这样就可以在控制台中打印出日志
三、利用api编写java代码操作hdfs集群
需要在项目的src/main/java目录下,新建一个包,命名为hdfs。在包下创建一个类HdfsClient,编写的java代码如下:
package hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
import org.apache.hadoop.io.IOUtils;
import org.junit.Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
/**
* @description: hdfs客户端java代码实现操作hdfs文件系统
* @author: hyr
* @time: 2020/2/2 10:30
*/
public class HdfsClient {
// 一、hdfs创建目录
@Test
public void testMkdirs() throws URISyntaxException, IOException, InterruptedException {
<