热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OpenStack私有云平台与HadoopMapReduce环境的部署

随着企业开始同时利用云计算和大数据技术,现在应当考虑如何将这些工具结合使用。在这种情况下,企业将实现最佳的分析处理能力,同时利用私有云的快速弹性(rapidelasticity)和单一租赁的特性。本文将帮助您了解云计算和大数据技术的组成部分,了

随着企业开始同时利用计算和大数据技术,现在应当考虑如何将这些工具结合使用。在这种情况下,企业将实现最佳分析处理能力,同时利用私有云的快速弹性 (rapid elasticity) 和单一租赁的特性。本文将帮助您了解云计算和大数据技术的组成部分,了解私有云是什么,Apache Hadoop 是什么,它们的协同效用,如何进行部署它们,以及它们带来的挑战有哪些。

私有云计算简介

私有云 指企业内部的云计算部署,在私有云中,企业利用了数据中心内的各种云计算技术的细微差别。这些差别包括快速弹性、资源池、按需配给和自动化管理。为了在内部将这些属性整合在一起,大多数企业采用了开源的云版本,比如 OpenStack 或 CloudStack。

OpenStack 是最流行的开源云版本,它包括控制器、计算 (Nova)、存储 (Swift)、消息队列 (RabbitMQ) 和网络 (Quantum) 组件。图 1 提供了这些组件的一个图示(不包含 Quantum 网络组件)。

图 1. OpenStack 的组件 

这些组件共同提供了一个允许动态配给计算和存储资源的环境。从硬件角度看,这些服务可扩展到许多虚拟的和物理的服务器上。例如,大多数组织部署一个物理服务器作为控制器节点,部署另一个物理服务器作为计算节点。许多组织还选择将其存储环境分离到一个专用的物理服务器上,对于 OpenStack 部署而言,这意味着对 Swift 存储环境使用单独的服务器。

大数据简介

Oracle 将 大数据 定义为三个数据源的数据汇集:传统数据(结构化数据)、感知数据(日志数据和元数据)和社交(社交媒体)数据。大数据通常采用新的技术模式进行存储,比如非关系分布式数据库 NoSQL。共有四种非关系数据库管理此系统 (NRDBMS):基于列、关键值、图和基于文档。这些 NRDBMS 将源数据聚集在一起,同时用 MapReduce 之类的分析程序对汇总的信息进行分析。

传统的大数据环境包括一个分析程序、一个数据存储、一个可扩展文件系统、一个工作流管理器、一个分布式排序和散列解决方案以及一个数据流编程框架。常用于商业应用程序的数据流编程框架是 Structured Query Language (SQL),对于开源应用程序,通常会使用 SQL 的替代方案,如 Apache Pig for Hadoop。在商用方面,Cloudera 提供了最稳定、最全面的解决方案之一,而 Apache Hadoop 是最流行的开源 Hadoop 版本。

Apache Hadoop 的应用比较常见,因为您可以使用多种组件,包括 Hadoop Distributed File System(即 HDFS,是一种可扩展的文件系统),HBase(数据库/数据存储)、Pig、Hadoop(分析方法)和 MapReduce(分布式排序和散列)。如图 2 所示,Hadoop 任务被分解为几个节点,而 MapReduce 任务则被分解为跟踪器 (tracker)。

图 2. HDFS/MapReduce 层的组成部分 

图 3 显示了 MapReduce 如何执行任务,它将获取输入并执行一系列分组、排序和合并操作,然后呈现经过排序和散列的输出。

图 3. 高级 MapReduce 图

图 4 演示了一个更复杂的 MapReduce 任务及其组成部分。

图 4. MapReduce 数据流图解

尽管 Hadoop MapReduce 要比传统的分析环境(如 IBM Cognos 和 Satori proCube 在线分析处理)更复杂一些,但它的部署仍然具有可扩展能力和高成本效益。

大数据技术和私有云环境都很有用;不过,如果将两者结合在一起,企业会获得巨大的利润。尽管结合两者会让环境变得更复杂,企业仍然可以看到将 OpenStack 私有云和 Apache Hadoop 环境结合在一起产生的显著的协同效应。下一小节将介绍企业如何将私有云和大数据技术结合在一起。

