启动hadoop伪分布式集群
./sbin/start-all.sh
使用idea连接hadoop
创建hadoop文件夹hdfs_api
package com.atguigu.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
/**
* 使用hdfs的api进行操作
*/
public class HdfsApiTest {
//文件系统对象
FileSystem fs = null;
/**
* 初始化文件系统
*
* @throws URISyntaxException
* @throws IOException
*/
@Before
public void init() throws URISyntaxException, IOException, InterruptedException {
//创建一个配置对象
Configuration conf = new Configuration();
// hdfs中的NameNode地址
//方法一: hostname:端口
// String hdfsPath ="hdfs://hadoop:8020";
//方法二:ip地址:端口
String hdfsPath = "hdfs://192.168.200.66:9000";
String userName = "hadoop";
//获取文件系统对象
fs = FileSystem.get(new URI(hdfsPath), conf, userName);
System.out.println("hdfs文件系统对象初始化完成!");
}
/**
* 关闭文件系统
*
* @throws IOException
*/
@After
public void close() throws IOException {
fs.close();
System.out.println("hdfs文件系统已关闭!");
}
/**
* 创建hdfs上的目录
*
* @throws IOException
*/
@Test
public void createPath() throws IOException {
boolean createFlag = fs.mkdirs(new Path("/hdfs_api"));
if (createFlag) {
System.out.println("目录创建成功");
} else {
System.out.println("目录创建失败");
}
}
}
点击运行
查看运行结果
http://192.168.200.66:9870/explorer.html#/
输入hadoop指令上查看创建/hdfs_api的结果:
删除hdfs_api目录
package com.atguigu.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
/**
* 使用hdfs的api进行操作
*/
public class HdfsApiTest {
//文件系统对象
FileSystem fs = null;
/**
* 初始化文件系统
*
* @throws URISyntaxException
* @throws IOException
*/
@Before
public void init() throws URISyntaxException, IOException, InterruptedException {
//创建一个配置对象
Configuration conf = new Configuration();
// hdfs中的NameNode地址
//方法一: hostname:端口
// String hdfsPath ="hdfs://hadoop:8020";
//方法二:ip地址:端口
String hdfsPath = "hdfs://192.168.200.66:9000";
String userName = "hadoop";
//获取文件系统对象
fs = FileSystem.get(new URI(hdfsPath), conf, userName);
System.out.println("hdfs文件系统对象初始化完成!");
}
/**
* 关闭文件系统
*
* @throws IOException
*/
@After
public void close() throws IOException {
fs.close();
System.out.println("hdfs文件系统已关闭!");
}
/**
* 删除hdfs上的目录
*
* @throws IOException
*/
@Test
public void deletePath() throws IOException {
Path path = new Path("/hdfs_api");
//判断删除路径是否存在
if (fs.exists(path)) {
//使用递归删除
boolean deleteFlag = fs.delete(path, true);
if (deleteFlag) {
System.out.println("删除目录成功");
} else {
System.out.println("删除目录失败");
}
}
}
}
查看结果
输入hadoop指令上查看删除/hdfs_api的结果: