Electronic Joint Business

Solution for E-Business

行业方案

SAN 还是 NAS?关键性的选择

对于首席信息官和 IT 决策者来说,选择部署使用存储区域网络(SAN — storage area network)还是网络附加存储(NAS — network attached storage )将是一个重大决定(ranks right up)。 SAN?NAS? 或这两种技术的结合?这种选择对存储环境的结构的作用是决定性的起了。今天的决定将影响未来企业的数据该如何存储,商业用户该如何访问数据、持续管理成本的多寡和构成、以及整个组织内数据的生命周期。

仔细考察企业整体业务流程,并思考如何将数据管理的策略融入这些过程中。 在 SAN 与 NAS 之间做出选择是能够支持企业级有的战略和长期业务目标的最好支撑。你必须确保你所做的选择及其部署方式能够完全支持这一战略。为了选择最适合企业商业目标和商业流程的技术,我们必须了解这两种技术的异同点、存储类型以及最适合的存取方式。

简单地说, SAN 是多台设备构成的网络,适合块级存储。而 NAS 是单一的存储单元,适合文件级别的存储。二者的主要特点如下:

SAN 存储区域网络:

  • 多个磁盘阵列的专用网络
  • 存储一致性的(Consolidated) 连续的块级数据
  • 服务器可以访问存储在网络设备上的数据
  • 可以按特定的应用或者用户控制存取

网络附加存储 (NAS):

>>> 阅读全文

 

, , ,

Hadoop 技术手册(二) 用 Map/Reduce 进行大数据分析

当今社会是数据的时代。2001 年,Google 发布图像搜索功能时,只有 2.5 亿个图像被索引, 10 年间,这个搜索功能已经可以检索超过 100 亿个图像。现在每分钟有 35 小时时长的视频被上传到 YouTube。而 Twitter 平均每天要处理 5500 万 tweet。数据的增加,很快就超过单一计算机的处理能力。基于集群的分布式并行编程能够让软件与数据同时运行在一个网络内彼此相连的许多计算机上。这样的分布式并行环境的最大优点是可以很容易的通过增加计算机来扩充新的计算结点,并由此获得不可思议的海量计算能力, 同时又具有相当强的容错能力,某一计算节点失效也不会影响计算的正常进行以及结果的正确性。

Google 使用了运行在 GFS ( Google File System ) 分布式文件系统上的, 名为 MapReduce 的编程模型进行分布式并行编程,为全球亿万用户提供搜索服务。而 Hadoop 项目正是受到了 MapReduce 和 Google File System(GFS) 的启发,2005 年秋天, Hadoop 被作为 Lucene 的子项目 Nutch 的一部分正式引入。 在 2006 年 3 月份,Map/Reduce 和 Nutch Distributed File System (NDFS) 正式被纳入 Hadoop 的项目中。

Hadoop 实现了 Google 的 MapReduce 编程模型,提供了简单易用的编程接口,它也提供了自己的分布式文件系统 HDFS,与 Google 不同的是,Hadoop 是开源的,任何人都可以使用这个框架来进行并行编程。如果说分布式并行编程的难度足以让普通程序员望而生畏的话,开源的 Hadoop 的出现极大的降低了它的门槛,读完本文,你会发现基于 Hadoop 编程非常简单,利用该框架能够轻松编写出可以处理海量数据(TB级的数据集)的应用程序,并能稳定地,可容错地运行在由上千个节点组成的硬件集群上,然后在短时间内完成海量数据的计算。

概念
一个 MapReduce 作业(job) 通常会将输入的数据集分割成独立的数据块 (chunk),然后交由 map 任务以完全并行的方式进行处理。框架负责对 map 的输出进行排序,并作为 reduce 任务的输入。作业的输入和输出一般都保存在文件系统中。该框架还负责任务的调度与监测,并重新执行失败的任务。

