什么是hadoop
Hadoop是一款开源框架,可以在多台具有基本计算节点组成的集群构成的分布式环境上处理大数据。它既可以在单服务节点,也可以在多服务节点上运行,每个节点都会提供局部计算和存储功能。
本部分主要会介绍大数据
Big Data
什么是Big Data?
由于新技术,新设备和通信方式的迅速发展,由人类所生成的数据快速增长。大约在2003年初的时候,所具有的数据量大概是50亿GB;而2011年的时候,生成相同等级的数据量大概需要2天,2013年更是缩短到了10分钟。这个增长比率是非常惊人的。
Big Data意味着真正的大数据,它的数据量庞大到传统计算技术都已经不能胜任。但现在人们口中的Big Data并不仅仅意味着数据,而是逐步演变成了包含各种工具,技术和框架的一门学科。
Big Data所包含的数据来自于不同应用和设备。比如:
社交数据:Facebook和Twitter等社交媒体所持有的信息,全球数百万的人们所发布的消息。
交通数据:包括车辆,路程等信息
搜索引擎数据:搜索引擎从不同数据库中所获取到的数据。
这些大数据最显著的特征莫过于高容量,高速率,数据种类多样性。这些数据主要分为三种:
- 结构化数据:
- 半结构化数据:XML
- 非结构化数据:Word, PDF, Text
Big Data的优势
Big Data对于我们生活是非常重要的。
- 可以利用Big Data来分析它们广告,营销活动等在市场中所获的的现状等。
- 使得公司可以轻松利用它们海量的数据,并对其分析,为消费者提供更加量身订做的服务。
Big Data技术
大数据技术可以提供更加准确的分析,降低决策成本,时间成本,商业风险等。为了能够有效利用Big Data,需要一种可以实时管理和处理海量结构化和非结构话的数据,而且必须有效保证数据隐私和安全性。为了能够使用big data,不同公司都提供了自己的解决方案。
在研究处理Big Data的同时,还研究了下面的两类技术
处理Big Data
MongoDB之类的系统便提供了对捕获和存储的实时数据进行处理的能力。
NoSQL大数据系统利用近几年兴起的云计算架构的优势来进行复杂运算。它使得大数据负载的实现更加容易管理,更加廉价,更加快速。
部分NoSQL系统还对实时数据提供了与模式相关的模块,可以很方便的实现数据科学计算。
分析Big Data
这类技术包含了像Massively Parallel Processing(MPP)数据库系统和Mapreduce。Mapreduce提供了一种可以回溯和复杂分析的能力。
MapReduce提供了一种全新的方式来分析数据,是对由SQL所提供的数据分析能力的一种补充。基于MapReduce的系统具有极大的可扩展性,可以实现从单节点到数百万节点的部署。
Operational vs. Analytical Systems
Operational | Analytical | |
Latency | 1 ms - 100 ms | 1 min - 100 min |
Concurrency | 1000 - 100,000 | 1 - 10 |
Access Pattern | Writes and Reads | Reads |
Queries | Selective | Unselective |
Data Scope | Operational | Retrospective |
End User | Customer Data | Scientist |
Technology | NoSQL | MapReduce, MPP Database |
Big Data的挑战
主要的挑战如下:
- 捕获数据
- 策略
- 存储
- 搜索
- 分享
- 传输
- 分析
Big Data解决方案
传统方式
这种方式之下,企业会使用一个计算机去存储和处理数据,数据会被存储在类似于Oracle数据库,MS SQL服务器或DB2之类的数据上面,通过计算机进行对数据进行处理,然后将处理结果展示给用户。
这种方案当数据量比较小的时候是非常不错的,但是当数据量上升超过处理器的处理极限的时候,这种方式明显是不可取的。
Google’s Solution
Google使用了MapReduce算法来解决这个问题,该算法将所有的任务分成若干小部分,然后将每小部分任务分给网络上的计算节点,然后再收集结果,形成最终结果。
Hadoop
Hadoop使用MapReduce算法运行程序,数据会被放置在不同的CPU节点并行处理,简短来说Hadoop可以在计算机集群上面运行程序,可以实现庞大数据的复杂统计分析。