Tuesday, May 14, 2013

How to read a file in HDFS using Hadoop

You may want to read programmatically from HDFS in your mapper/reducer. Following on my post on How to write a file in HDFS using Hadoop, here is the simple code to read a file from HDFS:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class ReadFromHDFS {

 public static void main(String[] args) throws Exception {

  if (args.length < 1) {
   System.out.println("Usage: ReadFromHDFS ");
   System.out.println("Example: ReadFromHDFS 'hdfs:/localhost:9000/myFirstSelfWriteFile'");
   System.exit(-1);
  }

  try {
   Path path = new Path(args[0]);
   FileSystem fileSystem = FileSystem.get(new Configuration());
   BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileSystem.open(path)));
   String line = bufferedReader.readLine();
   while (line != null) {
    System.out.println(line);
    line = bufferedReader.readLine();
   }
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}

14 comments:

  1. Hi Amarkant,

    How do you compile this code?

    javac ReadFromHDFS.java

    or you need something else?

    Thanks a lot.

    ReplyDelete
    Replies
    1. đồng tâm
      game mu
      cho thuê nhà trọ
      cho thuê phòng trọ
      nhac san cuc manh
      số điện thoại tư vấn pháp luật miễn phí
      văn phòng luật
      tổng đài tư vấn pháp luật
      dịch vụ thành lập công ty trọn gói
      http://we-cooking.com/
      chém gióbên tả thủ lên , thể hiện tư thế hành lễ của kỵ sĩ .
      “ Diệp Âm Trúc , thần âm hệ chủ tướng , năm đầu “ . Hữu thủ Diệp Âm Trúc đặt lên ngực mình thi lễ lại , tư thế nhìn như một vị quý tộc .
      Nội Tư Tháp là người có thân hình ‘khủng bố’ nhất trong năm thành viên của trọng kỵ binh hệ lần này nhưng khi đối diện với Diệp Âm Trúc ‘nhỏ bé’ , hắn không dám khinh địch một chút nào : “ Xin mời lực chọn phương thức chiến đấu “ .
      “ Quần lang “ . Diệp Âm Trúc trả lời ngắn gọn .
      Trong mắt Nội Tư Tháp tràn đầy sự kinh ngạc : “ Quần lang ? “ .
      Diệp Âm Trúc gật đầu . ‘Quần lang’ là một trong ba phương pháp thi đấu , so với từng đôi một khiêu chiến có điểm bất đồng . ‘Quần lang’ là phương pháp mà song phương tiến hành thi đấu xong , nếu người thắng có thể tiếp tục chiến đấu sẽ yêu cầu trọng tài cho đấu với người tiếp theo , cứ như vậy cho đến khi thua thì thôi . Đấu như vậy không phải năm trận chỉ cần thắng ba mà phải hạ gục tất cả thành viên đối thủ mới được tính là chiến thắng .
      Xác nhận sự lựa chọn của Diệp Âm Trúc , toàn trường đều ngạc nhiên . Mọi người đều nghĩ ,

      Delete
    2. I have read your blog its very attractive and impressive. I like it your blog.


      JavaEE Training in Chennai JavaEE Training in Chennai

      Java Training in Chennai Core Java Training in Chennai Core Java Training in Chennai

      Java Online Training Java Online Training Core Java 8 Training in Chennai Java 8 Training in Chennai

      Delete
  2. java.lang.IllegalArgumentException: Wrong FS: hdfs://:/data/myfile.tsv, expected: file:///

    ReplyDelete
  3. Perfect..Thanks for providing simple snippet.

    ReplyDelete
  4. great sire it will be useful to read the file in hdfs.thanks for providing this .
    Quotes

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. sir u have already wrote try and catch and again u have raised anthrows exception y

    ReplyDelete
  7. sir can u pls tell me wht is the meaning of system.exit(-1).

    ReplyDelete
  8. sir can u pls tell me wht is the meaning of system.exit(-1).

    ReplyDelete
  9. sir u have already wrote try and catch and again u have raised anthrows exception y

    ReplyDelete
  10. Thanks a lot very much for the high quality and results-oriented help. I won’t think twice to endorse your blog post to anybody who wants and needs support about this area.
    hadoop training in bangalore

    ReplyDelete
  11. Really your information is very nice and super.you provide a very good information about web developing.Thanks for sharng keep sharing more blogs.
    http://www.metaforumtechnologies.com/qtp-testing-training-in-chennai

    ReplyDelete
  12. mytectra placement Portal is a Web based portal brings Potentials Employers and myTectra Candidates on a common platform for placement assistance.

    ReplyDelete

Any feedback, good or bad is most welcome.

Name

Email *

Message *