通常来说,Hadoop 的计算节点和存储节点是同一节点,也就是说 MapReduce 框架和 Hadoop 分布式文件系统 (HDFS) 在相同的节点上运行。这种配置让框架可以有效地将任务调度给存有数据的节点,从而使得整个群集获得了非常高的总带宽。

>>> 阅读全文

 

, , , ,

HadoopDB 入门 (二) 配置MySQL

文章评价:
在上一篇文章中,我们介绍了如何对 HadoopDB 和 PostgreSQL 进行配置,以便它们能在一起工作。在本文中,我们将介绍如何在 HadoopDB 中配置另一种普遍使用的数据库来。在文章的前一部分,我还会涉及如何在 Ubuntu 中安装并运行起 HadoopDB,已经熟悉的朋友可以直接跳过这一部分。这里我使用的是 64 位的 Ubuntu Server 10.04,并且广泛地使用 Ubuntu 的包管理器,本文介绍的安装方式,对于其他的 Linux 系统比如 CentOS 也应该是适用的。

本文介绍的是如何配置一个单节点系统,如果您需要一个多节点系统,可以参考上一篇文章中的介绍,你将会发现对 HadoopDB 进行扩展是多么的简单。

安装 Hadoop
安装 Hadoop 之前,首先需要安装 Java。你可以从 Oracle 的站点下载 Sun JDK,或者使用 OpenJDK 也没有任何问题,在 Ubuntu 上,运行下面命令就可以安装 OpenJDK:

sudo apt-get install openjdk-6-jdk

Michael Noll 写过一篇文章深入讨论了如何在 Ubuntu 上安装 Hadoop,我强烈建议您在开始之前读一下这篇文章,本文很多内容都是借鉴该文章的。

首先我们先创建需要运行 Hadoop 帐号和组:

>>> 阅读全文

 

, , , , , ,

HadoopDB 快速上手指南

HadoopDB 是由美国耶鲁大学计算机科学教授 Daniel J. Abadi 及其团队推出开源并行数据库。该数据库集合关系型数据库的数据处理能力与 Hadoop、MapReduce 等技术于一身,采用了许多不同的开源组件,包括开源数据库、PostgreSQL、Apache Hadoop 技术和 Hive 等等。

HadoopDB 的查询是利用 MapReduce 或常规的 SQL 语言完成的。MapReduce 适用于大规模数据集(大于1TB)的并行计算。另一方面,HadoopDB 的数据处理部分是利用Hadoop 完成的。Abadi表示,其中部分是利用了分布在无分享计算机群集中的许多节点上的不同 PostgreSQL 实例完成的。实质上,HadoopDB是MapReduce和并行数据库管理系统技术的混血儿。不过和 Aster Data、Greenplum或Hive等已经开发出的项目和厂商不同,HadoopDB不是简单地在语言/接口层面上的混合,它是更深的系统实现层面上的集成。

因为集两种技术的精华于一身,HadoopDB 可以取得 MapReduce 等大规模并行数据基础设施的容错性。在这些基础设施中,服务器故障对整个网络的影响非常小。HadoopDB可以执行复杂的分析,速度几乎与已有的商用并行数据库一样快。

本文的目的是为运行HadoopDB给出一些指导。整个 HadoopDB 的设计概述可以在VLDB 论文的第五节找到。在该论文中,你还可以找到我们测试 Hadoop (带 HDFS)、HadoopDB 和商用并行数据库的测试结果比较。

HadoopDB 的基本原理是利用 Hadoop 来存取部署在集群上多个单一节点上的 DBMS 服务器(比如:PostgreSQL 或 MySQL)。通过发起 SQL 查询,HadoopDB 将尽可能多的数据处理推给数据库引擎来进行(通常情况下,大部分的映射/组合 – Map/Combine 阶段的逻辑可以用 SQL 来表达)。这样就创建了一个类似于无共享并行数据库的系统。应用从数据库世界得到的技术大大提升了性能,特别是在更复杂的数据分析上。同时,HadoopDB 依赖于 MapReduce 框架的事情确保了系统在高可扩展性和容错、异构性(heterogeneity)方面的效果与 Hadoop 类似。详细内容请再次参考 VLDB 论文。

