开源Hadoop在大量服务器上实现了“大数据”应用程序的分布式数据处理。它将给云中的应用程序带来冗余和更高的性能,从而防止出现故障。
Hadoop是Apache软件基金会的一个开源项目,它的出现是基于谷歌、雅虎、AOL和Facebook等公司的需求。这些公司需要在分布式服务器上支持大量数据的日常访问。
有两个因素使许多公司必须具备和使用Hadoop:大数据集应用程序不断增多;很多分布式处理器和无限存储量的云的可用性。
云中的Hadoop能够在大量服务器之间实现并行处理,加快任务完成速度。Hadoop可以显著提升数据搜索和处理的性能,如在数百万零售商店活动中挖掘出零售产业数据的流行趋势,或者情报机构从各种信息源收集安全信息以侦查恐怖活动。
Hadoop分布式处理是如何实现的?
Hadoop分布式文件系统(HDFS)由多个HDFS集群组成,其中每一个集群包含一个或多个数据节点。到达的数据会被划分成段,并分布于数据节点,以支持并行处理。然后,每一个段会被复制到多个数据节点上,这样,即使节点出现故障,仍然能够继续执行处理。
为了进一步防止故障发生,副本会被保存在多个机架的数据节点上。假设有三份默认备份,那么同一个机架上会保存两份段副本,另一个机架的节点保存另一份副本。
虽然HDFS能够抵御各种类型的故障,但是它也不是完全容错的。一个服务器必须部署一个NameNode。如果这个服务器出现故障,那么整个文件系统就会关闭。另一个NameNode会周期性备份主节点数据。备份数据将用于重启主节点,但是不能用于保存操作。
Hadoop部署一般都会使用HDFS,但是也支持其他的文件系统。MapR Technologies最近发布了一个兼容Hadoop的文件系统。这种文件系统增加了一些新特性,包括一个分布式NameNode,它去除了HDFS的单故障点。
它也支持Amazon S3文件系统,但是它无法保存数据段的位置信息,从而降低了Hadoop抵御服务器或机架故障的能力。但其他的文件系统都能够保存位置信息,如开源的CloudStore和MapR文件系统。
MapReduce引擎能够管理分布式数据处理
MapReduce由一个JobTracker和多个TaskTracker组成。客户端应用程序会将任务提交到JobTracker,由JobTracker将每个任务分配到一个TaskTracker节点。当HDFS或另一个感知位置的文件系统正处于在使用中时,JobTracker会利用每一个数据段已知的位置并尝试将处理分配到同一个包含所需数据的节点上。
每一个TaskTracker支持可配置数量的并发任务。如果数据所在的同一个节点上的TaskTracker无法分配更多的任务,那么JobTracker会尝试将任务分配给数据所在同一个机架的节点上。这种策略有利于资源数据中心骨干网络的数据流量,并且能够更多利用机架内可用网络带宽。
TaskTracker建立了一个独立的Java虚拟机,以防止任务崩溃导致整个TaskTracker失效。如果有一个任务出错,那么TaskTracker会通知JobTracker,然后JobTracker会将任务分配到其他位置。如果有一个TaskTracker失效,那么它分配的所有任务都会被重新分配。JobTracker会定期检查进度,如果它失效了,那么就会有一个新JobTracker启动,接管上一个记录点的处理。
每一个映射/减少任务的输出都会与其他任务输出进行组合,以实现进一步处理。组合多个任务的输出会将大量的数据输入到少量的处理器上。网络交换机所承受的压力会随着下一个处理阶段所在节点的数据覆盖率的增加而增大。同样,在不阻挡或丢弃数据包的情况下,交换机必须支持这些传输。
供应商提供Hadoop数据处理部署支持
虽然Hadoop用户能够从Apache下载软件,但是许多供应商的产品部署更简单,并且支持Hadoop安装。下面是这样一些供应商及其产品:
• Hortonworks Inc.这是雅虎的一个子公司,它雇佣了许多设计和实现Hadoop关键组件的雅虎前员工。Hortonworks的Hadoop数据平台是一组打包和经过测试的Hadoop开源软件组件。Hortonworks还为Hadoop用户提供支持和培训服务。
• Cloudera Inc. 它推出了CDH和Cloudera Enterprise、Cloudera Management and Service和Configuration Manager (SCM) Express等产品。CDH是一个免费下载的Hadoop开源集成和测试组件包。Cloudera Enterprise是一个订阅产品,它在开源组件的基础上增加了Cloudera Management套件,有Cloudera员工的持续支持。Cloudera的产品交付方式同时支持客户内部数据中心和各种公共云,如Amazon EC2、Rackspace、SoftLayer或VMware vCloud。Cloudera还提供Hadoop培训与专业服务。
• EMC Corp. 它与MapR合作开发EMC Greenplum HD社区版、EMC Greenplum HD企业版和EMC Greenplum HD数据计算设备。社区版是一组经过测试的开源Apache Hadoop组件。企业版是一套兼容Apache开源Hadoop的界面。它用MapR文件系统替代HDFS,主要特点是提升了高可用性,增加了控制数据位置的功能,从而使需要密集计算的应用程序能够部署在一台包含高性能处理器的服务器上。EMC还宣称其产品的性能远远高于Apache组件。
• IBM和戴尔也推出了Hadoop集成包。IBM推出了InfoSphere BigInsights基础版和企业版,而戴尔与Cloudera合作推出了Cloudera Enterprise。
软件供应商也在推进Hadoop支持。微软正与Hortonworks合作将Hadoop移植到Windows平台。Oracle、Sybase和Informatica都宣布了Hadoop支持计划。对于Hadoop的关注预计会继续增长。集成和经过测试的发行版、供应商产品、支持和培训等都让企业简化了部署和运营Hadoop。再加上大型数据库的分析需求及公共与私有云的可用性,这些都使大规模应用Hadoop成为可能。