idea 创建maven工程
略
修改pom.xml
添加如下依赖:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>3.0.3</version>
</dependency>
</dependencies>
在 pom.xml 点击右键 -> 【maven】 -> 【reimport】 导入依赖
log4j.properties
打印 hadoop debug 信息
在 resources 文件夹下创建 log4j.properties 文件,内容如下:
log4j.rootLogger=DEBUG, 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
创建测试类
在 test -> java 下创建类 top.malaoshi.test.Main,内容如下:
package top.malaoshi.test;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;
import java.net.URI;
public class Main {
@Test
public void mkdir() throws Exception {
Configuration config = new Configuration();
// 1 获取文件系统。设置集群url、操作用户
FileSystem fs = FileSystem.get(new URI("hdfs://hadoop1:8020"), config, "root");
// 2 创建目录
boolean res=fs.mkdirs(new Path("/test"));
System.out.println("result:"+res);
// 3 关闭
fs.close();
}
}
解释:hdfs://hadoop1:8020
hdfs://hadoop1:8020 是 linux hadoop $HADOOP_HOME/etc/hadoop/core-site.xml 中的配置
- 端口号要一致
解释:root
在 hadoop-env.sh 最下面配置的用户就是 root,如下:
export HDFS_DATANODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
hadoop查看
web方式
命令方式
执行下面命令:
hadoop fs -ls /
可以看到已经创建的文件夹