Hadoop集群需求软件/硬件

时间:2013-03-04 14:50:22

标签: hadoop hive

您好我正在尝试设置hadoop环境。简而言之,我试图解决的问题涉及数十亿个大小为几MB的XML文件,使用HIVE从中提取相关信息,并对信息进行一些分析工作。我知道这在hadoop世界中是一个微不足道的问题,但如果Hadoop解决方案对我而言比我将要处理的文件大小和数量都会增加几何级别。

我通过参考各种书籍进行研究,如“Hadoop - 明确的指南”,“Hadoop in action”。像yahoo和hortonworks这样的文档资源。我无法弄清楚建立hadoop环境的硬件/软件规范。在我迄今为止提到的资源中,我找到了类似

的标准解决方案
  1. Namenode / JobTracker(2 x 1Gb / s以太网,16 GB RAM,4xCPU,100 GB磁盘)
  2. Datanode(2 x 1Gb / s以太网,8 GB RAM,4xCPU,多个磁盘,总数量为
    500+ GB)
  3. 但如果有人能提出一些很好的建议。谢谢

2 个答案:

答案 0 :(得分:1)

首先我建议你考虑一下:你需要更多的处理+一些存储或相反的东西,从这个视图中选择硬件。您的案例听起来更多处理然后存储。
我会为hadoop指定一些不同的标准硬件 NameNode:镜像中的高质量磁盘,16 GB HDD。
数据节点:16-24 GB RAM,双四核或双六核CPU,4到6个1-2-3 SATA TB驱动器。

我还会考虑10 GBit选项。我认为如果不增加超过15%的集群价格 - 这是有道理的。 15%来自粗略估计,从地图制作者到减速者的数据大约占工作时间的15%。
在你的情况下,我会更愿意牺牲光盘大小以节省资金,但不是CPU /内存/驱动器数量。

答案 1 :(得分:0)

“使用HIVE从他们那里提取相关信息” 这有点棘手,因为hive对xml文件并不是很好。 您将要使用另一种语言(ruby,python,perl等)构建解析脚本,该脚本可以解析xml文件并生成将加载到hive中的列式输出。然后,您可以使用hive通过转换调用该外部解析脚本,或者只使用hadoopstreaming为hive准备数据。 然后,只需要知道您需要多快完成工作,以及需要多少空间来保存您将要拥有的数据量。

您可以在一个系统上使用少量文件构建流程来测试它。但是,您确实需要更好地处理总计划工作量,以正确扩展群集。最小生产群集大小至少为3或4台机器,仅用于数据冗余。除此之外,根据需要添加节点以满足您的工作负载需求。