>>> 阅读全文

 

, , , , , , ,

Hadoop 技术手册(一) Hadoop 生态系统

文章评价:
现在是数据的年代。近 10 年来,随着 Web 不断发展状态,数据的大小也在飞速增长,而且丝毫没有慢下来的迹象。统计数据表明,每过去的一年中所生成的数据要大大超过历年的数据的总和。摩尔定律不单对计算机硬件生效,现在对于不断生成的数据也同样有效。面对如此海量的数据,业界用了一个简单明了的词来称呼它: Big Data。

和用行和列来存储结构化信息的方式不同, Big Data 面对的是复杂的,非结构化的存储格式,包括网站、社会性媒体、电子邮件 甚至是视频、演示文稿等等。这是个非常重要的区别,为此,要从 Big Data 中提取有价值的商业信息,都必须依靠某些技术来对这些格式进行可扩展的、精确且有效分析。

紧接着下一个问题就出现了 – 我们如何有效地处理这些 Big Data?在这一领域的开拓者之一是谷歌 Google,它设计了类似 MapReduce 和 Google文件系统等可扩展的框架。受到这些设计的启发,Apache 倡导了一个名为 Hadoop 的开源项目。Apache Hadoop 是一个开源框架,可以对大型数据集的进行跨集群的分布式处理。

Hadoop 生态系统 (Ecosystem)
Apache Hadoop 的核心由 2 个子项目组成 – Hadoop MapReduce 和 Hadoop 分布式文件系统。 Hadoop MapReduce 是编程模型,也是一个软件框架,可以编写在集群上进行并行处理大量数据的应用。 HDFS 是 Hadoop 应用所使用的主要存储系统。 HDFS 创建了数据块的多个副本,并将其分发整个集群的计算节点上以便能可靠、且快速的进行计算。其它和 Hadoop 相关的 Apache 项目还包括: Chukwa, Hive, HBase, Mahout, Sqoop 和 ZooKeeper 等等。

下图列出了 Hadoop 的一些组件,接下来我们会逐一介绍 Hadoop 生态系统的这些关键组件。

>>> 阅读全文

 

, , , , , , , , ,

多租户技术与 Hibernate 4.0 (一)

在多租户技术中,租户(tenant)是指使用系统或电脑运算资源的客户,其所使用的是供应商所开发或配置的应用系统或运算资源等。供应商所设计的应用系统会容纳数个以上的用户在同一个环境下使用,为此应用程序与运算环境必须要特别设计,除了可以让系统平台可以允许同时让多份相同的应用程序同时执行外,保护租户数据的隐私与安全也是多租户技术的关键之一。

多租户是决定 SaaS 效率的关键因素。多租户技术在实际业务上运用的成功且广为人知的案例之一,是由 Salesforce.com 所创建的 CRM 应用系统。在这样一个典型的企业 SaaS 环境中,用户是指某个特定组织的员工组成的多个组,这个组织就是所谓的租户。

在未出现 SaaS 之前,组织会购买一个软件应用程序供自己的成员使用;组织的员工就是应用程序的用户,而该组织就是所有者。在 SaaS 和云的世界中,许多组织都将使用同一个应用程序,组织是租户,而非所有者,但是组织的员工仍然是用户的身份。每名用户都具体关联到一个特定租户(组织),而 SaaS 为每个租户分别提供一份应用程序的副本,以供他们的用户使用,同时只允许每个组织自己的成员访问其组织的数据。

可见,多租户技术有下列特色:

  • 由于多个租户共用一个应用程式或运算环境,其相关的硬件成本,操作系统与相关软件的授权成本都可由多个租户一起分担,对供应商来说可以有效降低成本。
  • 通过不同的数据源管理手段,多租户技术的数据可以用不同的方式进行数据隔离,而良好的数据隔离方法可以降低供应商的维护成本(包含设备与人力),而供应商可以在合理的授权范围内取用这些数据分析,以作为改善服务的依据。
  • 多租户架构下所有使用者都共用相同的软件环境,因此在软件版本变动时可以只发布一次,就能在所有租户的环境上生效。
  • 具多租户架构的应用软件虽可定制化,但定制化难度较高,通常需要平台层与工具的支持,才可降低定制化的复杂度。

