InfoSphere BigInsights:大数据静态分析外文翻译资料
2021-12-12 22:08:16
英语原文共 166 页
InfoSphere BigInsights:大数据静态分析
Hadoop为企业提供了巨大的潜力,使企业能够利用迄今为止难以管理和分析的数据。具体来说,Hadoop使处理具有不同结构(或者根本没有结构)的海量数据成为可能。也就是说,尽管Hadoop有了所有的承诺,但它仍然是一项相对年轻的技术。ApacheHadoop顶级项目始于2006年,尽管采用率在不断提高——随着开源代码贡献者的数量增加,Hadoop仍然存在一些已知的缺点(公平地说,它甚至还没有达到1.0版)。从企业的角度来看,这些缺点可以阻止公司在生产环境中使用Hadoop,也可以阻碍其采用,因为在生产环境中总是期望某些操作质量,例如性能、管理能力和健壮性。例如,正如我们在第4章中讨论的那样,Hadoop分布式文件系统(HDFS)有一个集中的元数据存储区(称为namenode),它表示一个没有可用性的单点故障(spof)(0.21版中添加了一个冷备份)。当namenode恢复后,需要很长时间才能使hadoop集群再次运行,因为它跟踪的元数据必须加载到namenode的内存结构中,所有这些都需要重建和重新填充。此外,Hadoop的安装、配置和管理可能很复杂,而且还没有大量拥有Hadoop技能的人。同样,拥有MapReduce技能的开发人员也有限。在Hadoop中编程传统的分析算法(如统计或文本分析)是困难的,它需要分析员成为熟练的Java程序员,有能力将MapReduce技术应用到他们的分析算法中。(更高级的语言,如pig和jaql,使mapreduce编程更容易,但仍有学习曲线。)还有更多的,但您可以理解的是:Hadoop不仅需要一些企业强化,还需要一些工具和功能,帮助解决Hadoop平台提供的各种可能性(例如,可视化、文本和分析和图形管理工具)。
IBM InfoSphere BigInsights(BigInsights)通过IBM关注两个主要产品目标来解决所有这些问题,以及更多问题:
- 提供一个为企业使用而强化的Hadoop平台,并深入考虑高可用性、可扩展性、性能、易用性以及您将在企业中部署的任何解决方案所期望的其他方面。
- 通过为开发人员提供开发和运行时环境来构建高级分析应用程序,并为业务用户提供分析大数据的工具,使与大数据分析相关的时间价值曲线变得平坦。
在本章中,我们将讨论IBM如何准备Hadoop以供企业使用。正如您可以想象的那样,IBM有着理解企业需求的悠久历史。通过采用Hadoop(及其开放源代码生态系统)等新技术,并利用IBM在其存在的世纪中积累的丰富经验和智力资本对其进行扩展,您将获得一个成功的组合,使您能够使用一个您可以信任的平台来探索Hadoop,该平台也可以更快地产生结果。
易用性: 一个简单的安装过程
BigInsights安装程序的设计考虑到了简单性。IBM的开发团队问他们自己,“如果没有使开源软件正常运行所需的努力和技术技能,IBM如何才能缩短Hadoop曲线的时间?”“他们以BigInsights安装程序回答了这个问题。
BigInsights安装程序的主要目标是使您远离复杂性。因此,您不必担心软件的先决条件或确定要下载的ApacheHadoop组件、这些组件之间的配置以及Hadoop集群的整体设置。BigInsights安装程序为您完成所有这些工作,您只需单击一个按钮。Hadoop启动的复杂性几乎被BigInsights消除了。很简单,您的体验将非常类似于安装任何商业软件。
为了准备写书,我们创建了三个不同的Hadoop集群:
- 一个从头开始,只使用开源软件,我们称之为Roll Your Own(Ryo)Hadoop方法
- 一个来自竞争对手,他们只提供了一个安装程序,一些操作工具和一个 Hadoop 支持合同
- 一个具有重要见解的
“Roll Your Own”Hadoop方法让我们直接访问Apache网站并下载Hadoop项目,最终涉及到大量工作。具体来说,我们必须做到以下几点:
1、选择要下载的 Hadoop 组件以及这些组件的哪个版本。我们发现了许多组件,而且对于我们来说,为了开始实施,我们需要哪些组件并不立即明显,因此需要进行一些初步研究。
- 创建并设置 Hadoop 用户帐户。
- 下载我们决定需要的每个 Hadoop 组件,并将它们安装在我们的机器集群上。
- 为 Hadoop 用户帐户配置安全 Shell (SSH),并将密钥复制到集群中的每个计算机。
- 配置 Hadoop 以定义我们希望它运行的方式; 例如,我们指定了输入/输出设置、 jobtrace 和任务跟踪器级别的详细信息。
- 配置 HDFS-特别是,我们设置和格式化 NameNode 和辅助 NameNode。
- 定义所有全局变量(例如,hadoop_classpath、hadoop_pid_dir、hadoop_heapsize、java_home)。
正如您可以想象的那样,从开源码组件启动和运行Hadoop集群是复杂的,而且有点费力。我们挺过去了,但还是付出了一些努力。然后,我们又有一批经验丰富的Hadoop开发人员准备回答问题。如果您选择的是Ryo路线,那么您需要对整个Hadoop生态系统有一个很好的了解,以及基本的Hadoop管理和配置技能。在开始考虑运行简单的MapReduce作业之前,您需要完成所有这些工作,更不用说运行任何有意义的分析应用程序了。
接下来,我们尝试安装竞争对手的Hadoop发行版(注意它是一个发行版,而不是像BigInsights这样的平台)。这个竞争对手的安装确实代表了对开源方法的改进,因为它有一个漂亮的图形安装程序。但是,它不安装和配置其他Hadoop生态系统组件,如Pig、Hive和Flume等,您需要手动安装这些组件。
这两种体验与BigInsights方法形成了鲜明对比,即只使用一个安装程序简单地布局和配置整个必需组件集。使用BigInsights,安装只需要点击几下按钮,就不必担心与Hadoop相关的所有组件和版本。只需要很少的配置,不需要下载额外的先决条件。此外,您可以使用IBM的安装程序以图形方式构建响应文件,随后您可以使用该文件自动在集群中的所有节点上部署BigInsights。
BigInsights 1.2中包含的Hadoop组件
BigInsights以ApacheHadoop及其相关的开源项目为核心组件。IBM仍然致力于开源项目的完整性,不会分叉或以其他方式偏离它们的代码。下表列出了BigInsights 1.2中包含的开放源代码项目(及其版本),这是编写时可用的最新版本:
组件 |
版本 |
Hadoop (common utilities, HDFS, and the MapReduce framework) |
0.20.2 |
Jaql (programming and query language) |
0.5.2 |
Pig (programming and query language) |
0.7 |
Flume (data collection and aggregation) |
0.9.1 |
Hive (data summarization and querying) |
0.5 |
Lucene (text search) |
3.1.0 |
ZooKeeper (process coordination) |
3.2.2 |
Avro (data serialization) |
1.5.1 |
HBase (real-time read and write database) |
0.20.6 |
Oozie (workflow and job orchestration) |
2.2.2 |
随着每次BigInsights的发布,对开源组件和IBM组件的更新都会经历一系列的测试周期,以确保它们能够协同工作。这是我们要澄清的另一个非常特别的点:您不能将新代码直接放到生产中。在我们使用开源项目的经验中,总是存在一些向后兼容性问题。BigInsights消除了Hadoop组件的所有风险和猜测。它经历了与其他IBM软件相同的严格回归和质量保证测试过程。所以问问你自己:你宁愿做你自己的系统集成商,反复测试所有的Hadoop组件以确保兼容性吗?或者您愿意让IBM找到一个可以部署并确保可靠工作环境的稳定堆栈?
最后,BigInsights安装程序还设置了其他基础设施,包括为Hadoop提供企业稳定性和质量的分析工具和组件,这使得BigInsights成为一个平台而不是发行版。我们将在本章的其余部分讨论这些问题。
Hadoop-Ready企业质量文件系统:gpfs-snc
通用并行文件系统(GPF)由IBM Research在20世纪90年代为高性能计算(HPC)应用程序开发。自1998年首次发布以来,gpfs已经在世界上许多最快的超级计算机中使用,包括BlueGene,Watson(危险!超级计算机),和ASC紫色。(在ASC紫色超级计算机中安装的gpfs以每秒120 GB的惊人速度支持数据吞吐量!)除了HPC之外,全球数千个其他关键任务安装中也普遍存在GPF。gpfs也是DB2 pureScale的一部分,甚至可以发现它支持许多Oracle RAC安装;您还可以发现gpfs支持高度可扩展的Web和文件服务器、其他数据库、金融和工程部门的应用程序等。不用说,gpfs以其极高的可扩展性、高性能和可靠性赢得了企业级的声誉和血统。
如今,一些企业普遍采用Hadoop的一个障碍是HDF。这是一个相对较新的文件系统,有一些面向设计的限制。指导HDF开发的原则是由用例定义的,这些用例假设Hadoop工作负载将涉及对非常大的文件集的顺序读取(对集群中已经存在的文件没有随机写入,只需追加写入)。相比之下,gpfs设计用于各种工作负载和多种用途,我们将在本节中讨论这一点。
为Hadoop扩展gpfs:gpfs不共享任何集群
GPFS最初仅作为存储区域网络(SAN)文件系统提供,这不适合Hadoop群集,因为这些群集使用本地连接的磁盘。SAN技术不适合Hadoop的原因是,当数据存储在处理数据的节点上(这需要对数据进行位置感知)时,MapReduce作业的性能更好。在SAN中,数据的位置是透明的,这会导致高级别的网络带宽和磁盘I/O,特别是在具有许多节点的集群中。
2009年,IBM将gpfs扩展到与hadoop一起使用gpfs-snc(不共享集群)。以下是IBM对gpfs所做的关键添加,使其成为Hadoop的合适文件系统,从而增强了企业的Hadoop:
- 位置感知 Hadoop的一个关键特性是它努力在存储数据的节点处处理数据。这样可以最大限度地减少网络流量并提高性能。为了支持这一点,gpfs-snc为集群中存储的所有文件提供位置信息。Hadoop JobTracker使用此位置信息来选择需要运行的任务的本地副本,这有助于提高性能。
- Meta-blocks meta块典型的gpfs块大小为256kb,而在Hadoop集群中,块大小要大得多。例如,BigInsights的建议块大小为128 MB。在gpfs-snc中,许多标准gpfs块的集合被放在一起以创建元块的概念。单个映射任务针对元块执行,而Hadoop外部的文件操作仍将使用正常较小的块大小,这对其他类型的应用程序更有效。这种灵活性使各种应用程序能够在同一集群上工作,同时保持最佳性能。HDFS不共享这些好处,因为它的存储仅限于Hadoop和Hadoop。例如,不能在HDF上承载Lucene文本索引。然而,在gpfs-snc中,您可以将Lucene文本索引存储在集群中的文本数据旁边(此共同位置具有性能优势)。尽管Lucene使用256kb大小的gpfs块进行操作,但任何Hadoop数据都存储在集群中并以元块形式读取。
-
写关联性和可配置复制 gpfs-snc允许您为文件定义一个放置策略,包括在文件复制期间采取的方法。正常的复制策略是,第一个副本是本地的,第二个副本是机架的本地副本(与HDF不同),第三个副本是跨集群中的其他机架进行条带化的。gpfs-snc允许您自定义此复制策略。例如,您可能决定始终将一组特定的文件存储在一起,以允许应用程序从同一位置访问数据。这是您在HDFS中无法做到的,这可能会导致特定工作负载(如大型顺序读取)的性能更高。第二个副本的策略也可以是将相同的数据保持在一起。如果主节点出现故障,则很容易切换到另一个节点,而不会看到应用程序性能的任何下降。数据的第三个副本通常是分条存储的,以防必须重新构建前两个副本中的一个。当文件被条带化时,恢复文件要快得多。在
资料编号:[5567]