我在Hadoop中有一个大型数据集,其中包含许多不同客户的数据。在此数据集中,每个客户都可以有许多订单商品,每天的订单数量从几百到几百万不等。数据集有大约50,000个客户。我需要做的是为每个客户创建一份每日XML报告,其中每个客户的数据都在其自己的文件中。这意味着一些文件会很小,但其他文件会很大(XML表示非常冗长并且有很多字段)。编写MapReduce代码来生成XML是微不足道的,我解决这个问题的第一个方法是使用HadoopMultipleOutputs在reducer中为每个客户编写一个文件。虽然这可行,但所有这些小文件都会给Namenode带来很大压力。此外,我需要将所有这些文
是否有任何解决方案可以从Hadoop中的MapFile中删除条目。我可以读取和写入MapFile的条目,但我完全不知道从中删除或更新条目。有什么好的解决方案吗?任何帮助表示赞赏。提前致谢。 最佳答案 hdfs基本上是支持数据仓库的设施。您不能修改任何hdfs文件的现有内容,最多可以在fine的底部追加新内容。可以引用similarquestion 关于hadoop-如何从Hadoop中的MapFile中删除条目,我们在StackOverflow上找到一个类似的问题:
我最近开始使用Hadoop,但在使用Mapfile作为MapReduce作业的输入时遇到问题。以下工作代码在hdfs中写入一个名为“TestMap”的简单MapFile,其中有三个Text类型的键和三个BytesWritable类型的值。这里是TestMap的内容:$hadoopfs-text/user/hadoop/TestMap/data11/01/2011:17:58INFOutil.NativeCodeLoader:Loadedthenative-hadooplibrary11/01/2011:17:58INFOzlib.ZlibFactory:Successfullyload