1、大数据处理及工具开发
(1)大数据环境下的数据处理需求
大数据环境下数据来源非常丰富且数据类型多样,存储和分析挖掘的数据量庞大,对数据展现的要求较高,并且很看重数据处理的高效性和可用性。
(2)大数据的意义
传统的数据采集来源单一,且存储、管理和分析数据量也相对较小,大多采用关系型数据库和并行数据仓库即可处理。
对依靠并行计算提升数据处理速度方面而言,传统的并行数据库技术追求高度一致性和容错性,根据CAP理论,难以保证其可用性和扩展性。
传统的数据处理方法是以处理器为中心,而大数据环境下,需要采取以数据为中心的模式,减少数据移动带来的开销。
因此,传统的数据处理方法,已经不能适应大数据的需求!大数据的基本处理流程与传统数据处理流程并无太大差异,主要区别在于:由于大数据要处理大量、非结构化的数据,所以在各个处理环节中都可以采用MapReduce等方式进行并行处理。
(3)大数据的处理流程包括哪些环节?每个环节有哪些主要工具?
大数据的基本处理流程与传统数据处理流程并无太大差异,主要区别在于:由于大数据要处理大量、非结构化的数据,所以在各个处理环节中都可以采用MapReduce等方式进行并行处理。
(4)大数据技术为什么能提高数据的处理速度?
数据的并行处理利器——MapReduce
大数据可以通过MapReduce这一并行处理技术来提高数据的处理速度。
MapReduce的设计初衷是通过大量廉价服务器实现大数据并行处理,对数据一致性要求不高,其突出优势是具有扩展性和可用性,特别适用于海量的结构化、半结构化及非结构化数据的混合处理。
MapReduce将传统的查询、分解及数据分析进行分布式处理,将处理任务分配到不同的处理节点,因此具有更强的并行处理能力。
作为一个简化的并行处理的编程模型,MapReduce 还降低了开发并行应用的门槛。
MapReduce是一套软件框架,包括Map(映射)和Reduce(化简)两个阶段,可以进行海量数据分割、任务分解与结果汇总,从而完成海量数据的并行处理。
MapReduce的工作原理其实是先分后合的数据处理方式。
Map即“分解”,把海量数据分割成了若干部分,分给多台处理器并行处理;Reduce即“合并”,把各台处理器处理后的结果进行汇总操作以得到最终结果。
如右图所示,如果采用MapReduce来统计不同几何形状的数量,它会先把任务分配到两个节点,由两个节点分别并行统计,然后再把它们的结果汇总,得到最终的计算结果。
MapReduce适合进行数据分析、日志分析、商业智能分析、客户营销、大规模索引等业务,并具有非常明显的效果。
通过结合MapReduce技术进行实时分析,某家电公司的信用计算时间从33小时缩短到8秒,而MKI的基因分析时间从数天缩短到20分钟。
(5)大数据技术在数据采集方面采用了哪些新的方法
系统日志采集方法
很多互联网企业都有自己的海量数据采集工具,多用于系统日志采集,如Hadoop的Chukwa,Cloudera的Flume,Facebook的Scribe等,这些工具均采用分布式架构,能满足每秒数百MB的日志数据采集和传输需求。
1)Chukwa
·代理:负责采集最原始的数据并发送给收集器。
·适配器:直接采用数据的接口和工具。
·收集器:负责收集代理收送来的数据,并定时写入急群众。
·MapReduce分析
·多路分配器:负责对数据的分类排序和去重。
2)Flume
3)Scribe
Scribe是Facebook开源的日志收集系统,在Facebook内部已经得到大量的应用。
它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文件系统等)上,以便于进行集中统计分析处理,它为日志的“分布式收集,统一处理”提供一个可扩展的,高容错的方案。
Scribe架构
Scribe agent
Scribe agent实际上是一个thrift client。
向scribe发送数据的唯一方法是使用thrift client,scribe内部定义了一个thrift接口,用户使用该接口将数据发送给server。
Scribe
Scribe接收到thrift client发送过来的数据,根据配置文件,将不同主题的数据发送给不同的对象。
存储系统
存储系统实际上就是scribe中的store。
网络数据采集方法:对非结构化数据的采集
网络数据采集是指通过网络爬虫或网站公开API等方式从网站上获取数据信息。
该方法可以将非结构化数据从网页中抽取出来,将其存储为统一的本地数据文件,并以结构化的方式存储。
它支持图片、音频、视频等文件或附件的采集,附件与正文可以自动关联。
除了网络中包含的内容之外,对于网络流量的采集可以使用DPI或DFI等带宽管理技术进行处理。
其他数据采集方法
对于企业生产经营数据或学科研究数据等保密性要求较高的数据,可以通过与企业或研究机构合作,使用特定系统接口等相关方式采集数据。
大数据分析工具:
Hadoop
Hadoop 是一个能够对大量数据进行分布式处理的软件框架。
但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。
Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。
Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。
Hadoop 还是可伸缩的,能够处理 PB 级数据。
此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。
Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。
用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。
它主要有以下几个优点:
1. 高可靠性。
Hadoop按位存储和处理数据的能力值得人们信赖。
2. 高扩展性。
Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
3. 高效性。
Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
4. 高容错性。
Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
Hadoop带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。
Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。