分享

请问这样创建的hdfs文件夹在hdfs中怎么看不到呢

阿飞 发表于 2014-4-26 12:13:07 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 6 60803
请问这样创建的hdfs文件夹在hdfs中怎么看不到呢


  1. 请问这样创建的hdfs文件夹在hdfs中怎么看不到呢
  2. import java.io.IOException;
  3. import org.apache.hadoop.conf.Configuration;
  4. import org.apache.hadoop.fs.FileSystem;
  5. import org.apache.hadoop.fs.Path;
  6. public class CreateHdfsDir {
  7. public static void main(String args[]) throws IOException{
  8. Configuration conf = new Configuration();
  9. FileSystem fs = FileSystem.get(conf);
  10. Path p = new Path("/data/dir");
  11. fs.mkdirs(p);
  12. System.out.println("fileexit: "+fs.exists(p));
  13. }
  14. }
复制代码



已有(6)人评论

跳转到指定楼层
pig2 发表于 2014-4-26 12:14:57
你可以看看这个:
/data/dir应该是在hdfs://uri:900/data/dir
最好先创建一个文件夹,试一下。

  1. package com.hebut.dir;
  2.    
  3.    
  4.    
  5. import org.apache.hadoop.conf.Configuration;
  6.    
  7. import org.apache.hadoop.fs.FileSystem;
  8.    
  9. import org.apache.hadoop.fs.Path;
  10.    
  11.    
  12.    
  13. publicclassCreateDir {
  14.    
  15.    
  16.    
  17. publicstaticvoidmain(String[] args) throws Exception{
  18.    
  19. Configuration conf=newConfiguration();
  20.    
  21. FileSystem hdfs=FileSystem.get(conf);
  22.    
  23.    
  24.    
  25. Path dfs=newPath("/TestDir");
  26.    
  27.    
  28.    
  29. hdfs.mkdirs(dfs);
  30.    
  31.    
  32.    
  33. }
  34.    
  35. }
复制代码


详细可以看:
Java创建hdfs文件实例
http://www.aboutyun.com/thread-6779-1-1.html

回复

使用道具 举报

阿飞 发表于 2014-4-26 17:23:00
Configuration conf = new Configuration();
                FileSystem fs = FileSystem.get(conf);
                Path path = new Path("/user/");
                fs.mkdirs(path);
//                fs.delete(path);
                fs.close();
这样创建的为什么是本地目录,而不是hdfs上的目录?
回复

使用道具 举报

pig2 发表于 2014-4-26 17:23:56
如果不配置 core-site.xml 文件中的 fs.default.name,那么默认使用的是 file:/// 也就是本地根目录。
回复

使用道具 举报

阿飞 发表于 2014-4-26 17:25:41
如果加了ip和端口,会提示mkdirs这个方法报错Wrong FS: hdfs://192.168.1.181:9000/user, expected: file:///
  1.   <property>
  2.         <name>hadoop.tmp.dir</name>
  3.         <value>/home/hadoop/hadoop/hadoop-2.3.0/tmp</value>
  4.         <description>hadoop存放数据的目录,即包括NameNode的数据,也包括DataNode的数据</description>
  5.     </property>
  6.     <property>
  7.         <name>fs.default.name</name>
  8.         <value>hdfs://192.168.1.181:9000</value>
  9.         <description>客户端连接HDFS时,默认的路径前缀</description>
  10.     </property>
  11.     <property>
  12.         <name>mapred.job.tracker</name>
  13.         <value>hdfs://localhost:9001</value>
  14.     </property>
复制代码



回复

使用道具 举报

pig2 发表于 2014-4-26 17:27:16
有的时候是ip,有的时候是localhost?这个不一致,很容易出现问题
回复

使用道具 举报

Hedera 发表于 2014-10-13 15:18:30
可以在conf.set方法中进行设置所进行操作的文件系统为HDFS
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条