java程序实现对HDFS的操作之新建文件夹
- 获取所有依赖的jar包,在
hadoop-2.7.3/share/hadoop/common/
以及hadoop-2.7.3/share/hadoop/hdfs/
- 权限问题–4种解决方法:
1、设置环境变量 HADOOP_USER_NAME = root
2、通过使用java的 -D 参数
3、hdfs-site.xml配置文件中的def.permissions —> false
4、-chmod 改变HDFS文件的权限
不能在safe model 下
- 第一种权限解决方式对应的程序
public class mkdir {
@Test
public void testMKDir() throws Exception{
// 指定当前hadoop的用户
System.setProperty("HADOOP_USER_ANME","root");
//配置参数:指定NameNode地址
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.118.111:9000");
// 创建一个客户端
FileSystem client = FileSystem.get(conf);
// 创建目录
client.mkdirs(new Path("/test"));
// 关闭客户端
client.close();
}
}
- 第二种权限解决方式对应的程序
- 配置
@Test
public void testMKDir2() throws Exception{
//配置参数:指定NameNode地址
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.118.111:9000");
// 创建一个客户端
FileSystem client = FileSystem.get(conf);
// 创建目录
client.mkdirs(new Path("/test2"));
// 关闭客户端
client.close();
}
- 第三种和第四种方式,在HDFS上面配置好权限,
@Test
public void testMKDir2() throws Exception{
//配置参数:指定NameNode地址
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://192.168.118.111:9000");
// 创建一个客户端
FileSystem client = FileSystem.get(conf);
// 创建目录
client.mkdirs(new Path("/test2"));
// 关闭客户端
client.close();
}