Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用mapreduce在hadoop中处理压缩的xml文件_Java_Xml_Hadoop_Mapreduce - Fatal编程技术网

Java 使用mapreduce在hadoop中处理压缩的xml文件

Java 使用mapreduce在hadoop中处理压缩的xml文件,java,xml,hadoop,mapreduce,Java,Xml,Hadoop,Mapreduce,我有一个这样的文件结构 a、 zip包含a1.zip、a2.zip、a3.zip,然后这些压缩文件中的每个压缩文件都有一个xml文件 我需要处理这些xml文件。目前,我正在从a.zip中提取压缩文件,将它们存储在hdfs中,并运行一个MR作业来处理a1.zip、a2.zip。。。。。使用自定义输入格式和记录读取器 有人能帮我找到一个更好的解决方案吗?我不必解压a.zip文件,并且仍然并行处理文件。为什么不编写一个普通的java预处理器类,可以从主程序调用它呢。这些步骤将是: 1预处理器类将以编程

我有一个这样的文件结构

a、 zip包含a1.zip、a2.zip、a3.zip,然后这些压缩文件中的每个压缩文件都有一个xml文件

我需要处理这些xml文件。目前,我正在从a.zip中提取压缩文件,将它们存储在hdfs中,并运行一个MR作业来处理a1.zip、a2.zip。。。。。使用自定义输入格式和记录读取器


有人能帮我找到一个更好的解决方案吗?我不必解压a.zip文件,并且仍然并行处理文件。

为什么不编写一个普通的java预处理器类,可以从主程序调用它呢。这些步骤将是:

1预处理器类将以编程方式将a.zip文件提取到临时位置

2以编程方式将子zip类添加到hdfs

3以您现在的方式启动XML处理

4如果愿意,可以扩展预处理器类以直接放置XML,这样可以使XML处理程序更简单


如果这里有不清楚的地方,请告诉我。

在输入格式类中提到{codec}类如何。。{FileInputFormat.setInputCompressorClassjob,gzip代码.class}