• 读取hdfs文件系统里的文件


    hadoop的文件系统在程序代码里面用起来就如我们本地的文件系统一样,可以从里面读取文件,存入文件,等等。

    下面我们来演示一个从hdfs中的一个目录里,读取这个目录下所有文件的文件名的程序。

     1 import org.apache.hadoop.conf.Configuration;
     2 import org.apache.hadoop.fs.*;
     3 import org.apache.hadoop.mapreduce.lib.input.FileSplit;
     4 import org.junit.Test;
     5 
     6 import java.io.IOException;
     7 import java.net.URI;
     8 
     9 /**
    10  * Created with IntelliJ IDEA.
    11  * User: Isaac Li
    12  * Date: 12/11/12
    13  * Time: 9:42 AM
    14  * To change this template use File | Settings | File Templates.
    15  */
    16 public class WordCountTest {
    17     @Test
    18     public void test(){
    19         Configuration conf = new Configuration();
    20         try {
    21             //创建一个文件系统实例
    22             FileSystem hdfs = FileSystem.get(URI.create("hdfs://10.40.30.173:9000/user/root/input"), conf);
    23             //文件状态
    24             FileStatus[] inputFiles = hdfs.listStatus(new Path("hdfs://10.40.30.173:9000/user/root/input"));
    25             //输出文件名
    26             for(int i = 0; i < inputFiles.length; i++){
    27                 System.out.println(inputFiles[i].getPath().getName());
    28         }
    29         }catch(IOException e){
    30             e.printStackTrace();
    31         }
    32     }
    33 }

    代码重现步骤:

    1. 安装hadoop的相关jar包

    2. 将此段代码复制到你的eclipse或者其他IDE

    3. 将代码中hdfs的URI,改成你的hdfs的URI

    4. 运行代码,即可输出你指定的hdfs的文件夹下的所有文件

  • 相关阅读:
    Github访问失败如何解决
    持续交付发布可靠软件的系统方法
    windows上tomcat部署
    软件测试总结
    CentOS cannot find a valid baseurl for repo base/7/x86_64
    姜碧野写给纪中信息学学弟学妹的信
    2022 纪中集训 7.6
    2022 纪中集训7.7
    2022 纪中集训 7.8
    2022 纪中集训 7.11 笔记
  • 原文地址:https://www.cnblogs.com/hengli/p/2812463.html
Copyright © 2020-2023  润新知