用hadoopmapreduce处理xml

pnwntuvh  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(401)

我想加载和解析一些PB的xml数据。在对如何在hadoop中处理xml做了大量的研究之后,我知道xml必须在map reduce中作为整个文件进行处理。
如果我将整个xml作为一个单独的输入分割提供给MapReduce,那么它就不会利用hadoop的分布式和并行处理特性,因为只有一个Map器在进行处理。
我的理解正确吗?如何克服这个问题?
请建议

0x6upsns

0x6upsns1#

如果只有一个PB大小的xml数据块,则会出现问题。更可能的情况是,您有数百万或数十亿个单独的xml记录。如果是这样的话,您可以使用一种非常简单的方法:创建数百万个xml文件,这些文件的大小与hdfs系统的块大小大致相同(稍微小一点)。然后编写一组mapreduce作业,其中第一个Map器提取xml数据并输出任何有用的(名称、值)对,reducer从需要关联的各种xml文件中收集所有不同的(名称)对。
如果xml数据集随着时间的推移而变化,您可能希望查看对流数据集的支持。

vxqlmq5t

vxqlmq5t2#

您可以尝试使用mahout的xmlinputformat。xmlinputformat负责使用指定的开始和结束标记计算xml输入文件中的记录边界。
您可以使用此链接作为如何使用xmlinputformat解析xml文件的参考。

相关问题