[
https://issues.apache.org/jira/browse/HADOOP-4975?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12723481#action_12723481
]
Amareshwari Sriramadasu commented on HADOOP-4975:
-------------------------------------------------
bq. I made the change to the Parser class, but I think the question is still
open about whether the change should go into the Configuration(Configuration)
constructor.
Yes. I figured out that the solution is to move the changes to
Configuration(Configuration), when I'm trying to change join package to use new
api. Raised HADOOP-6103 for the Configuration changes.
> CompositeRecordReader: ClassLoader set in JobConf is not passed onto
> WrappedRecordReaders
> -----------------------------------------------------------------------------------------
>
> Key: HADOOP-4975
> URL: https://issues.apache.org/jira/browse/HADOOP-4975
> Project: Hadoop Common
> Issue Type: Bug
> Components: mapred
> Affects Versions: 0.19.0
> Reporter: Jingkei Ly
> Assignee: Jingkei Ly
> Fix For: 0.21.0
>
> Attachments: break-wrapped-rr-test.patch, HADOOP-4975-1.patch,
> HADOOP-4975-2.patch
>
>
> I am using a custom ClassLoader which I set in my JobConf via
> setClassLoader(). The ClassLoader is loaded key and value classes which are
> required to read records from SequenceFiles that were written out in a
> previous MapReduce job.
> However, I am getting a ClassNotFoundException when using the
> CompositeInputFormat to create a RecordReader to read these SequenceFiles
> from HDFS. It occurs when the SequenceFile.Reader tries to create an instance
> of the Key/Value classes, presumably because the class loader
> SequenceFile.Reader is using is not the one I set with
> JobConf.setClassLoader. Below is an example of the stack trace I get:
> {code}
> Caused by: java.io.IOException: WritableName can't load class
> at org.apache.hadoop.io.WritableName.getClass(WritableName.java:73)
> at
> org.apache.hadoop.io.SequenceFile$Reader.getKeyClass(SequenceFile.java:1596)
> ... 33 more
> Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.MyWritableClass
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:247)
> at
> org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:673)
> at org.apache.hadoop.io.WritableName.getClass(WritableName.java:71)
> ... 34 more
> {code}
> I'll attach a unit test that can demonstrate this more clearly....
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.