Thanks Ping :) actually my mistake was that I used to create a FileSystem in
the Mapper class as:
fs = FileSystem.get( myConf) ; // where myConf is defined in the main
class WordCount.
Somehow, that wasn't working .. but as soon as I changed it to be with new
Configurations:
FileSystem fs = FileSystem.get(new Configuration()) // it worked !
Any reason for that?
Thank you,
Maha
On Dec 17, 2010, at 2:59 PM, Peng, Wei wrote:
>
> You can put your local file to distributed file system by hadoop fs -put
> localfile DFSfile.
> Then access it by
> Configuration conf = new Configuration();
> try {
> FileSystem fs = FileSystem.get(URI.create(DFSfile),
> conf);
> FSDataInputStream in = null;
> in = fs.open(new Path(path));
> String content = in.readUTF();
>
> } catch (IOException e) {
>
> }
> -----Original Message-----
> From: maha [mailto:[email protected]]
> Sent: Fri 12/17/2010 2:20 PM
> To: [email protected]
> Subject: Re: Needs a simple answer
>
> Hi Ted, thanks for the hint , but I'm using only one machine now .. so the
> file is definitely in there.
>
> So, How can I open an hdfs- file in my InputFormat class (in GetSplits) so I
> can pass the contents to the mappers ?
>
> Now, the splits are splits of files-paths from the input directory ( eg.
> split1: /tmp/f1, split2:/tmp/f2 .... split4: /tmp/f4) instead I want ----->
> ( split1: content of file1 , ....).
>
> Thank you,
>
> Maha
>
>
> On Dec 16, 2010, at 2:49 PM, Ted Dunning wrote:
>
>> Maha,
>>
>> Remember that the mapper is not running on the same machine as the main
>> class. Thus local files aren't where you think.
>>
>> On Thu, Dec 16, 2010 at 1:06 PM, maha <[email protected]> wrote:
>>
>>> Hi all,
>>>
>>> Why the following lines would work in the main class (WordCount) and not
>>> in Mapper ? even though " myconf " is set in WordCount to point to the
>>> getConf() returned object.
>>>
>>> try{
>>> FileSystem hdfs = FileSystem.get(wc.WordCount.myconf);
>>> hdfs.copyFromLocalFile(new Path("/Users/file"), new
>>> Path("/tmp/file"));
>>> }catch(Exception e) { System.err.print("\nError");}
>>>
>>>
>>> Also, the print statement will never print on console unless it's in my
>>> run function..
>>>
>>> Appreciate it :)
>>>
>>> Maha
>>>
>>>
>
>