You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-dev@hadoop.apache.org by "Steve Loughran (JIRA)" <ji...@apache.org> on 2013/12/04 10:06:36 UTC
[jira] [Resolved] (MAPREDUCE-5664) java.lang.RuntimeException:
javax.xml.parsers.ParserConfigurationException:
[ https://issues.apache.org/jira/browse/MAPREDUCE-5664?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Steve Loughran resolved MAPREDUCE-5664.
---------------------------------------
Resolution: Duplicate
Resolving as duplicate of HADOOP-5254 ; the issue here "using out of date XML parser" is handled in Hadoop 1.2+ . Upgrade Hadoop or configure the JVM to use the XML parser built in to java 1.6
> java.lang.RuntimeException: javax.xml.parsers.ParserConfigurationException:
> ---------------------------------------------------------------------------
>
> Key: MAPREDUCE-5664
> URL: https://issues.apache.org/jira/browse/MAPREDUCE-5664
> Project: Hadoop Map/Reduce
> Issue Type: Bug
> Reporter: ranjini
>
> Hi,
> I am using hadoop 0.21 vesrsion and java 1.6. Please help me to fix the issue. What version jar should i put.
> The sample code with xml i have attached here.
> {code}
> <?xml version="1.0"?>
> <Company>
> <Employee>
> <id>100</id>
> <ename>ranjini</ename>
> <dept>IT</dept>
> <sal>123456</sal>
> <location>nextlevel</location>
> </Employee>
> </Company>
> {code}
> {code}
> import java.io.IOException;
> import java.util.*;
> import org.apache.hadoop.fs.Path;
> import org.apache.hadoop.fs.FileSystem;
> import org.apache.hadoop.conf.*;
> import org.apache.hadoop.conf.Configuration;
> import org.apache.hadoop.fs.FileStatus;
> import org.apache.hadoop.io.*;
> import org.apache.hadoop.mapred.*;
> import org.apache.hadoop.util.*;
> import java.io.*;
> import org.apache.hadoop.mapred.lib.*;
> import java.io.Reader;
> import java.io.StringReader;
> import org.jdom.Document;
> import org.jdom.Element;
> import org.jdom.JDOMException;
> import org.jdom.input.SAXBuilder;
> public class ParseXml {
> public static class Map extends MapReduceBase implements
> Mapper<LongWritable, Text, Text, Text> {
>
> public void map(LongWritable key, Text value,
> OutputCollector<Text, Text> output, Reporter reporter)
> throws IOException {
>
> String s="";
> FileSystem fs=null;
> Configuration conf=new Configuration();
> conf.set("fs.default.name","hdfs://localhost:4440/");
> Path srcpath=new Path("/user/hduser/Ran/");
> try {
>
> String xmlString = value.toString();
>
> SAXBuilder builder = new SAXBuilder();
> Reader in = new StringReader(xmlString);
> Document doc = builder.build(in);
> Element root = doc.getRootElement();
>
> s =root.getChild("Employee").getChild("id").getChild("ename").getChild("dept").getChild("sal").getChild("location").getTextTrim();
> output.collect(new Text(""),new Text(s));
>
> } catch (Exception e) {
> e.printStackTrace();
> }
> }
> }
>
> public static void main(String[] args) throws Exception {
>
> String input="/user/hduser/Ran/";
> String fileoutput="/user/task/Sales/";
> JobConf conf = new JobConf(ParseXml.class);
> conf.setJobName("file");
> conf.setOutputKeyClass(Text.class);
> conf.setOutputValueClass(Text.class);
> conf.setNumReduceTasks(1);
> conf.setMapperClass(Map.class);
> conf.setInputFormat(TextInputFormat.class);
> conf.setOutputFormat(TextOutputFormat.class);
> FileInputFormat.setInputPaths(conf,input);
> Path outPath = new Path(fileoutput);
> FileOutputFormat.setOutputPath(conf, outPath);
> FileSystem dfs = FileSystem.get(outPath.toUri(), conf);
> if (dfs.exists(outPath)) {
> dfs.delete(outPath, true);
> }
> //conf.setOutputFormat(MultiFileOutput.class);
> JobClient.runJob(conf);
> }
> }
> {code}
> When processing xml file as input via map reduce, the error occurred is
> {code}
> conf.Configuration: error parsing conf file: javax.xml.parsers.ParserConfigurationException: Feature 'http://apache.org/xml/features/xinclude' is not recognized.
> Exception in thread "main" java.lang.RuntimeException: javax.xml.parsers.ParserConfigurationException: Feature 'http://apache.org/xml/features/xinclude' is not recognized.
> at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:1171)
> at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:1030)
> at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:980)
> at org.apache.hadoop.conf.Configuration.get(Configuration.java:382)
> at org.apache.hadoop.util.RunJar.main(RunJar.java:109)
> Caused by: javax.xml.parsers.ParserConfigurationException: Feature 'http://apache.org/xml/features/xinclude' is not recognized.
> at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)
> at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:1061)
> ... 4 more
> {code}
> Please help to fix the issue
--
This message was sent by Atlassian JIRA
(v6.1#6144)