Swift、Apache Hadoop 和 MapReduce

在私有云环境中,常见的大数据部署模型之一是:将 OpenStack 的 Swift 存储技术部署到 Apache Hadoop MapReduce 集群,从而实现处理功能。使用这种架构的优势是,企业将获得一个可扩展的存储节点,可以用该节点来处理其不断累积的数据。根据 IDC 的调查,数据年增长率已经达到 60%,该解决方案将满足不断增长的数据需求,同时允许组织同时启动一个试点项目来部署私有云。

该部署模型的最佳使用场景是企业希望通过存储池尝试使用私有云技术,同时在内部使用大数据技术。最佳实践表明您应当先将大数据技术部署到您的生产数据仓库环境中,然后构建并配置您的私有云存储解决方案。如果将 Apache Hadoop MapReduce 技术成功融合到数据仓库环境中,并且已经正确构建并运行您的私有云存储池,那么您就可以将私有云存储数据与预调度的 Hadoop MapReduce 环境集成在一起。

Swift 和 Cloudera 的 Apache Hadoop 发行版

对于那些不愿意从头开始使用大数据的企业,可以使用 Cloudera 等解决方案供应商提供的大数据设备。Cloudera 的发行版包括 Apache Hadoop (CDH) 解决方案,它允许企业不必针对 Hadoop 的每个细微差别来招募或培训员工,因此可以在大数据方面实现更高的投资回报 (ROI)。对于那些不具备大数据或私有云技能集,希望以缓慢、渐进的方式将该技术集成到其产品组合的企业,这一点尤其吸引人。

大数据和云计算属于相对较新的技术,许多企业希望通过它们实现成本节省;不过,许多企业对于是否完全采用这些技术犹豫不决。通过利用供应商支持的大数据软件版本,企业在这方面将会更加从容,同时还可以了解如何使用这些技术来发挥自身的优势。此外,如果使用大数据软件分析大型数据集,而且可以通过私有云存储节点来管理这些数据集,那么这些企业还可以实现更高的利用率。为了最好地将这一策略集成到企业中,首先需要安装、配置和管理 CDH,以便分析企业的数据仓库环境,然后将 Swift 中存储的数据添加到需要的地方。

Swift、Nova 和 Apache Hadoop MapReduce

对于希望在大数据环境中实现更高程度的灵活性、可扩展性和自治性的企业,可以利用 Apache 和 OpenStack 提供的开源产品的与生俱来的能力。为此,企业需要最大限度地利用这两种技术栈,这就要求采用与前面所述的解决方案不同的思维方式来设计环境。

要获得完全可伸缩的、灵活的大数据环境,必须在一个同时提供存储和计算节点的私有云环境中运行它。为此,企业必须先构建私有云,然后添加大数据。因此,在这种情况下,必然会用到 Swift、Nova 和 RabbitMQ,并控制器节点来管理和维护环境。但是,问题在于企业是否需要针对不同的系统和业务部门将环境分为若干个部分(例如,非大数据虚拟机或客户机实例)。如果企业准备完全使用私有云,那么应当添加 Quantum,从网络的角度对不同的环境进行划分(参见图 5)。

图 5. OpenStack 架构

在设置并测试了私有云环境后,可以将 Apache Hadoop 组件合并到其中。此时,Nova 实例可用于存放 NoSQL 或 SQL 数据存储(没错,它们可以共存)以及 Pig 和 MapReduce 实例;Hadoop 可以位于一个独立的非 Nova 机器上,以便提供处理功能。在不久的将来,Hadoop 有望在 Nova 实例上运行,使私有云自包含到所有 Nova 实例中。

GFS、Nova、Pig 和 MapReduce

