我正在分析使用hadoop(HDFS)作为数据存档解决方案的可能性,该解决方案提供线性可扩展性和每个tera字节的低成本维护。
请让我知道您的建议和I / O,内存,磁盘等参数的设置,这些参数必须分析为viz 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.
再次感谢您的好评。
答案 0 :(得分:2)
您可以将HDFS用作存档/存储解决方案,但我怀疑它是最佳的。具体来说,它不像OpenStack Swift那样高,而且不适合存储小文件
同时如果HDFS是您的选择,我建议使用面向存储的节点构建集群。我会将它们描述为:
a)放入大而慢的SATA磁盘。由于数据不会被不断读取/写入 - 桌面级磁盘可能会这样做 - 这将是一个主要的节省。
b)放最小内存 - 我建议4 GB。它不会增加太多成本,但仍然可以实现ocaassional MR处理。
c)Sinlge CPU会做。
关于copyFromLocal。是的,文件根据定义的块大小进行拆分
群集上的分布将在整个群集中进行,并考虑到帐户复制因子。 HDFS还将尝试将每个块放在一个以上的机架上
答案 1 :(得分:1)
您可以.har
格式加载文件。
您可以在此处获得更多详细信息:Hadoop Archives
答案 2 :(得分:0)
少量输入