先贴代码和报错信息
package com.readfile;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class MkdirOrRmmkdir {
public static void main(String[] args) throws Exception {
mkdir("/hadooptem/");
}
/**mkdir like /ome/data/
* @param path
*/
public static void mkdir(String dir)throws Exception{
if(!dir.endsWith("/")){
dir = dir + "/";
}
FileSystem fs = HdfsUtils.getFilesystem();
Path path =new Path(dir);
if(fs.exists(path)){
throw new RuntimeException("direction is exists");
}
boolean mkdirFlag = fs.mkdirs(path);
if(mkdirFlag){
System.out.println("mkdir success");
}else{
System.out.println("mkdir failure");
}
}
}
Exception in thread "main" org.apache.hadoop.security.AccessControlException:
Permission denied: user=fy, access=WRITE, inode="/":root:supergroup:drwxr-xr-x
大概意思就是我的创建文件夹没有权限
查了一下 ,网上说可以改hadoop/conf下或者hadoop//etc/hadop 下的hdfs-site.xml或者hdfs-core.xml 里面的<name>dfs.permissions</name>
<value>false</value>的配置 。我自己没有找到 ,就没有用这种
--------------------------------------------------
我用的是另外一种 。因为我创建的目录是 /hadooptem/ ,所以我直接修改 / 的权限 命令 hadoop fs -chmod 777 /
之后代码创建文件就OK 了