传统 Web 应用和 SaaS 应用的区别
传统 web 应用程序和支持云的 SaaS 应用程序的主要区别,在于两个容量利用特性:

>>> 阅读全文

 

, , , ,

EFI 编程简介

背景
可扩展固件接口( EFI—Extensible Firmware Interface)最早可追溯到 1998年的 Intel Boot Initiative(IBI) 项目。现在 EFI 规范主要由一些公司财团来开发和维护(包括 Intel 和 Microsoft),定义了为系统固件导出的一系列 API 和数据结构,可以被下列客户端所使用

  • 操作系统加载器(boot loader)
  • 操作系统
  • EFI 设备驱动
  • EFI 诊断和系统工具
  • EFI 命令解释器 (shells)

有关 EFI 及其起源的细节,你可以跟随开放固件(Open Firmware)的讨论,在 More Power to Firmware 一节中找到。此外,在 《Mac OS 内部》一书中有一整章专门研讨开放固件和 EFI。

EFI 被引入之后并没有马上得到普及。部分原因要归咎于安腾(Itanium)CPU 乏善可陈。此外,EFI 是一种颠覆性的解决方案,因此问世之后短期内缺乏吸引力。直到苹果为其基于 Intel 的 Macintosh 电脑采用了 EFI ,对 EFI 来说如同一剂强心剂。尤其是,尝试在 Intel CPU 的苹果机上运行非苹果操作系统(主要是 Windows)的狂热,使得人们对 EFI 产生了相当大的兴趣,对应的,是对 EFI 编程的兴趣。

多年来,Intel 已经发布了许多 EFI 相关的软件,包括源代码。Intel 平台的 EFI 创新框架(Intel® Platform Innovation Framework,简称框架)是 Intel 下一代固件架构。这段代码的核心块基于开源许可证,可以在 TianoCore.org 找到。 “Tiano” 是开发代号,而“Framework”是市场名称。 该框架是英特尔的 EFI 规范的实现。

标准 EFI 开发环境
要开始进行 UEFI 开发,你需要用到两个开发包: EFI 开发工具 (EDK ) 和 EFI 工具集 (EFI Toolkit) 。

>>> 阅读全文

 

, , ,

超越 Web 2.0

正当大多数组织正努力通过 Web2.0 产品来实现 E2.0 的时候, 有些企业已经放长眼光,并在询问 “下一步该做什么?”。如果 Web1.0 是关于沟通(communication),Web2.0 是关于协作(collaboration),我们现在应该做些什么准备,以应对用户及市场的未来需求,并在竞争中抢得先手?

要为未来做准备,我们需要了解网络的演变,正如 Gary Hayes表明的那样,网络正朝着一个更加身临其境的环境(more immersive environment)演变。

事实上,这意味着:

  • • Web 1.0 – 单向 + “推”。如传统的“在线小册子 brochureware” 风格网站
  • • Web 2.0 – 交互式 – “推” + “拉”。诸如 MySpace、 Wikipedia 和 Facebook 之类的社会计算网站
  • • Web 3.0 – 浸入式 (immersive) 例如: 3维虚拟世界和无所不在的计算
  • • Web 4.0, 5.0 … 使用智能代理和自适应信息的语义世界(the semantic world)

Web 最早的概念包括常更新的静态 HTML 页面。而.com 时代的成功则是依靠一个更加动态的 Web(“Web 1.5”),其中CMS(内容管理系统)可以从不断变化的内容数据库中即时生成动态HTML页面。早期的网络营销不外乎是透过电子邮件发送、弹出式窗口、横幅式广告等几种手法。 最常见的例子就是入口网站将其网页上的广告空间待价而沽,等到广告商上门之后,入口网站再依点选率或是摆放时间的长短来收取费用。

