e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 数据库 >> DB2教程 >> 在 Linux 上模拟大规模并行数据库处理! >> 教程正文
 
教程搜索
 
 
相关教程
  • 数据挖掘器: 警告 — 及时采取行动
  • UNIX、Linux 和 Windows 的生动简介
  • “总览图”: IBM DB2 通用数据库和信息
  • DB2 大事记
  • 数据管理部门副总裁兼 CTO:Don Hader
  • IBM 联邦数据库技术
  • 唐纳德.海德勒(Donald J. Haderle)
  • 数据库未来展望
  • 哪一个分布式 DB2 UDB V8 版本适合您?
  • 从数据管理到信息集成: 自然的演变
  • 联邦 - 数据库互操作性(第 1 部分)
  • 成功是必然的(中)
  • 成功是必然的(上)
  • 成功是必然的(下)
  • DB2 信息集成: 总览图
  • IBM 杰出工程师兼信息集成主管 Nelson
 
 

图文教程


  • Windows抢了谁的饭碗 非主流操作系统To

  • 地球还是火星 平常心看“非主流”

  • 综合运用Office 2007批量制作奖状

  • 没有系统盘如何才能修复受损系统?

  • 巧妙运用Excel中边界的附加功能!
 
 
赞 助 商
 
 
在 Linux 上模拟大规模并行数据库处理!
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9

Martin P. Lurie

IBM

2003 年 7 月

不管您会怎么想,MPP 不一定代表“大规模的采购价格”。您可以通过在单个便携式电脑上使用 DB2 for Linux 来探究大规模并行处理(MPP)数据库技术。本文描述了如何设置模拟的 MPP 环境以及如何创建分区表。

请阅读本文,或者直接跳到下面的 安装指示信息。

什么是 MPP,我应该怎么用 Linux 计算机来构成 MPP?

大规模并行处理(massively parallel processing,MPP)是使许多廉价计算机在一起工作以解决大问题的关键。某些类别的问题是很难分成小块然后转交给机器群集来处理的,幸运的是,关系数据库适用于并行化。

分区和群集是数据库可伸缩性的关键。现在,您可以先从低成本技术来着手实现,这反驳了 “MPP 等于大规模的采购价格(massive purchase price)”的观点。本文将向您演示如何在您的便携式电脑上使 DB2® Extended Enterprise Edition(EEE)V7.2 在 Linux 上运行起来。然后,我们将探究如何在单个计算机上设置两个数据库分区(称为多个逻辑节点)以及如何在这些节点之间创建分区表。

虽然本文使用的环境是 DB2 EEE V7.2,但是对于使用 DB2 V8 企业版的用户也有借鉴作用,基本过程没有太大差别。

以上就是花费数百万美元构成的计算机群集处理 DB2 EEE 中数据的方式。但是,单个 CPU 机器也可以运行多个节点,并模拟构成计算机群集。

并行群集多重处理是计算领域一项非常激动人心的领域,现在学习分区和群集知识是为将来使用做好准备的主要方法。

并行数据库的历史和技术

MPP 数据库技术的完全简史

并行数据库的最初成功设计之一要回溯到 1986 年,请参阅[ Dewitt 1986]。经历了一段时间之后,直到二十世纪九十年代中期这些数据库才成为商业实体 — UNIX® 平台上的产品。MPP 数据库与 Linux 的结合在 2001 年首次战胜了商业数据仓库基准程序。基于低成本 Intel 的硬件、IBM 的 DB2 EEE 和 Linux 的结合被用于完成 TPC-H 数据仓库基准程序。

并行数据库是如何工作的?

使多台计算机同时处理同一问题的方法主要有两种。

  • 无共享并行体系结构
  • 分布式锁(共享磁盘)并行体系结构

无共享并行体系结构

“无共享(shared nothing)”体系结构意味着每台计算机都有它自己的 CPU、内存和磁盘。计算机通过高速互连被连接在一起,如 图 1 所示。当处理查询时,每个节点处理其本地表中的行,然后将节点的部分结果回传给协调程序节点。协调程序将来自所有节点的所有结果合并成最终结果集。节点不一定是独立的计算机 — 在单个计算机上可以存在多个分区。


图 1. 无共享体系结构

高速互连对于任何计算机群集(不管是不是数据库的)性能都至关重要。请参阅有关该主题的 我的前一篇 DB2 开发者园地文章,以了解当从 100 兆位交换器更改为 10 兆位集线器时对群集关系数据库产生的性能影响。目前的互连技术 Infiniband 要比 100 兆位快得多,它所提供的性能在 500 MB/秒到 6 GB/秒之间,这样的带宽绰绰有余。

分布式锁(共享磁盘)并行体系结构

