|
amit kumar verma
2010-07-08, 08:08
Allen Wittenauer
2010-07-08, 17:27
amit kumar verma
2010-07-08, 17:31
Hemanth Yamijala
2010-07-09, 08:34
amit kumar verma
2010-07-09, 09:09
Hemanth Yamijala
2010-07-09, 09:17
amit kumar verma
2010-07-09, 09:30
Hemanth Yamijala
2010-07-09, 09:48
amit kumar verma
2010-07-09, 10:22
Allen Wittenauer
2010-07-09, 18:24
|
-
jni filesamit kumar verma 2010-07-08, 08:08
Hi,
I developed a project which is using some native jni files (liblemur_jni.so), earlier i use to run application jar by using -Djava.library.path=/PATH_TO_JNI_FILES, but am not able to the same with ./hadoop jar command. I followed http://hadoop.apache.org/common/docs/r0.18.3/native_libraries.html 1. First copy the library to the HDFS. bin/hadoop fs -copyFromLocal mylib.so.1 /libraries/mylib.so.1 2. The job launching program should contain the following: DistributedCache.createSymlink(conf); DistributedCache.addCacheFile("hdfs://* /192.168.0.153:50075*/libraries/mylib.so.1#mylib.so", conf); 3. The map/reduce task can contain: System.loadLibrary("mylib.so"); but getting error : Exception in thread "main" java.io.IOException: Call to* /192.168.0.153:50075* failed on local exception: java.io.EOFException at org.apache.hadoop.ipc.Client.wrapException(Client.java:775) at org.apache.hadoop.ipc.Client.call(Client.java:743) at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:220) at $Proxy1.getProtocolVersion(Unknown Source) at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:359) at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:106) at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:207) at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:170) at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:82) at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1378) at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:66) at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1390) at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:196) at org.apache.hadoop.filecache.DistributedCache.getTimestamp(DistributedCache.java:506) at org.apache.hadoop.mapred.JobClient.configureCommandLineOptions(JobClient.java:640) at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:761) at org.apache.hadoop.mapreduce.Job.submit(Job.java:432) at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:447) at com.i4dweb.trobo.grid.WordCountNew.main(WordCountNew.java:49) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.hadoop.util.RunJar.main(RunJar.java:156) Caused by: java.io.EOFException at java.io.DataInputStream.readInt(DataInputStream.java:375) at org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:508) at org.apache.hadoop.ipc.Client$Connection.run(Client.java:446) Please advice. -- Thanks, Amit Kumar Verma Verchaska Infotech Pvt. Ltd.
-
Re: jni filesAllen Wittenauer 2010-07-08, 17:27
On Jul 8, 2010, at 1:08 AM, amit kumar verma wrote: > DistributedCache.addCacheFile("hdfs://* > /192.168.0.153:50075*/libraries/mylib.so.1#mylib.so", conf); Do you actually have asterisks in this? If so, that's the problem.
-
Re: jni filesamit kumar verma 2010-07-08, 17:31
Hi,
No there is no asterisks sign there, it came as i tried to make this *bold*. Thanks, Amit Kumar Verma Verchaska Infotech Pvt. Ltd. On 07/08/2010 10:57 PM, Allen Wittenauer wrote: > On Jul 8, 2010, at 1:08 AM, amit kumar verma wrote: > >> DistributedCache.addCacheFile("hdfs://* >> /192.168.0.153:50075*/libraries/mylib.so.1#mylib.so", conf); > Do you actually have asterisks in this? If so, that's the problem. > >
-
Re: jni filesHemanth Yamijala 2010-07-09, 08:34
Hi,
Possibly another silly question, but can you cross check if the versions of Hadoop on the client and the server are the same ? Thanks hemanth On Thu, Jul 8, 2010 at 10:57 PM, Allen Wittenauer <[EMAIL PROTECTED]> wrote: > > On Jul 8, 2010, at 1:08 AM, amit kumar verma wrote: > >> DistributedCache.addCacheFile("hdfs://* >> /192.168.0.153:50075*/libraries/mylib.so.1#mylib.so", conf); > > Do you actually have asterisks in this? If so, that's the problem. > >
-
Re: jni filesamit kumar verma 2010-07-09, 09:09
Hi Hemant,
The version are same as copied it to all client machine. I think I got a solution. As I read more about hadoop and JNI, I learned that I need to copy jni files to HADOOP_INSTALLATION_DIR//lib/native/Linux-xxx-xxx. I though my linux machine is Linux-i386-32. then I found in "org.apache.hadoop.util.PlatformName" class gives you your machine type and its Linux-amd64-64 and asa I copied jni files to this directory error are not coming. Though full code is still not running as I developed the application using java.file class and i am still thinking how to make changes so that it can access hdfs !!! Do i need to change my all API with respect to HDFS and rewrite using hadoop fs or ??!!! It will be great if someone advice on this. Thanks, Amit Kumar Verma Verchaska Infotech Pvt. Ltd. On 07/09/2010 02:04 PM, Hemanth Yamijala wrote: > Hi, > > Possibly another silly question, but can you cross check if the > versions of Hadoop on the client and the server are the same ? > > Thanks > hemanth > > On Thu, Jul 8, 2010 at 10:57 PM, Allen Wittenauer > <[EMAIL PROTECTED]> wrote: >> On Jul 8, 2010, at 1:08 AM, amit kumar verma wrote: >> >>> DistributedCache.addCacheFile("hdfs://* >>> /192.168.0.153:50075*/libraries/mylib.so.1#mylib.so", conf); >> Do you actually have asterisks in this? If so, that's the problem. >> >>
-
Re: jni filesHemanth Yamijala 2010-07-09, 09:17
Amit,
On Fri, Jul 9, 2010 at 2:39 PM, amit kumar verma <[EMAIL PROTECTED]> wrote: > Hi Hemant, > > The version are same as copied it to all client machine. > > I think I got a solution. As I read more about hadoop and JNI, I learned > that I need to copy jni files to > HADOOP_INSTALLATION_DIR//lib/native/Linux-xxx-xxx. I though my linux machine > is Linux-i386-32. then I found in "org.apache.hadoop.util.PlatformName" > class gives you your machine type and its Linux-amd64-64 and asa I copied > jni files to this directory error are not coming. > > Though full code is still not running as I developed the application using > java.file class and i am still thinking how to make changes so that it can > access hdfs !!! Do i need to change my all API with respect to HDFS and > rewrite using hadoop fs or ??!!! > To access files from HDFS, you should use the Hadoop FileSystem API. Please take a look at the Javadoc and also a tutorial such as this: http://developer.yahoo.com/hadoop/tutorial/module2.html#programmatically for more information. > It will be great if someone advice on this. > > > > Thanks, > Amit Kumar Verma > Verchaska Infotech Pvt. Ltd. > > > > On 07/09/2010 02:04 PM, Hemanth Yamijala wrote: >> >> Hi, >> >> Possibly another silly question, but can you cross check if the >> versions of Hadoop on the client and the server are the same ? >> >> Thanks >> hemanth >> >> On Thu, Jul 8, 2010 at 10:57 PM, Allen Wittenauer >> <[EMAIL PROTECTED]> wrote: >>> >>> On Jul 8, 2010, at 1:08 AM, amit kumar verma wrote: >>> >>>> DistributedCache.addCacheFile("hdfs://* >>>> /192.168.0.153:50075*/libraries/mylib.so.1#mylib.so", conf); >>> >>> Do you actually have asterisks in this? If so, that's the problem. >>> >>> >
-
Re: jni filesamit kumar verma 2010-07-09, 09:30
Hi Hemanth,
Yeah I have gone through the api documentation and there is no issue in accessing files from HDFS, but my concern is what about the API which already got developed without hadoop. OK, what I mean, I developed an application when I didn't know about the hadoop, but as now I need to implement grid environment so I am looking for Hadoop. So no the question is, how can use the same code to work for HDFS, do I need to change my code and use hadoop API to used the HDFS. If that is the case then the change will be major, or there is any way where the default java.file can be integrated with hdfs. Did you get the issue ?? Thanks, Amit Kumar Verma Verchaska Infotech Pvt. Ltd. On 07/09/2010 02:47 PM, Hemanth Yamijala wrote: > Amit, > > On Fri, Jul 9, 2010 at 2:39 PM, amit kumar verma<[EMAIL PROTECTED]> wrote: >> Hi Hemant, >> >> The version are same as copied it to all client machine. >> >> I think I got a solution. As I read more about hadoop and JNI, I learned >> that I need to copy jni files to >> HADOOP_INSTALLATION_DIR//lib/native/Linux-xxx-xxx. I though my linux machine >> is Linux-i386-32. then I found in "org.apache.hadoop.util.PlatformName" >> class gives you your machine type and its Linux-amd64-64 and asa I copied >> jni files to this directory error are not coming. >> >> Though full code is still not running as I developed the application using >> java.file class and i am still thinking how to make changes so that it can >> access hdfs !!! Do i need to change my all API with respect to HDFS and >> rewrite using hadoop fs or ??!!! >> > To access files from HDFS, you should use the Hadoop FileSystem API. > Please take a look at the Javadoc and also a tutorial such as this: > http://developer.yahoo.com/hadoop/tutorial/module2.html#programmatically > for more information. > >> It will be great if someone advice on this. >> >> >> >> Thanks, >> Amit Kumar Verma >> Verchaska Infotech Pvt. Ltd. >> >> >> >> On 07/09/2010 02:04 PM, Hemanth Yamijala wrote: >>> Hi, >>> >>> Possibly another silly question, but can you cross check if the >>> versions of Hadoop on the client and the server are the same ? >>> >>> Thanks >>> hemanth >>> >>> On Thu, Jul 8, 2010 at 10:57 PM, Allen Wittenauer >>> <[EMAIL PROTECTED]> wrote: >>>> On Jul 8, 2010, at 1:08 AM, amit kumar verma wrote: >>>> >>>>> DistributedCache.addCacheFile("hdfs://* >>>>> /192.168.0.153:50075*/libraries/mylib.so.1#mylib.so", conf); >>>> Do you actually have asterisks in this? If so, that's the problem. >>>> >>>>
-
Re: jni filesHemanth Yamijala 2010-07-09, 09:48
Amit,
On Fri, Jul 9, 2010 at 3:00 PM, amit kumar verma <[EMAIL PROTECTED]> wrote: > Hi Hemanth, > > Yeah I have gone through the api documentation and there is no issue in > accessing files from HDFS, but my concern is what about the API which > already got developed without hadoop. OK, what I mean, I developed an > application when I didn't know about the hadoop, but as now I need to > implement grid environment so I am looking for Hadoop. > > So no the question is, how can use the same code to work for HDFS, do I need > to change my code and use hadoop API to used the HDFS. If that is the case > then the change will be major, or there is any way where the default > java.file can be integrated with hdfs. > > Did you get the issue ?? > Yes, I think I do. Unfortunately, AFAIK, there's no easy way out. If your application had previously used Java I/O File APIs, they need to be migrated to the Hadoop FS API. If you are moving from a non-Distributed application to Hadoop for a reason (such as handling scale for e.g.) the investment will be well worth the effort, IMHO. > Thanks, > Amit Kumar Verma > Verchaska Infotech Pvt. Ltd. > > > > On 07/09/2010 02:47 PM, Hemanth Yamijala wrote: >> >> Amit, >> >> On Fri, Jul 9, 2010 at 2:39 PM, amit kumar verma<[EMAIL PROTECTED]> >> wrote: >>> >>> Hi Hemant, >>> >>> The version are same as copied it to all client machine. >>> >>> I think I got a solution. As I read more about hadoop and JNI, I learned >>> that I need to copy jni files to >>> HADOOP_INSTALLATION_DIR//lib/native/Linux-xxx-xxx. I though my linux >>> machine >>> is Linux-i386-32. then I found in "org.apache.hadoop.util.PlatformName" >>> class gives you your machine type and its Linux-amd64-64 and asa I copied >>> jni files to this directory error are not coming. >>> >>> Though full code is still not running as I developed the application >>> using >>> java.file class and i am still thinking how to make changes so that it >>> can >>> access hdfs !!! Do i need to change my all API with respect to HDFS and >>> rewrite using hadoop fs or ??!!! >>> >> To access files from HDFS, you should use the Hadoop FileSystem API. >> Please take a look at the Javadoc and also a tutorial such as this: >> http://developer.yahoo.com/hadoop/tutorial/module2.html#programmatically >> for more information. >> >>> It will be great if someone advice on this. >>> >>> >>> >>> Thanks, >>> Amit Kumar Verma >>> Verchaska Infotech Pvt. Ltd. >>> >>> >>> >>> On 07/09/2010 02:04 PM, Hemanth Yamijala wrote: >>>> >>>> Hi, >>>> >>>> Possibly another silly question, but can you cross check if the >>>> versions of Hadoop on the client and the server are the same ? >>>> >>>> Thanks >>>> hemanth >>>> >>>> On Thu, Jul 8, 2010 at 10:57 PM, Allen Wittenauer >>>> <[EMAIL PROTECTED]> wrote: >>>>> >>>>> On Jul 8, 2010, at 1:08 AM, amit kumar verma wrote: >>>>> >>>>>> DistributedCache.addCacheFile("hdfs://* >>>>>> /192.168.0.153:50075*/libraries/mylib.so.1#mylib.so", conf); >>>>> >>>>> Do you actually have asterisks in this? If so, that's the problem. >>>>> >>>>> >
-
Re: jni filesamit kumar verma 2010-07-09, 10:22
Hi Hemanth,
Thanks for your kind response and support. But what if I am using third party API and it also uses the java IO File ?? I think there must be some way to use hdfs by default with changing the code !! Thanks, Amit Kumar Verma Verchaska Infotech Pvt. Ltd. On 07/09/2010 03:18 PM, Hemanth Yamijala wrote: > Amit, > > On Fri, Jul 9, 2010 at 3:00 PM, amit kumar verma<[EMAIL PROTECTED]> wrote: >> Hi Hemanth, >> >> Yeah I have gone through the api documentation and there is no issue in >> accessing files from HDFS, but my concern is what about the API which >> already got developed without hadoop. OK, what I mean, I developed an >> application when I didn't know about the hadoop, but as now I need to >> implement grid environment so I am looking for Hadoop. >> >> So no the question is, how can use the same code to work for HDFS, do I need >> to change my code and use hadoop API to used the HDFS. If that is the case >> then the change will be major, or there is any way where the default >> java.file can be integrated with hdfs. >> >> Did you get the issue ?? >> > Yes, I think I do. Unfortunately, AFAIK, there's no easy way out. If > your application had previously used Java I/O File APIs, they need to > be migrated to the Hadoop FS API. If you are moving from a > non-Distributed application to Hadoop for a reason (such as handling > scale for e.g.) the investment will be well worth the effort, IMHO. > >> Thanks, >> Amit Kumar Verma >> Verchaska Infotech Pvt. Ltd. >> >> >> >> On 07/09/2010 02:47 PM, Hemanth Yamijala wrote: >>> Amit, >>> >>> On Fri, Jul 9, 2010 at 2:39 PM, amit kumar verma<[EMAIL PROTECTED]> >>> wrote: >>>> Hi Hemant, >>>> >>>> The version are same as copied it to all client machine. >>>> >>>> I think I got a solution. As I read more about hadoop and JNI, I learned >>>> that I need to copy jni files to >>>> HADOOP_INSTALLATION_DIR//lib/native/Linux-xxx-xxx. I though my linux >>>> machine >>>> is Linux-i386-32. then I found in "org.apache.hadoop.util.PlatformName" >>>> class gives you your machine type and its Linux-amd64-64 and asa I copied >>>> jni files to this directory error are not coming. >>>> >>>> Though full code is still not running as I developed the application >>>> using >>>> java.file class and i am still thinking how to make changes so that it >>>> can >>>> access hdfs !!! Do i need to change my all API with respect to HDFS and >>>> rewrite using hadoop fs or ??!!! >>>> >>> To access files from HDFS, you should use the Hadoop FileSystem API. >>> Please take a look at the Javadoc and also a tutorial such as this: >>> http://developer.yahoo.com/hadoop/tutorial/module2.html#programmatically >>> for more information. >>> >>>> It will be great if someone advice on this. >>>> >>>> >>>> >>>> Thanks, >>>> Amit Kumar Verma >>>> Verchaska Infotech Pvt. Ltd. >>>> >>>> >>>> >>>> On 07/09/2010 02:04 PM, Hemanth Yamijala wrote: >>>>> Hi, >>>>> >>>>> Possibly another silly question, but can you cross check if the >>>>> versions of Hadoop on the client and the server are the same ? >>>>> >>>>> Thanks >>>>> hemanth >>>>> >>>>> On Thu, Jul 8, 2010 at 10:57 PM, Allen Wittenauer >>>>> <[EMAIL PROTECTED]> wrote: >>>>>> On Jul 8, 2010, at 1:08 AM, amit kumar verma wrote: >>>>>> >>>>>>> DistributedCache.addCacheFile("hdfs://* >>>>>>> /192.168.0.153:50075*/libraries/mylib.so.1#mylib.so", conf); >>>>>> Do you actually have asterisks in this? If so, that's the problem. >>>>>> >>>>>>
-
Re: jni filesAllen Wittenauer 2010-07-09, 18:24
On Jul 9, 2010, at 2:09 AM, amit kumar verma wrote: > I think I got a solution. As I read more about hadoop and JNI, I learned that I need to copy jni files to HADOOP_INSTALLATION_DIR//lib/native/Linux-xxx-xxx. lib/native/xxx are for the native compression libraries. They are not for user-level map reduce code. |