但早在1999年,著名的管理学者彼得·杜拉克 (Peter F. Drucker) 就曾指出当时的资讯科技发展走错了方向,因为真正推动社会进步的,是”Information Technology”里的”Information”,而不是”Technology”。若然单单着重技术层面而忽略了资讯的话,就只是一具空的躯壳,不能使社会增值。而 Web 2.0 很明显是透过参与者的互动:不论是提供内容、为内容索引或评分,都能够使他们所使用的平台增值。透过参与者的互动,好的产品或资讯本着它的口碑,从一小撮使用者扩展到一大班人。Web 2.0 应运而生。

>>> 阅读全文

 

基于混沌的加密

文章评价:

简介
加密的挑战之一就是如何生成貌似随机的数字序列作为加密密钥(encryption keys)。

你也许知道,任何电脑生成的“随机”数都不是真的随机,它其实应称为“伪随机” – 该数字是用某个给定的“种子 – seed” 数迭代解一个数学方程得到的。对于每个给定的种子值,序列是不同的。如果你有一堆数字的集合并能访问创建它们的算法,那么对一台电脑来说,不用多久就可以算出使用的种子值。

现代对称加密系统使用一个256位的起始“密钥” (对于美国公民)并结合一个初始化向量(也是256位)。通过一些恐怖的数学运算,矢量被结合到密钥,多达数百万的独特排列被创建,将这些与数据相结合就可以进行混淆。这个过程可以反向运行,恢复原始信息(因此称为“对称”)。

这些数学加密系统的一个问题其过程是由数学派生的,算法是公开的。对于每一个创造出来的加密算法,最终总有人想出了破解它的数学方式。即使是最新和最伟大的 AES 算法现在已经从理论上破解。

>>> 阅读全文

 

,

Teiid 基于数据联邦的集成方案

要了解什么是 Teiid ,我们首先需要了解什么是虚拟数据库和数据联邦。

虚拟数据库(Virtual Database–VDB) 是将一个或多个物理数据源组合起来以提供更简单的数据集成解决方案,它提供了包含组件的容器,这些组件用来集成不同数据源的数据,并通过一致的 API 来访问它们。这些物理数据源包括: JDBC 数据源、CSV 文本文件、数据表,甚至可以是 Web services。这种技术被称为是“数据联邦” -Data federation。数据联邦技术提供了一种为数据提供抽象的数据接口的能力。这些多个数据源组成的虚拟视图可以使数据消费者(应用)不需要知道数据的物理位置、数据结构和保存方式。

与其它数据集成技术相比,数据联邦技术的明显优势在于获取数据的方便性和实时性。现在很多企业都在实现 SOA,SOA 的灵活性和敏捷性要求组织提供数据时应该具有更少的时延。以前的利用批量任务或者 ETL 的方式创建数据集市和数据仓库的方式的实时性都不太好,在很多应用场景中被数据联邦技术所取代。

但是数据联邦技术访问数据是通过一个“联邦”视图(federation view)来实现的,视图是实时的。随着企业数据量的增大,性能问题是所有数据集成(Data Integration tools)都面临的问题,但是由于设计上的根本缺陷,数据联邦在这方面虽有很大进展,但是仍无法和另外一些数据集成技术相比。这种缺点制约了它在数据集成领域的适用性,虽然很多领域都使用了数据联邦技术,但是在关键的核心业务系统它的应用非常少。

目前已实施数据联邦项目的特点如下:使用简单的有限的数据源,数据结果集不大,只读性的数据访问,数据质量要求简单。比较典型数据联邦产品有:BEA 的 AquaLogic Data Services Platform、IBM 公司的 Federation Server、Software AG 公司的 Enterprise Information Integration、Sybase 的 Data Federation 以及 Red Hat 公司的 JBoss MetaMatrix,其开源实现即 Teiid。

>>> 阅读全文

 

, , , , , , , , , ,