【问题标题】:How to produce massive amount of data?如何产生海量数据?
【发布时间】:2012-01-29 21:21:40
【问题描述】:

我正在使用 nutch 和 hadoop 进行一些测试,我需要大量数据。 我想从 20GB 开始,到 100GB、500GB 并最终达到 1-2 TB。

问题是我没有这么多数据,所以我在想办法产生它。

数据本身可以是任何类型的。 一个想法是获取一组初始数据并复制它。但它还不够好,因为需要彼此不同的文件(忽略相同的文件)。

另一个想法是编写一个程序来创建带有虚拟数据的文件。

还有什么想法吗?

【问题讨论】:

  • 从google analitycs查询数据?
  • 哇,这样的程序需要大量时间才能运行。
  • 你考虑过只生成随机数吗?
  • "(忽略相同的文件)。" 从末尾剪掉几行(随机数),它们就不会了。
  • 为什么要生产?那里有大量免费的大型数据集:stackoverflow.com/questions/2674421/…

标签: java hadoop nutch bigdata


【解决方案1】:

这对于 StackExchange 统计网站可能是一个更好的问题(例如,请参阅 my question on best practices for generating synthetic data)。

但是,如果您对数据属性的兴趣不如对数据进行操作和处理的基础设施那么感兴趣,那么您可以忽略统计信息站点。特别是,如果您不关注数据的统计方面,而只是想要“大数据”,那么我们可以专注于如何生成大量数据。

我可以提供几个答案:

  1. 如果您只对随机数字数据感兴趣,请从您最喜欢的 Mersenne Twister 实现中生成一个大流。还有 /dev/random(参见 this Wikipedia entry for more info)。我更喜欢已知的随机数生成器,因为其他任何人都可以恶心地复制结果。

  2. 对于结构化数据,您可以查看将随机数映射到索引并创建一个表,将索引映射到字符串、数字等,例如在生成名称、地址数据库时可能会遇到的情况等。如果您有足够大的表或足够丰富的映射目标,则可以降低发生冲突的风险(例如,相同的名称),尽管您可能希望发生一些冲突,因为这些在现实中也会发生。

  3. 请记住,使用任何生成方法都不需要在开始工作之前存储整个数据集。只要您记录状态(例如 RNG 的状态),您就可以从中断的地方继续。

  4. 对于文本数据,您可以查看简单的随机字符串生成器。您可以为不同长度或不同特征的字符串的概率创建自己的估计。句子、段落、文档等也是如此 - 只需决定要模拟哪些属性,创建一个“空白”对象,然后用文本填充它。

【讨论】:

    【解决方案2】:

    如果您只需要避免完全重复,您可以尝试结合您的两个想法——创建一个相对较小的数据集的损坏副本。 “损坏”操作可能包括:替换、插入、删除和字符交换。

    【讨论】:

      【解决方案3】:

      我会编写一个简单的程序来完成它。该程序不需要太清楚,因为写入磁盘的速度可能是您的瓶颈。

      【讨论】:

        【解决方案4】:

        关于长时间的评论:我最近扩展了一个磁盘分区,我很清楚移动或创建大量文件需要多长时间。向操作系统请求磁盘上的一定范围的可用空间,然后在 FAT 中为该范围创建一个新条目,而不写入任何内容(重用先前存在的信息),会快得多。这将满足您的目的(因为您不关心文件内容)并且与删除文件一样快。

        问题是这在 Java 中可能很难实现。我找到了一个名为fat32-lib 的开源库,但由于它不使用本机代码,我认为它在这里没有用处。对于给定的文件系统,并使用较低级别的语言(如 C),如果您有时间和动力,我认为这是可以实现的。

        【讨论】:

          【解决方案5】:

          看看TPC.org,他们有不同的数据库基准,带有数据生成器和预定义的查询。

          生成器具有允许定义目标数据大小的比例因子。

          还有专注于分布式“大数据”数据生成的myriad research project (paper)。 Myriad 的学习曲线很陡峭,因此您可能需要向软件的作者寻求帮助。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-08-16
            • 2021-07-25
            • 2014-11-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-12-10
            • 1970-01-01
            相关资源
            最近更新 更多