大数据处理和分析需求的背景
随着传感器、移动设备、网络、射频 ID 等的广泛使用,数据收集的自动化程度越来越高,数据产生的速度越来越快,数据量的爆炸式增长构成了显著的大数据问题。针对大数据的采集、传输、处理和应用发展出许多对应的相关技术。如何利用大数据处理技术, 对大量结构化、半结构化和非结构化数据进行处理,挖掘出其中潜在的规律和模式,从而作出有价值的商业预测和分析就显得尤为重要和迫切。
IBM SPSS Modeler(以下简称 Modeler)是一款数据挖掘分析的行业软件,其采用数据流的方式来展示数据挖掘的操作过程,并结合 CRISP-DM 工业标准打造了一个支持众多数据挖掘操作的应用平台。为了顺应 IBM 的大数据战略方向,迎合大数据处理和分析日益增强的市场需求,Modeler 15.0 FP2 整合了最新的大数据处理引擎 IBM SPSS Analytic Server(以下简称为 Analytic Server)1.0 版本,从而将 IBM 的数据挖掘能力扩展到大数据领域。
回页首
MapReduce 和 hadoop 简介
目前,MapReduce 是一种应用较为广泛的并行计算的编程模式,可适用于大规模集群上的大数据处理。MapReduce 的概念来源于 Google 实验室,是 Google 公司的核心计算模型,它将复杂的运行于大规模集群上的并行计算过程高度抽象为 Map 和 Reduce 两个函数。应用 MapReduce 来处理的数据集将被分解成许多小的数据集,从而可以在每一个小的数据集上并行地进行处理。MapReduce 的计算流程如图 1 所示。
图 1. MapReduce 计算流程
Hadoop 是一个实现了 MapReduce 计算模型的开源分布式并行编程框架,它以 Hadoop 分布式文件系统(HDFS)为存储,实现了 MapReduce 模型。
Hadoop 有以下几方面的特点:
- 扩容能力强:能可靠地存储和处理千兆字节(PB)数据。
- 成本低:可以通过低廉的存储服务器群来存储以及处理数据。服务器群所含节点可达数千个。
- 效率高:通过分发数据,Hadoop 可以在数据所在的节点上并行处理,这使得整体处理非常快速。
- 可靠性:Hadoop 能自动地维护数据的多份复制,并且在任务失败后能自动地重新部署计算任务,使得系统具有较高的容错能力。
回页首
基于 Hadoop 框架的 IBM SPSS Analytic Server 简介
Analytic Server 是大数据分析的解决方案,它提供了一个易于实现的框架,从而能够在分布式文件系统上来执行大数据分析。它将 IBM SPSS 现有的商业分析技术与大数据技术相结合,使得用户能够使用复杂的分析算法以高可伸缩的方式来解决基于大数据的分析问题。
大数据分析的重要性
各商业组织收集的数据量正在迅速增长,例如,金融和零售业拥有一年(或两年,或十年)的所有客户交易,电信提供商拥有呼叫数据记录(CDR)和设备传感器 读数。如何对这些不断增长的数据进行有效的处理并挖掘出有用的商业价值就非常重要和迫切。例如,通过分析金融和零售业现有客户群体的特征可以有针对性的推 行相关产品和服务,通过分析电信提供商拥有的数据提供增值服务从而防止客户流失。
由此我们可以看出,当存在以下情况时,需要大型数据分析:
- 大量数据(太字节,拍字节,艾字节),特别是当结构化数据和非结构化数据同时存在时
- 迅速变化、累积的数据
当存在以下情况时,大型数据分析也非常有帮助:
- 正在构建大量(成千上万的)模型
- 频繁构建、刷新模型
挑战
虽然很多商业组织有意识到大数据处理的重要性,但在使用大数据处理技术方面经常遇到下列困难:
- 传统分析产品的体系结构不适合分布式计算。
- 现有分析算法难以用于大数据。
- 对大数据进行高级的分析操作需要有关大数据的新技能和知识,而具有这些技能和知识的分析人员却非常少。
- 内存解决方案仅适用于解决中型问题,无法解决真正的大数据问题。
解决放案
Analytic Server 是一个理想的大数据分析的解决方案,其提供了:
- 利用大型数据系统的以数据为中心的体系结构,如 Hadoop Map、减少 HDFS 中的数据移动。
- 已定义界面,以将设计用于转到数据统计方法合并在一起。
- 熟悉的 Modeler 用户界面,隐蔽了大数据的具体操作细节,以便分析人员能够将注意力放在分析数据上。
- 可解决任何规模问题的解决方案。
体系结构
Analytic Server 体系结构(图 2)为我们形象地展示了 Analytic Server 基于 Hadoop 与其他应用程序协同工作的体系结构。Analytic Server 位于客户机应用程序和 Hadoop 云之间。假设数据停留在云中,使用 Analytic Server 的操作将以如下过程执行:
- 为云中的数据定义 Analytic Server 数据源。
- 在客户机应用程序中定义所要执行的分析。对于 Analytic Server,客户机应用程序支持为 Modeler 和 IBM SPSS Analytic Catalyst.
- 运行分析时,客户机应用程序提交 Analytic Server 执行请求。
- Analytic Server 协调在 Hadoop 云中运行的作业,最终结合起来向客户机应用程序报告结果。
- 所得结果可定义进一步的分析,循环上述过程。
图 2. Analytic Server 体系结构
回页首
IBM SPSS Modeler 和 IBM SPSS Analytic Server 的集成
Modeler15.0 FP2 通过集成 Analytic Server 1.0 来实现面向大数据的数据挖掘处理。本节介绍了 Analytic Server 1.0 的环境需求、安装和配置,以及 Analytic Server 1.0 和 Modeler 15.0 FP2 的集成配置及其两者之间安全连接。
回页首
IBM SPSS Analytic Server 的安装环境及配置
环境需求
Analytic Server 仅支持 Linux 平台,具体所支持的平台如表 1 所示:
表 1. 支持的 Linux 平台
产品 | 发行版 | 处理器 | 文字大小 |
---|---|---|---|
Red Hat Enterprise Linux | 6.x | x64 | 64 位 |
Red Hat Enterprise Linux | 5.x | x64 | 64 位 |
SuSE Linux Enterprise Server | 11 | x64 | 64 位 |
SuSE Linux Enterprise Server | 10 | x64 | 64 位 |
此外,Analytic Server 的安装必须基于以下的 Hadoop 环境:
- Apache Hadoop 0.20.2
- Apache Hadoop 1.0.3
- IBM BigInsights 2.0
- Cloudera CDH3
- Cloudera CDH4 MRv1
- Hortonworks Data Platform 1.x
IBM SPSS Analytic Server 的安装配置
在安装 Analytics Server 之前,首先确保 Hadoop 环境已经安装好或者已有可用的 Hadoop 环境,同时确认以下配置信息:
- IBM SPSS Analytic Server HDFS root directory
- NameNode Server
- NameNode Port
- JobTracker Server
- JobTracker Port
我们可以通过以下两种方式获取这些信息:
方式一:
如果这个 Hadoop 环境上之前已经安装过 Analytic Server,那么找到已存在的 Analytic Server 的安装路径,并从配置文件里获取所需要的信息。例如,我们可以在 Analytic Server 安装路径 /qatest/AE/dlg6140-9a9b/ae_wlpserver/usr/servers/aeserver/configuration/ 下的 config.properties 文件里面得到如下信息:
root.folder.path=/user/hduser/AE/analytic-root roothdfs.namenode.url=hdfs://svs3aeqa20:54310/user/hduser/AE mapred.job.tracker=svs3aeqa20:54311
那么,
‘IBM SPSS Analytic Server HDFS root directory’ = /user/hduser/AE/analytic-root ‘NameNode Server’ = svs3aeqa20 ‘NameNode Port’ = 54310 ‘JobTracker Server’ = svs3aeqa20 ‘JobTracker Port’ = 54300
方式二:
从 NameNode 服务器上获取配置信息。假设 Hadoop 的用户名是 hduser, 可以把“Analytic Server 根目录”设成 /user/hduser/AE/analytic-root。
此外, 在 /data/hadoop/hadoop-1.0.3/conf/core-site.xml 文件里搜索“NameNode Port”,在 /data/hadoop/hadoop-1.0.3/conf/mapred-site.xml 文件里搜索“JobTracker Port”。例如:
<property> <name>fs.default.name</name> <value>hdfs://svs3qa05:54310</value> <description>….</description> </property> <property> <name>mapred.job.tracker</name> <value>svs3qa05:54311</value> <description>… </description> </property>
那么,
‘NameNode Port’ = 54310 ‘JobTracker Port’ = 54300
取得上述配置信息后,按以下步骤安装 Analytic Server:
- 运行 Analytic Server 程序安装文件 install.bin。
- 审阅许可协议并接受该协议以继续安装。
- 用户验证。如果当前用户和 Hadoop NameNode Server 上的用户一致,则继续安装。
- 选择安装路径,并根据提示将文件安装到系统上。
- 配置 Analytic Server 选项:
- 管理员账户名称。默认值为 admin,该用户是对控制台上的 Analytic Server 应用程序具有“超级用户”管理员权限的用户名。
- 密钥库密码。密钥库存储加密密钥,用于对存储在 Analytic Server 数据库中的数据源进行加密。
- 自动检测 Hadoop 版本。如果选择是,则指定 Hadoop NameNode Server 机器名或者 IP 地址,如果 Hadoop 位于安装 Analytic Server 的同一机器上,那么使用 localhost 作为服务器名称。然后,安装程序将确定安装了哪个版本的 Hadoop,并从该 Hadoop 发行版中收集所需的文件,如图 3 所示。
图 3. 自动检测 Hadoop 版本
如果 Analytic Server 安装不能连接到 Hadoop NameNode Server, 或者直接选择否,那么在列表中选择 Hadoop 服务器版本,并指定 Hadoop 发行版中所需文件的位置,或者稍后手动复制这些文件,如图 4 所示。
图 4.Hadoop 连接失败
- Hadoop 参数配置
- Hadoop 用户名: 运行 Analytic Server 的 UNIX 用户名。密码:Hadoop 用户名的密码。Analytic Server 根目录:此路径是 Analytic Server 设置其工作空间以及存储分发到 Hadoop 节点的可执行文件的位置。
- NameNode Server:HDFS NameNode Server 机器名或 IP 地址。
- NameNode Port:NameNode Server 的端口号。
- JobTracker Server:Hadoop JobTracker Server 机器名或 IP 地址。
- JobTracker Port:JobTracker 程序的端口号。
- 安装完成以后,在安装完成页面,我们可以得到 Analytic Server 安装是否完全以及所有配置步骤是否都已完成的信息:
- 如果 Analytic Server 已经安装完全并且所有配置步骤都已完成,那么 hdfsUpdate.sh 也就已经被执行,我们可以直接进行步骤 8。
- 如果部分配置步骤尚未完成,如图 5 所示。
图 5 安装完成
那么我们需要检查以下信息:
检查一:
打开 /<AS_Root>/ae_wlpserver/usr/servers/aeserver/configuration/config.properties, 检查以下参数值是否正确,如果不正确,直接手动修改并保存。其中,<AS_Root>指的是在其中部署了 Analytic Server 的文件夹。
root.folder.path; as.root.folder; hdfs.namenode.url; hdfs.user; hdfs.classpath.folder; mapred.job.tracker;
检查二:
打开 /<AS_Root>/ae_wlpserver/usr/servers/aeserver/apps/AE_BOOT.war/WEB-INF/lib,检查是否所有所需 Hadoop 文件都已正确添加。如果有任何遗漏的 Hadoop 文件,手动复制所有遗漏文件至上述路径。检查修改最后确认上述信息无误后,运行 /<AS_Root>/bin/hdfsUpdate.sh 更新安装文件。
- 运行 /<AS_Root>/bin/start.sh 启动 Analytic Server