您好我是hadoop的新手,并尝试在hdfs中创建名为twitter_data的目录。 我已经在softlayer上安装了我的vm,安装了&成功开始了hadoop。
这是我要努力的表现:
hdfs dfs -mkdir hdfs:// localhost:9000 / user / Hadoop / twitter_data
它不断返回此错误消息:
/usr/local/hadoop/etc/hadoop/hadoop-env.sh: line 2: ./hadoop-env.sh: Permission denied
16/10/19 19:07:03 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
mkdir: `hdfs://localhost:9000/user/Hadoop/twitter_data': No such file or directory
为什么说没有这样的文件和目录?我命令它制作目录,不应该只创建一个目录吗?我猜它一定是权限问题,但我无法解决它。请帮我hdfs专家。我花了太多时间在一件简单的事情上。
提前致谢。
答案 0 :(得分:24)
这是因为父目录还不存在。试试public static void repeat(String str, int times){
for(int i = 0;i < times;i++){
System.out.print(str);
}
}
。 hdfs dfs -mkdir -p /user/Hadoop/twitter_data
标志表示还将创建通向给定目录的所有不存在的目录。
至于您在评论中提出的问题,只需输入您的浏览器-p
即可。
答案 1 :(得分:6)
使用以下步骤命令创建目录:
1)不要运行hadoop并格式化namenode: -
$ hadoop namenode -format
2)通过以下方式运行hadoop: -
$ start-all.sh
3)现在首先创建初始目录,然后在同一目录中创建另一个目录:
$ hadoop fs -mkdir /user
$ hadoop fs -mkdir /user/Hadoop
$ hadoop fs -mkdir /user/Hadoop/tweeter_data
按照上述步骤解决问题。