2

嗨,我正在尝试设置 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)

但如果有人能提出一些建议,那就太好了。谢谢

4

2 回答 2

1

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

我也会考虑 10 GBit 选项。我认为,如果它不增加集群价格的 15% 以上 - 这是有道理的。15% 来自粗略估计,从映射器到减速器的数据传输需要大约 15% 的工作时间。
在你的情况下,我更愿意牺牲磁盘大小来省钱,而不是 CPU/内存/驱动器数量。

于 2013-03-04T15:39:47.953 回答
0

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

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

于 2013-03-07T06:44:19.033 回答