hadoop 中的 XML 处理
我的 hdfs 中有近 200 多个 xml 文件。我使用(mahout 的)XmlInputFormat 来流式传输元素。映射器能够获取 xml 内容并对其进行处理。但问题是只有第一个 xml 文件得到处理。但是当我们处理大量小文本文件时,第一个文件处理完毕后,下一个文件将由 Hadoop 传递给映射器。让我知道这是否不是 xml 文件的默认行为以及应该如何迭代整个 xml 文件集。谢谢。
I have nearly 200+ xml files in the hdfs. I use the XmlInputFormat (of mahout) to stream the elements. The mapper is able to get the xml contents and process it. But the problem is only the first xml file alone is getting processed. But when we process large number of small text files, after the 1st file is processed, the next files will be passed on to the mapper by Hadoop. Let me know if this is not the default behaviour with xml files and what should be done to iterate over the entire set of xml files. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我很幸运使用正常的 XmlStreamRecordReader 类,然后循环标准输入(使用 Python、Hadoop Streaming API)。
文件有多大,您是在单个系统还是多节点集群上运行它? HDFS 块大小设置为多少?
I had good luck using the normal XmlStreamRecordReader class and then looping over the standard input(with Python, Hadoop Streaming API).
How big are the files, and are you running this on a single system or a multi-node cluster? What is the HDFS block size set to?