Hadoop应用笔记-文件新增、删除

2019-03-28 13:43|来源: 网络

版本:Hadoop-0.21.0
OS:Unix(Mac OS X)

  1. package cn.com.fri.hadoop;   
  2.   
  3. import java.io.FileNotFoundException;   
  4. import java.io.IOException;   
  5. import java.net.URI;   
  6. import java.util.Date;   
  7.   
  8. import org.apache.hadoop.fs.FSDataInputStream;   
  9. import org.apache.hadoop.fs.FileContext;   
  10. import org.apache.hadoop.fs.FileStatus;   
  11. import org.apache.hadoop.fs.Path;   
  12. import org.apache.hadoop.fs.UnsupportedFileSystemException;   
  13. import org.apache.hadoop.io.IOUtils;   
  14. import org.apache.hadoop.security.AccessControlException;   
  15.   
  16. /**  
  17.  * 读取文件内容以及文件信息  
  18.  * @author alex  
  19.  *  
  20.  */  
  21. public class MainRead {   
  22.     public static void main(String[] args) throws AccessControlException, FileNotFoundException, UnsupportedFileSystemException, IOException {   
  23.         FileContext fc = FileContext.getFileContext(URI.create("hdfs://localhost:9000"));   
  24.         FSDataInputStream fsInput = fc.open(new Path("test"));   
  25.         IOUtils.copyBytes(fsInput, System.out, 4090,false);   
  26.         FileStatus status = fc.getFileStatus(new Path("test"));   
  27.         System.out.println("--File status---");   
  28.         System.out.println(new Date(status.getAccessTime()));   
  29.         System.out.println(status.getPath().toUri().getPath());   
  30.         double i = 1024.00;   
  31.         Double len = new Double(status.getLen());   
  32.         len = len/i;   
  33.         System.out.println("File length:"+len+"kb");   
  34.         System.out.println("Block size:"+status.getBlockSize()/1024/1024+"mb");   
  35.         System.out.println(status.getOwner());   
  36.     }   
  37. }  

 

  1. package cn.com.fri.hadoop;   
  2.   
  3. import java.io.BufferedInputStream;   
  4. import java.io.FileInputStream;   
  5. import java.io.FileNotFoundException;   
  6. import java.io.IOException;   
  7. import java.io.InputStream;   
  8. import java.net.URI;   
  9. import java.util.EnumSet;   
  10.   
  11. import org.apache.hadoop.fs.CreateFlag;   
  12. import org.apache.hadoop.fs.FSDataOutputStream;   
  13. import org.apache.hadoop.fs.FileAlreadyExistsException;   
  14. import org.apache.hadoop.fs.FileContext;   
  15. import org.apache.hadoop.fs.ParentNotDirectoryException;   
  16. import org.apache.hadoop.fs.Path;   
  17. import org.apache.hadoop.io.IOUtils;   
  18. import org.apache.hadoop.security.AccessControlException;   
  19. /**  
  20.  * 创建一个文件  
  21.  * @author alex  
  22.  *  
  23.  */  
  24. public class MainCreate {   
  25.     public static void main(String[] args) throws AccessControlException, FileAlreadyExistsException, FileNotFoundException, ParentNotDirectoryException, IOException {   
  26.         FileContext fc = FileContext.getFileContext(URI.create("hdfs://localhost:9000"));   
  27.         EnumSet<CreateFlag> es = EnumSet.noneOf(CreateFlag.class);   
  28.         es.add(CreateFlag.CREATE);   
  29.         FSDataOutputStream out = fc.create(new Path("test"), es);   
  30.         InputStream in = new BufferedInputStream(new FileInputStream("/Users/alex/Desktop/persons.rtf"));   
  31.            
  32.         IOUtils.copyBytes(in, out, 4090,true);   
  33.     }   
  34. }  

在new Path的时候,文件如果加上/则代表放入根路径,否则放入/user/name/路径下,如果hdfs中不存在此路径,则抛出父目录不存在的异常。

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

相关问答

更多
  • 我看看能不能给你指出点什么好的主意!呵呵,只是提意啊! 首先您得知道这行业的设计配置一定会很高的,所以金钱上一定会有很大的开资。 你搞这一行的设计,本身的内存必须大--512M(建议会1G) 硬盘也得大一些--80G 还有一点也是非常重要的,那就是 显卡了,那议先用越高的显卡越好,最好是双128的。再大一点也无所谓。 CPU也得好一些,P4以上就已经很好了。 好了就说这么多吧 ! 也许有的地方不对请见凉啊!!!!!!!
  • 不行 即使是带了也用不了 宿舍有规定:除了台灯、复读机等小型用电器外,其他的事不让用的 而且宿舍不是24小时有电,只有在晚上有,还是快熄灯那阵
  • 如果你对linux不太熟悉,建议安装OME版的红旗,一点都不卡,而且简单易用,操作很类似于XP,感觉不错。OEM版的红旗,可以去迅雷下载。 驱动的安装: http://www.redflag-linux.com/xiazai/yingyong.php?down_type=10 个别驱动安装有点麻烦,最麻烦的无线网卡驱动。其余的都没问题
  • 你不会编程就想编程序?C语言,JAVA语言学过没?没学过先去学学吧。编程是很深奥的,不是想编就编的
  • 1、普通笔记本的产品用来是为日常生活办公所设,而游戏本则是更多的考虑到打游戏用户的需求,因此两类产品服务对象的不同就决定了二者在产品性能和各项参数上表现出较大的差异。第一点就是中央处理器CPU的区别,现在市面上的普通笔记本往往是U系列的,更省电,但是主频,睿频都降低了,i7往往是双核心/四线程;而游戏本CPU是HQ系列四核心/八线程。 2、显卡上的区别,普通笔记本的显卡通常配置较低,而游戏本显卡配置较高并且散热效果会更好。第三点是相较于普通笔记本,游戏本往往屏幕分辨率更高,以此带来更好的游戏操作观感。 3、 ...
  • hadoop上删除文件[2022-11-22]

    命令:hadoop fs -rmr /home/mm/lily2(要求是你把hadoop的bin加到PATH中,并开启hadoop) rm -rf /home/mm/lily2(这是删除linux文件系统的文件夹)
  • 编程软件的配置要求都很低。 你应该看看软件包装上写的最低配置,与你的笔记本电脑对照看看
  • 1.remove()方法 $("ul li:eq(1)").remove(); 实例: (1)$(function(){ var $li = $("ul li:eq(1)").remove(); // 获取第二个 元素节点后,将它从网页中删除。 $li.appendTo("ul"); }) 上面的例子是先将第二个元素删除,再移动到所需要的位置。 (2) $(function(){ $("ul li").remove("li:first"); // 获取ul中的li元素,再删除其中的第一个元素。 }) 2.e ...
  • 非常相似,请让我知道这是否有帮助: https : //issues.apache.org/jira/browse/SPARK-5185 Very similar, please let me know if this helps: https://issues.apache.org/jira/browse/SPARK-5185