从架构的角度看,除了使用 OpenStack 的 Swift 实现可扩展存储外,可能还有其他选择。本例使用了 Google File System (GFS)、Nova 组件和 Apache Hadoop 组件,具体来讲,使用了 Pig 和 MapReduce。该示例允许企业集中精力开发一个仅用于计算处理的私有云计算节点,同时利用 Google 的公共存储云作为数据存储。通过使用这种混合云,企业可以专注于计算处理功能的核心能力,由第三方负责实现存储。该模型可以利用其他供应商的存储解决方案,如 Amazon Simple Storage Service;但是,在使用任何外部存储之前,企业应当在内部使用可扩展的文件系统 (XFS) 来构建该解决方案,并进行相应的测试,然后再将其扩展到公共云中。此外,根据数据的敏感性,企业可能需要使用数据保护机制,比如模糊处理 (obfuscation)、解除匿名化、加密或散列。

在将云计算和大数据技术并入企业环境时,一定要为这两个技术平台构建员工的技能集。当您的员工理解这些技术后,就可以组建一个实验室来测试这两个平台合并后的效果。由于包含许多不同的组件,因此在实现过程中,请务必遵循前面提到的经过验证的路径。此外,企业在尝试合并这两种模式时可能会遇到一些挫折,应当在进行若干次尝试后改用其他方法。这些方法包括设备和混合云。

由于这些都是比较新的技术,所以大多数企业需要利用现有资源进行测试,之后再进行大量的资本支出 (CapEx)。然而,如果没有对这些技术在企业中的应用进行合理的预算和人员培训,那么试点和测试工作将会以失败告终。同样,如果缺少完整的私有云部署,企业应当首先在其中实现大数据技术,然后再实现私有云。

最后,企业需要为私有云和大数据计划制定一个战略路线图。要获得成功的部署,则需要进行更多的分析 “工作”,这有可能会拖延处理过程。为了消除这种风险,应当采用一种迭代式的项目管理方法,以分阶段的方式部署到业务部门中,通过这种方法将这些技术部署到企业中。

云计算和大数据正步入我们的生活,因此我们的企业需要确定这些技术如何使公司受益,比如 CapEx 方面的成本节省或增强的处理功能。您的企业应当分别对这些系统进行测试,然后以迭代的方式将它们整合到企业中。这样,企业就可以实现出色的投资回报,为未来发展做好准备。


推荐阅读
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • 流处理中的计数挑战与解决方案
    本文探讨了在流处理中进行计数的各种技术和挑战,并基于作者在2016年圣何塞举行的Hadoop World大会上的演讲进行了深入分析。文章不仅介绍了传统批处理和Lambda架构的局限性,还详细探讨了流处理架构的优势及其在现代大数据应用中的重要作用。 ... [详细]
  • Redis:缓存与内存数据库详解
    本文介绍了数据库的基本分类,重点探讨了关系型与非关系型数据库的区别,并详细解析了Redis作为非关系型数据库的特点、工作模式、优点及持久化机制。 ... [详细]
  • MongoDB核心概念详解
    本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • 本文详细介绍了 `org.apache.hadoop.hdfs.server.namenode.FSNamesystem.shouldUseDelegationTokens()` 方法的用途和实际应用场景,并提供了多个代码示例以帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文介绍了 PHP 的基本概念、服务器与客户端的工作原理,以及 PHP 如何与数据库交互。同时,还涵盖了常见的数据库操作和安全性问题。 ... [详细]
  • 本文介绍了Hadoop的核心组件,包括高可靠性和高吞吐量的分布式文件系统HDFS、分布式的离线并行计算框架MapReduce、作业调度与集群资源管理框架YARN以及支持其他模块的工具模块Common。 ... [详细]
  • 本文详细介绍了 Spark 中的弹性分布式数据集(RDD)及其常见的操作方法,包括 union、intersection、cartesian、subtract、join、cogroup 等转换操作,以及 count、collect、reduce、take、foreach、first、saveAsTextFile 等行动操作。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • Oracle字符集详解:图表解析与中文乱码解决方案
    本文详细解析了 Oracle 数据库中的字符集机制,通过图表展示了不同字符集之间的转换过程,并针对中文乱码问题提供了有效的解决方案。文章深入探讨了字符集配置、数据迁移和兼容性问题,为数据库管理员和开发人员提供了实用的参考和指导。 ... [详细]
  • 开发心得:利用 Redis 构建分布式系统的轻量级协调机制
    开发心得:利用 Redis 构建分布式系统的轻量级协调机制 ... [详细]
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
author-avatar
ya的sky
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有