转发:http://www.cloudera.com/blog/2010/08/hadoophbase-capacity-planning/
Hadoop和HBase的日益普及,由于其灵活性和巨大的工作已经完成,以简化其安装和使用。这个博客是你第一次在Hadoop / HBase的集群大小提供指导。首先,有显着性差异在Hadoop和HBase使用。 Hadoop的MapReduce是主要的分析工具运行在您的所有数据的分析和提取数据查询,或至少是其中的重要部分(数据是一个复数的基准)。 HBase是更好的实时读/写/修改表格数据的访问。两个应用程序是专为高并发和大数据尺寸。对于一般性的讨论在Hadoop / HBase的架构和差异,请参考Cloudera的公司[https://wiki.cloudera.com/display/DOC/Hadoop+Installation+Documentation+for+Cloudera+Enterprise,http://www .cloudera.com/blog/2010/07/whats-new-in-cdh3-b2-hbase,或拉尔斯·乔治·博客[http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage 。HTML]。我们期待着新版本的汤姆·怀特的Hadoop的书http://www.hadoopbook.com],以及在不久的将来,新的HBase的书。
Hadoop的核心是名为HDFS的文件系统,HDFS的顶部,可用于计算和实际的MapReduce实现。因为我们正在谈论有关数据,第一个关键的参数是我们所有的Hadoop节点上需要多少磁盘空间来存储所有的数据和你要使用的数据存储压缩算法。 MapReduce的组件的一个重要的考虑因素是你需要多少计算能力来处理数据,你要在集群上运行的工作是否是CPU或I / O密集型。一个CPU密集型工作的一个例子是图像处理,而一个I / O密集的工作是一个简单的数据加载或聚集。最后,HBase的主要是内存驱动,我们需要考虑在您的应用程序的数据访问模式和多少内存,你需要这样,HBase的节点不交换数据过于频繁的磁盘。大多数数据写入结束前在memstores磁盘上,他们终于结束了,所以你应该写密集型的工作负载更多的内存一样抓取网络规划。 HBase的一个很好的应用是一个低延迟基于密钥的检索和像加入一个数据仓库事实表的网页抓取或三维数据,半结构化数据的存储,特别是如果数据需要更新实时跟踪,并可以很容易地组合成列的家庭。
这里给出一般Cloudera的硬件建议。本博客将重点放在更详细的容量规划问题
网络
虽然受到网络延迟,吞吐量和带宽经常被人忽略与Hadoop开始工作时,它必将成为一个限制因素群集的增长。在Hadoop集群的每个节点需要能够互相沟通与低延迟和高吞吐量至少要抓住有关数据。此外,如果节点是无法沟通的主节点,主节点会自动认为他们都死了,退市他们,这将导致其余节点上的负载增加。 Hadoop的工作,现成的TCP / IP网络。
网络负载取决于集群中的分析计算的性质。一个简单的应用程序需要大量节点之间的通信进行排序。事实上,TeraSort是一个很好的测试,以检测在集群网络的问题。
一个典型的配置是组织到机架与机架(猛龙)开关1GE热门的节点。机架通常是由一个或多个低延迟的高吞吐量的专用层2万兆核心交换机互连。许多客户都满意〜40节点群集适合一个典型的48端口交换机,可以到一个机架。即使你的所有节点可以放入一个机架,但你打算扩展到超过一个机架,Cloudera的建议,至少有两个机架从一开始去执行正确的做法和网络拓扑脚本。
网络问题可以间接地表现自己。一个良好的实际测试是运行网络密集型应用如terasort,各种10B 100字节的记录(具体参数可以调整簇的大小),您的群集。 100个节点的集群上一个四双核心CPU硬件的运行时间大约应该在10分钟内(我们的客户之一排序1TB 6分钟,76节点群集,这些数字可能与新的12核心CPU的机器)。如果你看到的“坏连接ACK与firstBadLink”,“坏连接ACK”,“主办”或“无法获得块”的IO异常,在重负载下无路线,没准这是由于一个坏的网络。即使一个节点上速度较慢的网络卡可以减缓总作业执行高达3-4倍,因为工作的完成是由最慢的任务限制。这个问题也可以表现为“间歇”重物下自己,但通常正确的网络配置和优化。
网络连接到外部系统是重要的数据加载到HDFS和互操作性。一些公司希望有一个专用的高带宽的网络加载数据(而不是只使用VLAN)。
Hadoop和HBase的日益普及,由于其灵活性和巨大的工作已经完成,以简化其安装和使用。这个博客是你第一次在Hadoop / HBase的集群大小提供指导。首先,有显着性差异在Hadoop和HBase使用。 Hadoop的MapReduce是主要的分析工具运行在您的所有数据的分析和提取数据查询,或至少是其中的重要部分(数据是一个复数的基准)。 HBase是更好的实时读/写/修改表格数据的访问。两个应用程序是专为高并发和大数据尺寸。对于一般性的讨论在Hadoop / HBase的架构和差异,请参考Cloudera的公司[https://wiki.cloudera.com/display/DOC/Hadoop+Installation+Documentation+for+Cloudera+Enterprise,http://www .cloudera.com/blog/2010/07/whats-new-in-cdh3-b2-hbase,或拉尔斯·乔治·博客[http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage 。HTML]。我们期待着新版本的汤姆·怀特的Hadoop的书http://www.hadoopbook.com],以及在不久的将来,新的HBase的书。
Hadoop的核心是名为HDFS的文件系统,HDFS的顶部,可用于计算和实际的MapReduce实现。因为我们正在谈论有关数据,第一个关键的参数是我们所有的Hadoop节点上需要多少磁盘空间来存储所有的数据和你要使用的数据存储压缩算法。 MapReduce的组件的一个重要的考虑因素是你需要多少计算能力来处理数据,你要在集群上运行的工作是否是CPU或I / O密集型。一个CPU密集型工作的一个例子是图像处理,而一个I / O密集的工作是一个简单的数据加载或聚集。最后,HBase的主要是内存驱动,我们需要考虑在您的应用程序的数据访问模式和多少内存,你需要这样,HBase的节点不交换数据过于频繁的磁盘。大多数数据写入结束前在memstores磁盘上,他们终于结束了,所以你应该写密集型的工作负载更多的内存一样抓取网络规划。 HBase的一个很好的应用是一个低延迟基于密钥的检索和像加入一个数据仓库事实表的网页抓取或三维数据,半结构化数据的存储,特别是如果数据需要更新实时跟踪,并可以很容易地组合成列的家庭。
这里给出一般Cloudera的硬件建议。本博客将重点放在更详细的容量规划问题
网络
虽然受到网络延迟,吞吐量和带宽经常被人忽略与Hadoop开始工作时,它必将成为一个限制因素群集的增长。在Hadoop集群的每个节点需要能够互相沟通与低延迟和高吞吐量至少要抓住有关数据。此外,如果节点是无法沟通的主节点,主节点会自动认为他们都死了,退市他们,这将导致其余节点上的负载增加。 Hadoop的工作,现成的TCP / IP网络。
网络负载取决于集群中的分析计算的性质。一个简单的应用程序需要大量节点之间的通信进行排序。事实上,TeraSort是一个很好的测试,以检测在集群网络的问题。
一个典型的配置是组织到机架与机架(猛龙)开关1GE热门的节点。机架通常是由一个或多个低延迟的高吞吐量的专用层2万兆核心交换机互连。许多客户都满意〜40节点群集适合一个典型的48端口交换机,可以到一个机架。即使你的所有节点可以放入一个机架,但你打算扩展到超过一个机架,Cloudera的建议,至少有两个机架从一开始去执行正确的做法和网络拓扑脚本。
网络问题可以间接地表现自己。一个良好的实际测试是运行网络密集型应用如terasort,各种10B 100字节的记录(具体参数可以调整簇的大小),您的群集。 100个节点的集群上一个四双核心CPU硬件的运行时间大约应该在10分钟内(我们的客户之一排序1TB 6分钟,76节点群集,这些数字可能与新的12核心CPU的机器)。如果你看到的“坏连接ACK与firstBadLink”,“坏连接ACK”,“主办”或“无法获得块”的IO异常,在重负载下无路线,没准这是由于一个坏的网络。即使一个节点上速度较慢的网络卡可以减缓总作业执行高达3-4倍,因为工作的完成是由最慢的任务限制。这个问题也可以表现为“间歇”重物下自己,但通常正确的网络配置和优化。
网络连接到外部系统是重要的数据加载到HDFS和互操作性。一些公司希望有一个专用的高带宽的网络加载数据(而不是只使用VLAN)。