Re: Manage a ROOT file from a streaming of the ROOT file content

From: Massimiliano Fasi <Massimiliano.Fasi_at_pg.infn.it>
Date: Mon, 23 Apr 2012 10:15:53 +0200


Hi Fons,

you were right. I re-built ROOT library with HDFS plugin, and now ROOT is able to find HDFS library, but application still doesn't work. I get this error:

SysError in <THDFSFile::THDFSFile>: Unable to open file hdfs://hydra1:54310/user/fasi/testROOT/mySearchTreeFile_68_2_Ewz.root in HDFS (No such file or directory)
SysError in <THDFSFile::THDFSFile>: file hdfs://hydra1:54310/user/fasi/testROOT/mySearchTreeFile_68_2_Ewz.root can not be opened for reading (No such file or directory)

But I'm sure the file
/user/fasi/testROOT/mySearchTreeFile_68_2_Ewz.root exists in HDFS. Is there in your opinion any mistake in path string or somewhere else?

Thank you,

Massimiliano

Fons Rademakers <Fons.Rademakers_at_cern.ch> ha scritto:

> Of course you've to make sure the HDFS plugin is build. It is not
> part of the standard binary version. Get the source and make sure
> all prerequisite libs for HDFS support are installed and do
>
> ./configure
> make
>
> Cheers, Fons.
>
> On 22 Apr 2012, at 09:28, Massimiliano Fasi
> <Massimiliano.Fasi_at_pg.infn.it> wrote:
>
>> Hi Fons,
>>
>> and thank you for your explanation. I tried to use TFile::Open(),
>> getting a different behaviour of the application. Indeed, now I get
>> this error:
>>
>> Error in <TUnixSystem::DynamicPathName>: HDFS[.so | .dll | .dylib |
>> .sl | .dl | .a] does not exist in
>> :/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:/storage/root/root/lib/root:.:/storage/root/root/lib/root::/storage/root/root/lib/root/cint/cint/stl
>>
>> [where /storage/root/root is ROOT installation directory ]
>>
>> It seems that now the program knows that it has to open a file
>> stored in HDFS, even though it can't do it succesfully. Any hint on
>> how to fix that new issue?
>>
>> Cheers,
>> Massimiliano
>>
>> Fons Rademakers <Fons.Rademakers_at_cern.ch> ha scritto:
>>
>>> Hi,
>>>
>>> to any I/O plugin work you have to open the files via TFile::Open(), like
>>>
>>> TFile* fileInput = TFile::Open(line.c_str());
>>>
>>> this static method will load the HDFS plugin triggered by hdfs://
>>> an will return a TFile derived THDFSFile object. The way you were
>>> doing it you were getting a standard local TFile object that was
>>> trying to open a local file.
>>>
>>> Let me know if you've more success with TFile::Open().
>>>
>>> Cheers, Fons.
>>>
>>
>>
>> ----------------------------------------------------------------
>> This message was sent using IMP, the INFN Perugia Internet
>> Messaging Program.
>>
>>
>



This message was sent using IMP, the INFN Perugia Internet Messaging Program. Received on Mon Apr 23 2012 - 10:16:18 CEST

This archive was generated by hypermail 2.2.0 : Mon Apr 23 2012 - 11:50:02 CEST