失效链接处理 |
基于Storm和Hadoop的大数据处理架构的研究 PDF 下载
本站整理下载:
提取码:9jyo
相关截图:
主要内容:
基于 Storm 和 Hadoop 的大数据处理架构的研究
靳永超 1,2,吴怀谷 2 (1. 西华大学数学与计算机学院,成都 610039; 2. 成都大学信息科学与技术学院,成都 610106) 摘要:
针对现有的大数据技术 Storm 和 Hadoop,分析其内部实现机制,业务场景以及技术优缺点,提出一种基于 Storm 和
Hadoop 的新型大数据处理解决方案,以使得大数据处理更稳定,更高效,并对新型大数据解决方案进行性能测试,证 明其高效性和稳定性,所以这种新型架构是高效、稳定、可行的。
关键词:
大数据; Storm; Hadoop; 解决方案 0 引言在当前这个信息爆炸的时代, 企业数据以几何的
速度增长,预测到 2020 年,全球存储数据量将会达到
35ZB,很多像 Facebook 每天每小时产生的数据就达到
10TB 数据[1]。 像这种海量的数据早已经远远超出传统
数据处理技术的极限,无论是计算效率,还是计算时间 都无法满足要求。 所以对大数据的研究得到广泛的关
注,目前对大数据处理的研究主要使用两种核心技术:
一种是基于 MapReduce 磁盘处理任务调用的批处理
Hadoop 技术[1],另一种是基于内存计算的分布式实时
流 Storm 技术[2]。 大数据处理现阶段面临的问题是各种 不同的业务场景需求, 大数据缺乏一个从全局统一的
解决方案。 文献[3]只是单一地解决 Hadoop 存储的性能
问题,文献[4]也只对 Storm 的 Topology 进行设计,大数
据技术的稳定性、 扩展性和全局性没有得到更好的发 展, 从本质上说仍然没有解决现有的大数据遇到的难 题。 1 Storm 和 Hadoop 内部实现机制原理分析
1.1 Hadoop 原理
Hadoop 是 Apache 软件基金会旗下的一个开源分 布 式 计 算 平 台 , 其 核 心 内 容 是 : 分 布 式 文 件 系 统 (Hadoop Distributed File System,HDFS) 和 MapReduce
(Google File System,GFS)编程模式。 MapReduce 的核 心思想就是将数据切片计算来处理大量的离线数据。
Hadoop 有 很 多 优 点 , 例 如 动 态 的 分 配 节 点 、
MapReduce 任务监控、跨机架保存块副本,DataNode 故 障后,可以动态记录故障,并重新寻找离客户端最近的 DataNode 进行任务重新分配, 机架感知策略等都显示
出其强大的高效性、高扩展性和可靠性。 但是 Hadoop
也有其明显的缺点:①Hadoop 的 MapReduce 擅长处理 少量大数据,对小数据处理不擅长,默认 64MB 为一个
Block,如果出现大量小于 64MB 的小文件,同样每个要
占一个 Block, 大大降低了性能的利用率。 ②NameNode 一旦挂掉,整个运行环境陷入困境。 ③其离线全量 的处理方式,业务场景受到局限性,在数据过大的场景
下,可能导入数据就要花几天几夜。
1.2 Storm 原理
Storm 是一个分布式的、可靠的、容错的数据实时
流式处理系统,Spout 是 Storm 中的消息源, 用于为
Topology 生产消息, 一般从外部数据源 (如 Message
Queue、RDBMS、NoSQL、Log)不间断地读取数据并发送
Tuple 给 Bolt 进行数据操作,Bolt 是 Storm 中的消息处 理者,用于为 Topology 进行消息处理,Bolt 可以执行过 滤、聚合、查询数据等操作,而且可以一级一级地进行
处理。 这种 Topology 模型采用消息传递方式交互数据, 髾
研究与开发
现代计算机 2015.02 上 数据量相比较从磁盘获取要小,而且动态地读取,每次
读取量小。 Storm 的高可靠性和容错性主要集中体现在 Storm
的数据重发机制上,由于每个 Bolt 可以启动多个 task, 每个 task 都会带有一个唯一标示的 ID,Storm 将此 ID 持久化,在数据重发时候读取发送失败的 task 的 ID 状 态,重发发送数据,保证了数据的一致性,这明显优于
S4 实时流系统,而且 Topology 递交之后,Storm 会一直 运行直到主动释放 Topology 或者 kill 掉, 这明显要优 于 Hadoop 系统。
Hadoop 的批处理和 Storm 的实时流处理, 本是两 种不同的业务场景, 但是如果我们很好地进行融合和
集成, 就会发现组合在一起的新型处理方案在性能和
扩展性以及稳定性上都得到了提升。 2 集成 Storm 和 Hadoop 的新型大数据处
理方案
从离线批处理和实时处理来说, 原生 Storm 支持 单个消息及批量消息的事物机制,Trident 事务机制通 过 state 以及继承事务 spout 支持状态持久、 更新、查 询,Storm-trident-drpc 远程调用机制对同步并行查询
业务有较好的支持, 而且 Storm 的内存处理方式要比
Hadoop 的磁盘处理速度快几个数量级,所以数据处理 层我们选择 Storm 技术为主, 存储层加入 Hadoop 的
HDFS、HBase,以及整个 Hadoop 生态圈。 如图 1 所示,首先通过数据采集入口,针对关系型 数据库,配置异构数据源,通过 Storm 进行大数据处理,
将数据按照实时处理、 分析、 融合等规则进行数据处 理,这其实就是设置 Topology 架构的过程,为了保证实
时性能,在处理过程中加入 Kafka 消息队列。 一方面为 了为了缓解 Web 服务器端的处理压力,来缓冲客户端
发送的消息,以供后续程序处理,另外主要是支撑 Web
服务器端的处理和持久化保存。 通过 Kafka 可以降低 消息队列系统的复杂性,提高消息队列系统的性能,扩 展性以及吞吐量。 而在实时的场景中,为了数据交换效 率,加入 Redis 内存数据库,其特点是高性能、持久存 储、适应高并发的应用场景、保证了效率,数据缓存在 内存中, 可以周期性地把更新的数据写入磁盘或者修 改操作写入追加的记录文件中,通过实现 master-slave
(主从同步),提高 Storm 的并行处理能力。 Zookeeper 是
|