1

我正在分析使用 hadoop (HDFS) 作为数据归档解决方案的可能性,该解决方案提供线性可扩展性和更低的每 TB 维护成本。

请让我知道您的建议和参数集,例如 I/O、内存、磁盘,这些参数必须被分析为 hadoop 作为数据归档系统。

在相关查询中,尝试使用 hadoop shell 上传 500MB 大小的文件时,

$ #我们已经使用 dd 创建了 500MB 的文件

$ dd if=/dev/zero of=500MBFile.txt bs=524288000 count=1

$ hadoop fs -Ddfs.block.size=67108864 -copyFromLocal 500MBFile.txt /user/cloudera/

请让我知道为什么输入文件没有根据块大小(64MB)进行拆分。这很好理解,因为作为数据存档的一部分,如果我们获得 1TB 文件,它将如何在集群中拆分和分布。

我已经尝试使用单节点 cloudera hadoop 设置进行练习,复制因子为 1。

再次感谢您的出色回应。

4

3 回答 3

2

您可以使用 HDFS 作为归档/存储解决方案,但我怀疑它是最佳的。具体来说,它不像 OpenStack Swift 那样高可用性,也不适合存储小文件
。同时,如果您选择 HDFS,我建议使用面向存储的节点构建集群。我将它们描述为:
a) 放置大而慢的 SATA 磁盘。由于不会不断地读取/写入数据 - 桌面级磁盘可能会 - 这将是一项重大节省。
b) 放置最少的内存 - 我建议使用 4 GB。它不会增加太多成本,但仍然可以进行偶尔的 MR 处理。
c) 单 CPU 就可以了。

关于copyFromLocal。是的,文件正在根据定义的块大小进行拆分。

考虑到复制因子,集群上的分布将在整个集群中均匀分布。HDFS 还将尝试将每个块放在一个以上的机架上

于 2012-08-10T13:54:47.493 回答
1

您可以加载.har格式的文件。

您可以在此处获得更多详细信息:Hadoop 档案

于 2015-08-13T12:02:50.807 回答
0

输入很少

  1. 在您的解决方案中考虑压缩。看起来您将使用文本文件。您可以实现大约 80% 的压缩。
  2. 确保选择 Hadoop 友好(可拆分)压缩
于 2013-08-14T12:28:06.313 回答