共享磁盘体系结构( 图 2)使用锁管理器在计算机之间作出仲裁,这些计算机都访问一个公共磁盘池。这种体系结构在原理上是有缺陷的,因为当节点数增加时,群集会沉溺于锁请求中。速度较快的硬件隐藏了大量的错误,但即使在每个节点上使用锁高速缓存,该方法也不能违背物理规律,并且如果没有特定硬件来完成在 DB2 for z/OS™ 上使用 Parallel Sysplex® 技术实现的作业,它将无法伸缩。

图 2:运用锁管理器的共享磁盘方法无法伸缩

该环境中的数据库访问要求每个节点都在共享磁盘上请求一块数据。如果另一个节点已经锁定该数据准备更新,那么正在请求的节点必须等待正在更新的节点完成。这种环境容易发生“死锁”的锁情况。节点 1 锁定资源 A 并请求资源 B。节点 2 锁定资源 B 并请求对资源 A 的锁定。这两个节点都不释放它们的锁,所以它们一直等待下去。

无共享环境中的数据分区

您已经知道群集中的每个节点都处理它的本地数据,然后将其结果回传给查询协调程序节点。但是,每个节点如何分配到关系表中的数据子集呢?这就是 散列分区在 MPP 群集中所做的事情。

要在多个节点之间分布表,选择分区键。如果存在主键,那么这是分区键的一个非常好的选项。基数非常低的列(例如,只有两个值“M”和“F”的性别)是糟糕的分区键。

在 CREATE TABLE 语句中指定表分区。下面是一个示例:

CREATE TABLE marty (

foo INTEGER

)

PARTITIONING KEY(foo) USING HASHING;

根据对名为 foo 的列计算散列值,“marty”表将被散布于 MPP 群集(或虚拟群集)中的所有节点中。计算散列值时,数据库计算哪个节点(在虚拟群集中是分区)拥有该特定散列值的行并将这些行存储在适当的计算机上。您或许已经确定了散列算法必须非常快。


基数低的列对于分区表是一个糟糕选项,因为它产生极少的唯一值。如果 MPP 群集中有 10 个节点,而分区列中仅有 5 个唯一值,那么只有 5 个节点将有数据,可能会更少!但是,不必担心,可以将多个列用于分区键。

让我们试一下!逐步安装指南

让我们尝试在单个计算机上使用 DB2 EEE(一种无共享关系数据库)来模拟无共享方法。单处理器的计算机能够提供一种完全模拟无共享群集的测试环境。

下面的每个安装步骤都以描述性信息的链接开始,这些信息可在后面的逐步注释一节中找到。(逐步注释开始处的相应链接可让您返回到安装步骤。)如果您遇到问题,请参阅 故障排除。安装完 DB2 之后,可以在数据库服务器中的两个分区(模拟节点)之间进行数据分区。如果您想要快速且方便地开始,可以使用 模式与程序来填充表。

  1. 在 Intel 体系结构机器上安装 Linux。它可以是便携式电脑或任何其它 PC。本文的测试在 SuSE 7.2 和 Red Hat 7.0、7.1 以及 7.2 上运行。

  2. 更改 inetd/xinetd 以接受 rsh。

    • 在 SuSE 上,编辑 /etc/inetd.conf,取消 rsh 行的注释。确保在更改配置文件之后重新启动 inetd。

    • 在 Red Hat 上,编辑文件 /etc/xinetd.d/rsh,将“disable = yes”更改成“disable = no”。

    作为 root 用户,使用下列命令序列来重新启动 xinetd(确切的文件名可能会有所不同):

    # /etc/rc.d/rc3.d/S56xinetd stop

    # /etc/rc.d/rc3.d/S56xinetd start

  3. 如下更改 SuSE 7.2 或 Red Hat 7.1 和 7.2 的内核参数: sysctl -w kernel.shmmax=10737418>24

    sysctl -w kernel.msgmni=1024

    sysctl -w fs.file-max=8192

    sysctl -w kernel.sem=?50 32000 32 1024?

  4. 安装公共域 ksh(pdksh): rpm -i pdksh-5.1.14-8.i386.rpm

    您的 pdksh 发行版可能会不同。

  5. 安装 DB2 EEE V7.2。您可以从 www.ibm.com/software/data/db2/udb/downloads.html#eeelinux 下载 DB2 EEE for Linux 的试用版。

    • 以 root 用户身份登录,使用下列命令安装 DB2 EEE V7.2 产品: ./db2setup
    • 选择选项以创建样本数据库和管理服务器。使用用户标识的缺省值,

      1 2 3 4 下一页
  • 上一篇教程: DB2 UDB V8 中设置用户出口来归档数据库日志
  • 下一篇教程: 创建高可用性的 DB2 服务(一)
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.