基于Hadoop的海量电信数据云计算平台研究


研究与开发 传统的数据分析方法面对海量电信数据存在管理和分析难的问题。Hadoop 是一个可实现大规模分布 式计算的开源框架,具有高效、可靠、可伸缩的优点,被广泛应用于云计算领域。 本文在对 云计算 和 Hadoop 进行分析和研究的基础上,提出了一种针对海量电信数据的分布式云计算方法,建立了基于 Hadoop 的海量电信数据云计算平台。 实验证明,该平台能够有效完成海量数据的管理和分析任务,提 高海量数据分析的速度和效率。 关键词 云计算平台;Hadoop;MapReduce;海量数据;电信运营商 基于 Hadoop 的海量电信数据云计算平台研究 黎宏剑,刘 恒,黄广文,卜 立 (中国移动通信集团广东有限公司中山分公司 中山 528403) 摘 要 1 引言 随 着 3G 时 代 的 来 临 ,移动业务日益丰富,用 户 在 使 用移动业务过程中产生的各类数据以 TB 级速度增长。 面 对激烈的市场竞争,如何快捷、高效、安全地管理和分析海 量的业务数据,深度挖掘业务特征,实行精确营销策略,成 为电信运营商确保竞争优势的关键举措之一。 目前,面对海量的业务数据,电信运营商存在管理和 分析难的问题。业务数据的管理要求高效存储、高效读取、 高可用性及高扩展性架构,业务数据每天以 TB 级速度增 长, 基于传统关系型数据库的数据管理难以满足其要求, 或需付出高昂的成本代价实现。 对业务特征的挖掘分析, 往往涉及网络域和业务支撑域的大数据以及这些大数据 之间的关联。传统的关系型数据库对这些大数据的运算需 要搭配高性能的机器,运 算 时 间 长 ,分 析 结 果 存 在 严 重 滞 后性,直接导致错过了对相应行为采取有效措施的最佳 时机。 Hadoop 分布式技术的发展为解决上述问题提供了技 术手段。 Hadoop 是一个在集群上运行大型数据库处理应 用程序的开放式源代码框架,采用 MapReduce 编程模型对 海量数据进行有效分割和合理分配, 以实现高效并行处 理,并行程序编写简单,节省时间。 Hadoop 分布式云计算 平台对硬件配置要求不高, 具有可伸缩性和高容错性,实 施成本低。 本文在研究云计算和 Hadoop 的基础上,设计并 部分实现了基于 Hadoop 的海量电信数据云计算平台。 2 相关技术简介 2.1 云计算 云计算基于互联网相关服务的增加、 使 用 和 交 付 模 式,是并行计算、分布式计算、网格计算综合发展的结果。 它将计算任务分布在大量计算机构成的资源池上,使各种 应用系统能够根据需要获取计算力、存储空间和信息服务, 具有数据安全可靠、可共享、扩展性强、规模大、价格低廉等 特点。 按照提供服务的不同,云计算分为 SaaS(software as a service,软件即服务)、PaaS(platform as a service, 平 台 即 服 务 ) 和 IaaS (infrastructure as a service, 基 础 设 施 即 服 务 ) 研究与开发 80 电信科学 2012 年第 8 期 3 类。 云计算以数据为中心,在并行数据处理、编程模式和 虚拟化等方面具有独特的技术。 2.2 Hadoop Hadoop 是由 Apache 基金会组织开发的分布式计算开 源框架,利用低廉设备搭建大计算池,以提高分析海量数据 的速度和效率,是低成本的云计算解决方案。 其模仿和实现 了 Google 云计算的主要技术,包括 HDFS(Hadoop distributed file system, Hadoop 分布式文件系统)、MapReduce、HBase、 ZooKeeper 等, 分别对应于 Google 成熟商用云计算平台的 GFS(Googlefilesystem,Google 文件系统)、MapReduce、BigTable、 Chubby, 支持通过 Google 的 MapReduce 编程 范 例 创 建 并 执行应用程序。 Hadoop 是相关子项目的集合, 核 心 是 Hadoop Common、HDFS 和 MapReduce, 其他子项目提供补充性服 务。 Hadoop 技术栈如图 1 所示,具体介绍如下。 Hadoop Common:支 撑 Hadoop 的 公 共 部 分 ,是 最 底 层 的模块,为其他子项目提供各种工具。 HDFS: 是 一 个 主 从 (master/slave) 结 构 , 由 一 个 NameNode (名 称 节 点 )和 若 干 个 DataNode ( 数 据 节 点 ) 构 成,NameNode 管理文件系统的元数据,DataNode 存储实际 数据。 MapReduce: 处理海量数据的并行编程模型和计算框 架,采用“分而治之”思想,包括分解任务的 map 函数和汇 总 结 果 的 reduce 函 数 ,MapReduce 任 务 由 一 个 JobTracker 和若干个 TaskTracker 控制完成,JobTracker 负 责 调 度 和 管 理 TaskTracker,TaskTracker 负责执行任务。 Pig:SQL-like 语言, 是在 MapReduce 上构建的一种高 级查询语言,以简化 MapReduce 任务的开发。 Hive:数据仓库工具,提供 SQL 查询功能。 Hbase:基于列存储模型的分布式数据库。 ZooKeeper:针对分布式系统的协调服务。 Chukwa:分布式数据收集和分析系统。 Avro:提供高效、跨语言 RPC 的数据序列系统,持久化 数据存储。 Hadoop 具有可扩展、高容错、经济、可靠、高效的优点, 被广泛应用在云计算领域,在 Yahoo、Facebook、支付宝、人 人网等大型网站上都已经得到了应用, 是目前应用最为广 泛、成熟的开源云计算平台。 3 基 于 Hadoop 的海量电信数据云计算 平台设计 目前,电信运营商对海量电信数据的分析都是基于传 统的关系型数据库, 这种分析方法依赖于高性能机器,分 析时间长、效率不高,直接影响了业务决策时机。 针对这些问题,结合海量电信数据的特点,本 文 提 出 利 用 Hadoop 云计算技术对海量电信数据进行分析的方 法, 该方法通过构建基于 Hadoop 的海量电信数据云计算 平台,采用 MapReduce 编程模型加强对数据的管理,提 高 数据分析的速度和效率,解决了电信运营商对海量电信数 据管理和分析难的问题。 3.1 平台设计的目标与原则 海量电信数据云计算平台的设计目标是利用 Hadoop 基于低廉设备的海量数据处理优势,利用一批下线的低端 PC 服务器搭建 Hadoop 云计算平台,支撑海量电信数据的 分析需求,提高数据分析的速度和效率,达到为业务决策 提供即时、准确信息的目的,同时为公司节约投资成本。 平台的设计原则包括:经 济 原 则,充分利用现有资源 搭建平台基础设施,根据 Hadoop 对硬件要求不高的特点, 采用一批下线低端 PC 服务器搭建 Hadoop 集群; 高 效 原 则,充分利用云计算平台的特性,提高海量电信数据的处 理效率;安全原则,在平台设计过程中,必须充分考虑平台 的自身安全和信息安全,采取必要措施,规避安全风险。 3.2 平台框架结构 结合海量电信数据自身的特点,海量电信数据云计算 平台在设计上采用分布式、分层结构,可以划分为数据层、 模型层、应用层 3 层结构,如图 2 所示。 (1)数据层 海量电信数据包括网络域数据和业务支撑域数据。 其 中,网络域数据包括 Gb 口数据、A 口数据、WLAN 数据等; 业务支持域数据包括客户信息、客户业务订 购 数 据、客 户 消费数据等客户基本数据。 数据层 通 过 Hadoop 的 HDFS 存储这些数据,然后利用 Hbase、Hive、Pig、ZooKeeper 等 数 据处理和管理工具,用类 SQL 语言定义统计指标,动态生 图 1 Hadoop 技术栈 81 研究与开发 图 3 海量电信数据云计算平台的功能模块 图 2 海量电信数据云计算平台框架结构 成 MapReduce 任务进行计算和聚合,对海量电信数据进行 高 效 处 理,处理结果仍以文件格式存储在 HDFS 中 ,并 可 导出为所需格式。 (2)模型层 模型层利用数据层对海量电信数据进行基于 Hadoop 的 ETL 处理输出的汇总数据,建立分析模型,如客户位置 模型、客户上网行为模型、客户短信行为模型、客户话音行 为模型等基础模型,实现客户位置、客户离网预警、客户交 往圈等分析应用。 (3)应用层 应用层是利用模型分析得出的结果, 如 生 活 轨 迹 特 征、增值业务使用情况、用户的交往圈特征等,精确定位营 销目标客户,设计针对性营销方案,并对营销效果进行评 估分析。 3.3 平台功能模块 海量电信数据云计算平台的功能模块包括用户管理、 数据管理、任务管理、集群管理 4 个模块,如图 3 所示。 · 用 户 管 理 模 块 :包 括 账 号 开 通 、身 份 认 证 、权 限 管 理、交互控制。 · 数据管理模块:包括数据的上传和下载、删除。 · 任务管理模块:包括任务申请、资源申请、结果反馈。 · 集群管理模块:包括 Hadoop 集群状态和任务进度、 节点管理。 3.4 网络拓扑结构 海量电信数据云计算平台的网络拓扑结构包括前端 操作区和后端生产区, 如 图 4 所 示 , 其 中 生 产 区 包 括 Hadoop 集群局域网和各类服务器。 Hadoop 集 群 局 域 网 由 1 台 NameNode 服 务 器 、1 台 Secondary NameNode 服务器、1 台 JobTracker 服务器和多台 从服务器组成。 · NameNode 服务器负责管理海量数据文件的分割、 存储以及监控 DataNode 的运行情况。 应 用 程 序 需 要读取数据 文 件, 首 先 访 问 NameNode 服 务 器,获 取数据文件在各 DataNode 上的分布, 然 后 直 接 与 DataNode 通 信 。 一 旦 发 现 某 个 DataNode 宕 机 , NameNode 将通知应用程序访问宕机节点各数据块 的副本, 并在其他 DataNode 上增加宕机节点各数 据块的副本,以保证平台的可靠运行。 82 电信科学 2012 年第 8 期 · Secondary NameNode 服务器用来监控 HDFS 状 态 , 与 NameNode 进行通信, 以便定期保存 HDFS 元数 据 的 快 照 , 若 NameNode 发 生 问 题 , 其 作 为 备 用 NameNode 使用。 · JobTracker 服务器负责管理计算任务的分解和汇 总,负责监控各 TaskTracker 节点的运行情况,一 旦 某个任务失败,JobTracker 自动重新启动这个任务。 · 从服务器承担了 DataNode 和 TaskTracker 两 种 角 色 , 分别负责数据块的存储和数据计算的 map、 reduce 任务的运行。 3.5 平台安全机制 由于 Hadoop 集群节点之间是互通的,对 Hadoop 集群 节点操作的账号是统一的, 同时电信数据属于敏感数据, Hadoop 本身的机制难以对数据进行有效的安全控制,在 一定程度上存在安全问题。 为规避安全风险,防范安全事 故的发生,必须采取相应的安全机制加强对平台和数据的 安全管理。 平台采取的安全机制包括平台自身安全管理、 账号安全管理和数据安全管理。 (1)平台自身安全管理 将 Hadoop 集群网络划分为内部局域网, 通过设置防 火墙策略与其他网络进行隔离,NameNode 作 为 唯 一 出 口 负责与外部进行通信,内部其他节点通过 NameNode 进 行 访问。 同时,将 NameNode 加入堡垒机,将其操作的任何记 录均保存在堡垒机服务器中。 (2)账号安全管理 严格控制平台管理员账号, 定 期 更 换 口 令 ; 将 操 作 Hadoop 集群的账号和用于数据传输的账号分离, 严 格 控 制其访问权限;保存各账号的操作记录,定期审计。 (3)数据安全管理 电信数据属于敏感数据,必须加强敏感数据的保密工 作,主要通过记录数据进出、分开存放、传输加密和记录人 员对数据的操作、定期审计等措施,对数据进行安全管理。 4 平台的部分实现及其效果 由于时间和精力有限,本文仅对海量电信数据云计算 平台的底层 Hadoop 集群部署进行实现, 并通过实验论证 本文提出的方法及设计平台的有效性、可行性。 4.1 底层 Hadoop 集群部署的实现 底 层 Hadoop 集 群 包 括 1 个 NameNode 服 务 器 、1 个 JobTracker 服务器和 4 个 DataNode 服务器,设备配置信息 见表 1。 底层 Hadoop 集群采用 Hadoop-0.20.2 版本,操作系统 为 Linux CentOS 5.6,Hadoop 运行需要 JDK 环境, 本文选 择的是 jdk1.6.0_31。 83 研究与开发 表 1 集群设备配置信息 主机名 作用 设备型号 CPU 内存 硬盘 Hadoop1 NameNode IBM X350 Pentium 3 XEOM 700 MHz×2 1 GB 36.4 GB Hadoop2 JobTracker IBM X350 Pentium 3 XEOM 700 MHz×2 2 GB 36.4 GB Hadoop3 DataNode、TaskTracker IBM X350 Pentium 3 XEOM 700 MHz×2 1 GB 36.4 GB Hadoop4 DataNode、TaskTracker IBM X225 Intel XEOM 2.0 GHz×1 512 MB 72 GB Hadoop5 DataNode、TaskTracker IBM X342 Pentium Ⅲ 1.2 GHz×1 512 MB 36.4 GB Hadoop6 DataNode、TaskTracker IBM 346 Intel XEOM 3.2 GHz×1 512 MB 146.8 GB 图 5 实验二的 MapReduce 计算过程 $ hadoop jar wangfen.jar /wfinput /wfoutput 2012-03-16 07-09-17-24 Execute without argument for help. 12/04/06 11:29:30 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. 12/04/06 11:29:31 INFO input.FileInputFormat: Total input paths to process : 3 12/04/06 11:29:31 INFO mapred.JobClient: Running job: job_201203261910_0001 12/04/06 11:29:32 INFO mapred.JobClient: map 0% reduce 0% 12/04/06 11:29:59 INFO mapred.JobClient: map 1% reduce 0% …… 12/04/06 12:31:50 INFO mapred.JobClient: map 100% reduce 100% 12/04/06 12:31:55 INFO mapred.JobClient: Job complete: job_201203261910_0001 12/04/06 12:31:55 INFO mapred.JobClient: Counters: 19 12/04/06 12:31:55 INFO mapred.JobClient: Job Counters 12/04/06 12:31:55 INFO mapred.JobClient: Launched reduce tasks=1 …… 12/04/06 12:31:55 INFO mapred.JobClient: Map output records=36955090 12/04/06 12:31:55 INFO mapred.JobClient: Reduce input records=36955090 Hadoop 的安装过程为:配置 host 文件、新建 Hadoop 目 录和用户、 安装 JDK 及配置环境变量、 配置 SSH 免密码登 录、安装 Hadoop 及配置。 此外,为了增强平台的扩展性,分别 安装了 Hive-0.8.1、Pig-0.9.2、Hbase-0.20.6、Zookeeper-3.3.3。 其 中,Hadoop、ZooKeeper 和 Hbase 之间的启动和停止有顺序 要求,介绍如下。 · 启 动 过 程 : 启 动 Hadoop→ 启 动 ZooKeeper→ 启 动 Hbase。 · 停 止 过 程 : 停 止 Hbase→ 停 止 ZooKeeper → 停 止 Hadoop。 4.2 实验结果 在部署好的平台中进行相关实验,验证本文提出的基 于 Hadoop 的分布式云计算方法在海量电信数据分析方面 是否存在优势。 在分布式和非分布式环境下,计算全网客户的位置信 息,主要字段为:IMSI、CGI、时长、时间切片标识。 实验数据 为 网 分 A 口 数 据 文 件 , 包 括 话 音 数 据 call_20120316.txt (2.2 GB)、短 信 数 据 SMS_20120316.txt(600 MB)和 位 置 数 据 location_20120316.txt(3.3 GB)。 实验的前提条件是假设 各实验采用的机器设备在配置上都是相同的。 实验一:采用非分布式计算(Oracle 数据库),在 Oracle 环境下的计算时长大约为 4 h。 实 验 二 : 采 用 分 布 式 计 算 , 利用单数据节点进行 MapReduce 计 算 ,Hadoop 配 置 信 息 为 1 个 NameNode、1 个 JobTracker 和 1 个 DataNode。 运行日志如图 5 所示,运行时 长大约为 63 min。 实 验 三: 采 用 分 布 式 计 算 , 利用两个数据节点进行 MapReduce 计 算 ,Hadoop 配 置 信 息 为 1 个 NameNode、1 个 JobTracker 和 2 个 DataNode。 运行日志如图 6 所示,运行时 长大约为 37 min。 通过对比实验一和实验二的运算结果得出,在大运算 量上, 利用 Hadoop 分布式计算可以大大提高计算速度和 效 率,本次实验缩短了 3 h 以 上;通过对比实验二和实验 三 的 运 算 结 果 得 出 ,Hadoop 的数据节点数影响到 Hadoop 的整体性能,本次实验采用 2 个数据节点比 1 个数据节点 的运算时间快了近 1 倍。 84 电信科学 2012 年第 8 期 $ hadoop jar wangfen2.jar /wfinput /wfoutput 2012-03-16 07-09-17-24 Execute without argument for help. 12/04/12 06:54:12 WARN mapred.JobClient: Use GenericOptionsParser for parsing the arguments. Applications should implement Tool for the same. 12/04/12 06:54:13 INFO input.FileInputFormat: Total input paths to process : 3 12/04/12 06:54:13 INFO mapred.JobClient: Running job: job_201203261910_0005 12/04/12 06:54:14 INFO mapred.JobClient: map 0% reduce 0% 12/04/12 06:54:40 INFO mapred.JobClient: map 1% reduce 0% …… 12/04/12 07:31:13 INFO mapred.JobClient: map 100% reduce 100% 12/04/12 07:31:21 INFO mapred.JobClient: Job complete: job_201203261910_0005 12/04/12 07:31:21 INFO mapred.JobClient: Counters: 19 12/04/12 07:31:21 INFO mapred.JobClient: Job Counters 12/04/12 07:31:21 INFO mapred.JobClient: Launched reduce tasks=2…… …… 12/04/12 07:31:21 INFO mapred.JobClient: Map output records=36955090 12/04/12 07:31:21 INFO mapred.JobClient: Reduce input records=36955090 图 6 实验三的 MapReduce 计算过程 Study on Massive Telecom Data Cloud Computing Platform Based on Hadoop Li Hongjian, Liu Heng, Huang Guangwen, Bu Li (Zhongshan Branch of China Mobile Group Guangdong Co., Ltd., Zhongshan 528403, China) Abstract The traditional data analysis methods have difficulty in the face of the massive data management and analysis. Hadoop is a large-scale distributed computing framework, has the advantages of high efficient, reliable and scalable, is widely used in cloud computing. In this paper, based on the analysis and research of cloud computing and Hadoop, a distributed cloud computing method is proposed in the light of massive telecom data and a massive telecom data cloud computing platform based on Hadoop is built. The experimental results show the platform can effectively solve the problem of data management and analysis tasks and improve the speed and efficiency of massive data analysis. Key words cloud computing platform, Hadoop, MapReduce, massive data, telecom operator (收稿日期:2012-05-22) 可 以 看 出,与传统的数据分析方法相比,本 文 提 出 的 针对海量电信数据的分布式云计算方法, 即 基 于 Hadoop 的海量电信数据云计算平台,有效地提高了海量数据分析 的速度和效率。 5 结束语 本文针对传统数据分析方法面对海量电信数据存在 分析效率不高的问题, 提出了基于 Hadoop 的分布式云计 算方法,设计了基于 Hadoop 的海量电信数据云计算平台, 并对平台的部分功能进行了实现。 实验表明,本文提出的 方法是有效和可行的, 为进一步研究 Hadoop 在海量电信 数据分析方面的应用做出了指引, 在下一步的研究中,重 点讨论 MapReduce 编程模型改进和数据节点的扩展问题, 以进一步提高海量数据的运算效率。 参考文献 1 Wbite T. Hadoop: the Definitive Guide. O’Reillly Media, Inc., 2009 2 张建勋, 古志民, 郑超. 云计算研究进展综述. 计 算 机 应 用 研 究, 2010, 27(2):429~433 3 施岩. 云计算研究及 Hadoop 应用程序的开发与测试. 北 京 邮 电大学硕士学位论文, 2011 4 Hadoop 官方网站. http://hadoop.apache.org, 2012 5 刘鹏, 黄宜华, 陈卫卫. 实战 Hadoop———开启通向云计算的捷 径. 北京: 电子工业出版社, 2011 [作者简介] 黎宏剑,硕 士,主要研究方向为管理信息系统; 刘恒,硕士,主要研究方向为决策支持系统与数据挖掘;黄 广 文, 硕士,主要研究方向为系统架构、信息系统;卜立,硕士,主要研究 方向为决策支持系统与数据挖掘。 85
还剩5页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf