硬件环境
通常使用基于Intel或AMD CPU的刀片服务器来构建集群系统,为了降低成本可以使用已经停止销售的过时硬件。节点有本地内存和硬盘,通过高速交换机相连(通常为千兆交换机),如果 集群节点很多,也可以使用分层交换。集群内的节点是对等的(所有资源可以简化为相同配置),但这一点并非必须。
操作系统
Linux或windows
系统配置
实现HPCC集群用两种配置:数据加工(Thor)类似于Hadoop的MapReduce集群;数据分发引擎(Roxie)提供了独立的高性能在 线查询 处理功能和数据仓库功能。两种配置都可以用做分布式文件系统,不过它们试图提高性能的实现方法不同。HPCC环境通常由两种配置类型的多个集群组成。虽然 每个集群上的文件系统相互独立,但是一个集群可以访问同一环境下位于其他集群上的文件系统内的文件。
Hadoop系统软件使用MapReduce处理范例实现了集群。这样的集群也可以用做运行HDFS的分布式文件系统。其他的功能都处Hadoop的MapReduce和Hbase,Hive等文件系统软件之上。
授权和维护费用
HPCC:社团版本是免费的。企业版授权费用目前取决于集群大小和系统配置的类型。
Hadoop:免费,不过有多个厂商提供不同的付费的维护服务。
核心软件
HPCC:如果使用了Thor配置,那么核心软件包括安装在集群每个节点上的操作系统和多种服务,它们来实现任务的执行和分布式文件系统的访问。名 字为 Dali的独立服务器提供文件系统名字服务和管理HPCC环境下任务的工作单元。Thor集群可以配置为一个主节点和多个备用节点。Roxie集群是一个 对等连接的集群,它的每个节点可运行服务器和执行查询以及密钥和文件处理的任务代理。Roxie集群的文件系统使用分布式B+树来存储索引和数据,并提供 对加密数据的访问。要对Thor和Roxie集群进行操作的话,附加的中间件组件是不可或缺的。
Hadoop:核心软件包括操作系统、Hadoop的MapReduce集群和HDFS软件。每个备用节点包括任务跟踪服务和数据节点服务。主节点 包括任 务追踪服务,任务追踪服务可配置为独立的硬件节点或者运行在一个备用硬件节点。类似地,对HDFS来说,要提供名字服务的话,主名字节点服务也是必须的, 并且可在一个备用的节点或者一个独立的节点之上运行这个服务。
中间件
HPCC:中间件包括在MySQL服务器上实现的ECL代码仓库、编译ECL程序和查询的ECL服务器、ECL代理即Thor集群上管理任务执行的 客户端 程序,ESP服务器(企业服务平台),它提供认证、日志记录、安全以及执行任务和提供Web服务环境的其他服务,Dali服务器,它可用作存储任务工作单 元信息的系统数据和为分布式文件系统提供名字服务。中间件可以灵活地运行在一个到几个节点上。多个这样的服务器可以提供冗余备份和提高性能。
Hadoop:没有中间件。客户端软件可以直接提交任务给集群主节点的任务追踪器。作为服务器运行的Hadoop工作流调度器(HWS)的管理需要多个MapReduce序列的任务的功能正在开发中。
系统工具
HPCC包括用于管理、维护和监视HPCC配置和环境的客户端和操作工具套件。这个套件包括ECL IDE、程序开发环境、属性迁移工具、分布式文件应用(DFU)、环境配置应用和Roxie配置应用。命令行版本也可用。ECLWatch是一个监控 HPCC环境的基于Web的应用程序,它包括队列管理,分布式文件系统管理、任务监视和系统性能监视工具。其他工具是通过Web服务接口提供的。
Hadoop:dfsadmin工具提供文件系统的状态信息;fsck是一个检查HDFS上文件的健康性的应用;数据节点块扫描器定时地验证数据节 点上所 有的存储块;平衡器根据需要把超负荷的数据节点上的阻塞重新发布到低负荷的数据节点上。MapReduce的WEB用户接口包括显示正在运行的和已经完成 的任务信息的任务追踪器页面;对一个具体的任务再向下点击的话就可以看到这个任务的详细信息。还有显示Map和Reduce任务信息的任务页面。
易部署
HPCC:环境配置工具。源服务器有一个集中式仓库,它分发操作系统级别的设置、服务和二进制文件到配置中所有可网络启动的节点上。
Hadoop:需要第三方应用向导提供的在线工具协助。需要手动部署RPM。
分布式文件系统
HPCC:Thor的分布式文件系统是面向记录的,使用本地Linux文件系统存储部分文件。文件是跨节点初始化装载的(提取的),并且每个节点都 有一个 单独的部分文件,对一个分布式文件来说,这个部分文件可为空。在由用户指定的偶数个记录/文档范围内对文件进行分割。主备结构通过存储在独立服务器的名字 服务和文件映射信息来分割。每个节点只需要一个本地文件来表示一个分布式文件。同一环境下多个集群之间也支持读写访问权限设置。使用特定的适配器允许访问 来自外部数据库的比如MySQL的文件,允许事务数据与分布式文件数据合并且并入批处理的任务中。Roxie分布式文件系统使用了分布式B+树索引文件, 这样的文件包含了键值信息和存储在每个节点的本地文件里的数据。
Hadoop:面向块的,大多数安装使用大小为64MB或者128MB的块。块是以节点的本地Unix/Linux文件系统的独立单元/本地文件存 储的。 每个块的元数据信息存储为一个独立的文件。主备结构使用了单独的名字节点提供名字服务和块映射,并且使用了多个数据节点。文件划分为块并且分布地存储在集 群的各个节点。跨节点存储在一个节点上每个逻辑块的多个本地文件(一个用来保存块数据、一个用来保存元数据)来表示一个分布式文件。
容错性
HPCC:Thor和Roxie的分布式文件系统(可配置)在其他节点上保存了部分文件的副本,以防止磁盘或者节点失效。Thor系统在一个节点失 效之后 提供了要么自动要么手动的切换和热启动,任务从最近一次检查点重新启动或者继续运行。当复制数据到一个新的节点的时候,副本的制作自动进行。Roxie系 统在减少节点数而引起节点失效时继续运行。
Hadoop:HDFS(可配置)在其他节点上存储(用户指定的)多个副本,以防止由于自动恢复出现的磁盘或节点失效。MapReduce架构包括了试探性执行,当检测到一个慢的或者失败的Map任务时,其他Map任务将从失效的节点处开始恢复。