一个MAPR Hadoop的安装通常是一个大型的集单个主机,称为节点,统称为集群。在一个典型的群集,大多数(或全部)的节点专用于数据处理和存储,以及节点的数目较少运行的其他服务,提供集群协调和管理。在部署MAPR的第一步是规划的节点将有助于集群,并选择将运行在每个节点上的服务。
首先,规划哪些计算机将作为节点在MAPR Hadoop集群和哪些具体的服务(守护进程)将运行在每个节点上。要确定计算机是否能够促进集群,可能需要检查在步骤2中的要求,编制各节点。集群中的每个节点都必须仔细核对这些要求,一个节点是不合适的安装失败的最常见原因之一。
第1步的目的是,详细说明服务的每个节点的集合一个集群计划。以下各节将帮助您创建此计划:
熟悉普通的Apache Hadoop 的 管理员 将欣赏MAPR分布的实时读/写存储层。同时与HDFS API兼容,MAPR的Hadoop不需要Namenodes。此外,MAPR利用原始磁盘和分区,而RAID或逻辑卷管理器。许多Hadoop的安装文件花费的网页讨论的HDFS和Namenodes,并且MAPR Hadoop的解决方案更易于安装,并提供更高的性能。
在MapR FileSystem(MAPR-FS)的 volumes ,概念上是将一组容器分布在集群中。每个容器包括其自身的元数据,从而消除了中央式“的Namenode”单点故障。对于这个容器的位置,一个必需的目录:容器的元数据位置(CLDB),这样的设计可以提高网络的性能,并提供高可用性。通过MAPR-FS存储的数据可以是文件或表格。
通过一个名为 warden 的东西,运行在所有节点来管理,监控,并报告在每个节点上的其他服务。该MAPR集群使用Apache ZooKeeper的协调服务。zookeeper 可以防止服务冲突的强制执行一组确定每个服务实例是主规则和条件。warden不会启动任何服务除非zookeeper可到达一半以上配置的ZooKeeper的节点(a quorum)是活的。
该MAPR M7版提供了native table storage 在MAPR-FS。该MAPR HBase的客户端是通过使用开放标准的Apache HBase的API来访问表数据。M7版可简化并统一管理两个结构表数据和非结构化文件数据的单一集群上。如果您打算使用MAPR表存储结构化数据,那么你不需要安装Apache HBase Master or RegionServer。然而,master和RegionServer服务可以部署一个M7群集上,如果你的应用程序需要它们,例如,数据在从Apache 到 Mapr tables的迁移期间。该MapR HBase的客户端可以访问Apache HBase tables和MapR tables。对于MAPR版本3.0,由于表功能都包含在所有MAPR-FS文件服务器上。因此表功能需要M7的许可证才能使用。
在一个典型的群集,大多数节点专用于数据处理和存储和运行服务,提供集群协调和管理节点的数目较少。在群集节点和其他运行一些应用程序在客户端上,可以达到在集群上运行,但不属于它的一部分。
您选择的每个节点上运行的服务将可能会随集群的生命。服务可以添加和删除随着时间的推移。我们将会在集群你要开始,但它想了几步的道路是非常有用的:当将服务迁移到当你进行了10倍的增长集群?100倍?
下表显示了一些可以在一个节点上运行的服务。
MapReduce | Storage | ManaeMent | 应用 |
服务 |
描述 |
---|---|
Wardeb |
warden 服务运行的每个节点上,为集群协调节点 |
TaskTracker |
TaskTracker 服务启动和跟踪Mapreduce任务在一个节点上。TaskTracker 服务接收Jobtrack分配的任务。 |
FileServer |
FileServer 是 MapR service :为MapR-FS上的每个节点管理磁盘存储 |
CLDB |
维持 container location database (CLDB)服务。该CLDB服务协调MAPR-FS FileServer 节点,MAPR NFS网关和MAPR客户端之间的数据存储服务。 |
NFS |
提供读写MAPR直接访问NFS™访问群集,并全力支持实时读写 |
MapR HBase Client |
在M7版本集群上,使您能够通过HBase的API来访问MAPR-FS上的表。要求在所有节点上都能访问的MAPR-FS的表数据,通常是指TaskTracker节点和一些边缘节点 |
JobTracker |
Hadoop的JobTracker的服务。在JobTracker的服务协调MapReduce作业由将任务分配给TaskTracker必须节点和监控任务执行的执行。 |
zookeeper |
通过提供协调容错MAPR集群来实现高可用性(HA)。 |
HBase Master |
在HBase master 服务管理 region servers(区域服务器:组成HBase的表存储)。 |
Web Server |
运行MapR Control System 并提供了MapR HeatMap™。 |
Metrics |
通过 Job Metrics 接口 提供可选的 服务:real-time 分析 数据在集群上的任务性能 。如果使用的话,Metrics 服务 是需要在所有的JobTracker和Web服务器节点。 |
HBase Region Server |
HBase Region 服务用来 和HBase Master 服务协调工作,并为个别HBase region提供存储。 |
Pig |
pig是一种高层次的数据流语言和执行框架。 |
Hive |
hive是支持类似于SQL的临时查询和数据汇总的数据仓库。 |
Flume |
Flume是聚集大量日志数据的服务 |
Oozie |
Oozie是管理Hadoop作业的工作流调度系统。 |
HCatalog |
HCatalog 合计HBase 数据。 |
Cascading |
cascading是一个应用框架,用于分析和管理大数据。 |
Mahout |
Mahout是一组分析用户行为可扩展的机器学习库。 |
Sqoop |
Sqoop是用于传输Hadoop和关系数据库之间大量数据的工具。 |
MAPR是一个完整的Hadoop分布,但并非所有的服务是必需的。每一个Hadoop的安装必须JobTracker和TaskTracker服务来管理的Map / Reduce任务。此外,MAPR要求zookeeper服务协调集群,并且至少一个节点必须运行CLDB服务。如果基于浏览器的MAPR控制系统,web服务器是必需的
MapR Hadoop包括这里列出的服务的测试版本。MAPR提供基于体积和容器一个更强大,读写存储系统。MapR 数据节点通常运行TaskTracker和文FileServer。不建议使用其他的资源包来代替MapR分布。
通过了解,该集群将执行的工作开始了。建立度量数据的存储容量,吞吐量和表征,这将典型地被执行的数据处理。
该MAPR Hadoop发行版是行货里三层外三层。
如果你需要存储表数据,选择M7许可证。M7包括M5许可证的所有功能,并且存储层中添加了对结构化数据表的原生支持。M7版提供了一个灵活的NoSQL数据库和Apache HBase的兼容。
M5的许可使企业级存储功能,如快照和镜像单个卷的,和高可用性特性,如多个节点上也提高了带宽和性能运行NFS服务器的能力。
免费M3社区版包括MAPR改进,如对文件系统的读/写MAPR-FS和NFS访问,但不包括所提供的M5或M7版本的技术支持水平。
您可以通过在线注册获得一个M3的牌照或M5的试用许可证。为了获得M7许可证,您将需要联系MAPR代表。
虽然MAPR是比较容易安装和管理,设计和调整大型生产的MapReduce集群是一个复杂的任务,从了解您的数据需求。考虑了一种数据处理将发生和估计所要求的存储容量和吞吐量速度。数据移动,独立的MapReduce操作,也是一个考虑因素。规划如何将数据在集群到达,以及如何在其他地方进行了有益的。
网络带宽和磁盘I / O速度是有关的,或者可以成为一个瓶颈。CPU密集型工作负载,减少磁盘或网络速度的相对重要性。如果集群将要执行大量的reduce,网络带宽是很重要的,这表明硬件方案包括每个节点的多个NICs。在一般情况下,更多的网络带宽,更快的东西将运行。
这是没有必要的键或躯干的NIC在一起。MAPR是能够利用多个NICs的优势透明。
在多个数据节点上运行的NFS可以提高数据传输性能,使数据直接加载和卸载成为可能,但多个NFS实例需要一个M5的许可证。有关NFS的更多信息,请参阅设置MAPR NFS。
计划,节点根据你预期的流量将提供NFS访问。举例来说,如果你需要写吞吐量和读取吞吐量的5Gb /秒的5Gb / s时,以下节点的配置将是合适的:
当您设置NFS上的所有文件服务器的节点,启用自我挂载的NFS点,每个节点。由具有自挂载的NFS点节点的集群使您能够运行本机应用程序的任务。您可以使用循环DNS或硬件负载平衡器安装NFS上的群集允许访问控制之外的一个或多个专用的网关。
经过适当授权和配置MAPR集群提供了连续性自动故障转移整个堆栈。配置集群为HA涉及具体服务的冗余实例,以及该MAPR NFS服务的配置是否正确。M3 Edition许可证下,HA不可用
下面介绍用于HA冗余服务:
服务 |
战略 |
最小。实例 |
---|---|---|
CLDB |
Master/Slave -配置两个实例以备其中一个出现故障 |
2 |
zookeeper |
大多数的ZK节点(a quorum)必须启用 |
3 |
JobTracker |
Active/standby - 如果第一个JT失败,启动备份 |
2 |
HBase Master |
Active/standby - 如果第一个HBase Master失败,则开始备份。在群集上部署的Apache HBase的时候这只是一个考虑因素。 |
2 |
NFS |
NFS服务,越多越好 |
2 |
您应该使用奇数个ZooKeeper。对于高可用性集群,用5个Zookeeper,从而使集群能够容忍2个ZooKeeper的节点失败并仍然保持法定的个数,不建议超过5 个ZooKeeper。
在大型集群中,您可以选择在准备故障转移事件提供额外的节点。在这种情况下,你留着备用,未使用的节点准备更换运行控制服务节点 - 在发生硬件故障 - 如CLDB,JobTracker,zookeeper,或HBase Master。
你可以设置虚拟IP地址(VIP)的NFS节点在M5许可MAPR集群,负载平衡或故障转移。虚拟IPs提供可利用的循环DNS,允许客户端连接进行中的NFS节点池分布多个地址。VIPs也使高可用性(HA)的NFS。在HA NFS系统,当一个NFS节点出现故障时,数据请求由池中的其他NFS节点支付。使用最小每个NFS节点有一个VIP的每个网卡的客户端将用于连接到NFS服务器。如果您有与每四个网卡四个节点,每个网卡连接到一个单独的IP子网,至少使用16个 Vips和直接客户的Vips在循环方式。Vips应该是在同一个IP子网来,他们将被分配的接口。请参阅设置贵宾的NFS关于启用贵宾为群集的详细信息。
如果您打算使用贵宾您M5群集的NFS节点,请考虑以下建议:
在规划硬件架构的集群,确保所有的硬件符合中列出的节点要求编制各节点。
规划部署时,群集硬件的体系结构是一个重要的考虑因素。其中的考虑因素,预计数据存储和网络带宽的需求,其中包括MapReduce作业执行过程中产生的中间数据。工作负载的类型是很重要的:考虑规划群集使用情况是否会占用大量CPU,I / O密集型或内存密集型。想想如何将数据加载到了集群,以及有多少数据很可能通过网络进行传输。
规划一个集群往往涉及调整的关键指标,如:磁盘I / O速度,CPU处理能力,存储容量,网络速度;或节点对网络速度的数。
通常情况下,CPU为少比网络带宽和磁盘I / O瓶颈 在可能的情况,网络和磁盘传输速率应平衡使用每个节点的多个NIC,以满足预期的数据速率。这是没有必要的债券或躯干的NIC组合在一起; MAPR是能够利用多个NIC的优势透明。每个节点都应该提供原始磁盘和分区MAPR,没有RAID或逻辑卷管理器,为MAPR需要格式化和数据保护的照顾。
下面的例子架构提供规格一般用途,并提出了标准节点的两个示例机架配置一个标准的计算/存储节点。MAPR能够有效利用每个节点比标准的Hadoop更多的驱动器,因此每个节点应出示足够的面板区域,允许大量的驱动器。标准节点规范允许2或4的1Gb / s以太网网络接口。MAPR建议的10Gb / s网络接口的高性能集群。
为了壮大产业集群,只需添加更多的节点和机架,可以根据需要增加额外的服务实例。MAPR自动重新平衡集群。
你如何将节点分配的服务取决于您的群集和MAPR许可证级别的规模。对于单节点集群,任何决定都参与。你是在单个节点上使用运行的服务。在介质群集上,CLDB和zookeeper服务的性能需求要求它们被分配给不同的节点,以便优化性能。在大型集群,良好的集群性能要求,这些服务在不同的节点上运行。
集群是灵活的,弹性的---节点在集群的生命周期中扮演不同的角色。是不一样的管理或对数据的节点的节点的基本要求。
随着集群规模的增长,它变得有利于在不运行计算服务(如TaskTracker)节点定位控制服务(如zookeeper和CLDB)。该MAPR M3版许可不包括HA能力,制约着怎样的某些服务的多个实例可以运行。节点和它们运行的服务的数量会随着其群集的生命周期。在最初设置集群,考虑到从页以下几点分配服务节点,以最佳的性能。
MAPR软件的架构允许几乎任何服务,任何节点或节点上运行,以提供高可用性,高性能集群。下面是一些指引,以帮助您规划群集的服务布局。
这是可能的一个或两个节点演示集群上安装MAPR Hadoop 。生产集群可以利用数百个节点,但五或十个节点生产集群适用于某些应用。
在生产MAPR集群,一些节点通常专用于集群的协调和管理,其他节点则负责数据的存储和处理工作。边缘节点提供用户对集群的访问,一台主机上集中开放的用户权限。在较小的集群,工作也不是那么专业和单个节点可以执行数据处理及管理。
一个ZooKeeper的节点上高延迟可能导致的zookeeper法定人数故障发生率增加。当集群找到ZooKeeper的服务运行了几个副本时,会发生ZooKeeper的法定人数失败。如果ZooKeeper的节点同时运行其他服务,对于计算资源的竞争可能会导致延迟增加该节点。如果你的集群经验的问题与zookeeper法定人数失败,考虑减少或消除zookeeper节点上运行的其他服务的数量。
以下是关于在大型集群中分离的服务准则:
在生产集群大多数节点是数据节点。数据节点可以添加或从集群中删除,因为需求随时间而改变。
调整TaskTracker必须为节点上同时包括管理和数据服务较少的插槽。见调整您的MAPR安装。
所谓边缘节点提供的MAPR webServer 和其他客户端工具的通用用户接入点。边缘节点可以是或可以不是集群的一部分,只要是边缘节点可达到的群集节点。在同一个网络上的节点可以运行客户端的服务,MySQL进行度量,等等。
对于使用免费M3 Edition许可证的小集群,分配CLDB,JobTracker,NFS和WebServer的服务,每一个节点。在任何这些节点的硬件故障会导致服务中断,但群集可以恢复。分配zookeeper service 到 CLDB节点和其他两个节点。集群中每个节点都分配 FileServer 和 TaskTracker
这个集群有几个单点故障,在与CLDB,JobTracker 和NFS的节点。
小M5集群可以通过为每个服务中的至少两个实例,消除了单点故障,确保高可用性(HA)的所有服务。下面的例子描述了5个节点,高供应情况而定M5采用HBase的安装集群。zookeeper是安装在3个节点。CLDB,JobTracker的,和HBase的主服务安装在每两个节点,摊开尽可能地跨节点:
这些例子把CLDB和zookeeper服务于相同的节点,一般放置JobTracker服务在其它节点,但是这是有些武断。该JobTracker的服务可以共存于同一节点zookeeper或CLDB服务上。
在一个大集群专为高可用性(HA),根据下面的例子指定服务,描绘了一个150节点HA集群M5。大部分节点都献给了TaskTracker必须的服务。动物园管理员,CLDB和JobTracker的安装在每3个节点,并从其他服务隔离。NFS服务器是安装在大多数计算机上,提供高网络带宽的集群。
MAPR管理一组在集群中的volumes。卷可以安装在Linux文件系统中的分级目录结构,但卷不包含其他卷。每卷都有自己的政策和其他设置,因此确定以隔离和分类 你的数据的卷数是很重要的。
计划定义卷为每个用户,每个项目,等等。对于流数据,你可能会打算创建一个新卷,每天或每周或每月来存储新的数据。越体积粒度,越容易指定备份或其他政策的数据的子集。有关卷的更多信息,请参阅使用卷管理数据。
集群计划的一部分是在集群的授权用户列表。最好是给每个用户的帐户,因为帐户的共享,使管理更加困难。在集群的任何用户必须使用相同的Linux的UID和GID建立在集群中的每个节点上。中央目录服务,如LDAP,经常被用来简化用户的维护。
它开始安装了一个完整的集群计划固然重要,但计划不应该是一成不变的。群集服务会随时间而改变,尤其是集群扩展通过增加节点。平衡资源利用率最大化为目标,它需要的flexibilty。
下一个步骤是准备每个节点。大多数安装困难追溯到那些没有资格作出贡献的集群,或尚未准备妥当的节点。对于大型集群,它可以节省大量时间和精力使用配置管理工具,如木偶或者厨师。
着手编制各节点,并评估每个节点。