搭建Hadoop集群

来源:互联网 发布:java 接口过滤器 编辑:程序博客网 时间:2024/05/17 05:17

集群节点数量

我们需要考虑的第一个问题是需要多大规模的Hadoop集群。Hadoop集群的优势之一就是不需要一开始就考虑的太多,可以根据数据量的增加慢慢的扩展集群规模。因此一般从十个节点至几十个节点开始。

Hadoop集群一般使用的典型机器配置为:

  • 两个4核 2~2.5 GHz CPU
  • 16~24GB ECC内存
  • 4*1TB SATA 硬盘
  • 前兆以太网

假如数据每个月增长1TB,且采用3副本策略,则每个月数据增加3TB。另外一些中间文件和日志文件约占30%。因此每个月就需要增加一台硬盘为4TB的节点。

常用网络拓扑

各个机架装配30~40台服务器,共享一个1GB的机架交换机,各机架的交换机又通过上行链路与一个核心交换机或路由器互联(通常为1GB或更高)。该架构的突出特点就是同一机架内部节点之间的总带宽要远高于不同机架上的节点间的带宽。

网络结构对Hadoop的意义

对于Hadoop来说,理解网络拓扑结构对实现Hadoop高效运行有重大意义。

首先,Hadoop在存放replica会考虑网络拓扑结构。很显然将所有的副本都放在一个节点时占用的带宽最小,但安全性最低,且需要考虑如何保持数据在集群内分布相对均匀。

默认的布局策略是在运行客户端的节点上放第一个副本,第二个副本放在另一个随机选择的机架中的节点上,第三个副本放在与第二个副本同一个机架的不同节点上。如果配置了更多的副本,则随机放在集群中的节点上,不过会尽力避免在一个机架上放太多副本。Hadoop使用均衡器来实现集群数据的均衡放置。

第二,网络结构对Hadoop如何决策数据块访问也非常重要。客户端需要访问NameNode以获取数据块的具体位置,NameNode需告知客户端每个数据块的最佳DataNode,并让客户端直接连接到该DataNode检索数据。另外当DataNode出现问题,Hadoop也需要在集群的其他位置,选择剩下的replica来重建数据。

因此Hadoop需要理解网络拓扑结构并量化节点之间的位置。Hadoop用来衡量网络中两个节点距离的方式是将网络看成一棵树,两个节点的距离是它们到最近共同祖先的距离总和。该树种的层次是相对于数据中心,机架和节点而言的,通常可以设定等级。可用带宽依次递减:

  • 同一节点上的进程
  • 同一机架上的不同节点
  • 同一数据中心不同机架上的节点
  • 不同数据中心

例如,假设有数据中心d1机架r1的节点n1,该节点可以表示为/d1/r1/n1,且

distance(/d1/r1/n1,/d1/r1/n2) = 0 为同一节点上的进程;

distance(/d1/r1/n1,/d1/r2/n1) = 4 为不同机架上的节点;

配置Hadoop网络拓扑

Hadoop会自行将集群中的节点(通过该节点的DNS或IP地址)映射到某个rack id,也可以由我们辅助定义。

https://bigdataprocessing.wordpress.com/2013/07/30/hadoop-rack-awareness-and-configuration/


更多集群配置细节请参考:

http://hadoop.apache.org/docs/r1.2.1/cluster_setup.html

0 0
原创粉丝点击