随着互联网飞速的发展,海量的数据由现有的软件工具无法高效、及时、准确的进行捕捉、存储、管理、分析。所以大数据和云计算的出现改变了现有的服务模式,降低了拥有成本,改变了人类的生活习惯。
<大数据概述>
通过海量的数据分析,提供给用户良好的决策和支撑,并推荐符号用户生活习惯的产品,并在此过程中不断的完善自身的算法,从而改善用户体验。
<云计算概述>
云计算是一种按使用量付费的模式,该模式提供了可用的、便捷的、按用户需求的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互
<大数据存储单位>
Byte、KB、MB、GB、TB 、PB、EB、ZB、YB、DB、NB ..........
1Byte = 8 Bit
1 KB = 1,024 Bytes
1 MB = 1,024 KB = 1,048,576 Bytes
1 GB = 1,024 MB = 1,048,576 KB = 1,073,741,824 Bytes
1 TB = 1,024 GB = 1,048,576 MB = 1,073,741,824 KB = 1,099,511,627,776 Bytes
1 PB = 1,024 TB = 1,048,576 GB =1,125,899,906,842,624 Bytes
1 EB = 1,024 PB = 1,048,576 TB = 1,152,921,504,606,846,976 Bytes
1 ZB = 1,024 EB = 1,180,591,620,717,411,303,424 Bytes
1 YB = 1,024 ZB = 1,208,925,819,614,629,174,706,176 Bytes
我们在面对海量的大数据情况下,主要涉及到两个方面的问题:
第一:如何存储海量的数据?
第二:如何计算存储的海量数据?
在大数据量的环境下促生技术的变革和进步,Hadoop由此运营而生。
<Hodoop概述>:
Hadoop是一个由java开发处理海量数据的分布式系统平台的开源框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。
<Hadoop起源>
2003年Google发布分布式文件系统(GFS)论文报告后,Doug
Cutting借由其思想开发了HDFS分布式文件系统,为海量大数据提供了存储
2004年Google发布了MapReduce分布式计算框架论文后,Doug
Cutting开发了隶属于Hadoop的MapReduce分布式计算框架为海量的数据提供了计算。同年还发布了bigTable大规模分散的列数据库,此数据是半结构化的数据库。
2005年Hadoop由
Apache Software Foundation 捐献给Apache基金会,作为Lucene子项目的Nutch的一部分
2006
年 3 月份,Map/Reduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中
<Hadoop名字的起源>
Hadoop这个名字不是一个缩写,而是一个虚构的名字。Doug
Cutting是根据他给孩子的 一个棕黄色的大象玩具命名的。
<Hadoop的优势>
Hadoop是一个能够对海量大数据进行分布式处理的框架,具有:
- 1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
- 2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
- 3.高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
- 4.高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
- 5.低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低
<Hadoop核心架构>
Hadoop = HDFS+MapReduce
HDFS和MapReduce
HDFS提供了海量数据的存储,MapReduce提供了对数据的计算。
HDFS
是以块为基本存储单位,块的通常大小为64M,如果大于64M就把文件分成块,每个块分别存储三个副本,分别复制到多个计算机中,在这个复制的过程中采用了一种"机架感知策略"
MapReduce(离线分析、批处理、并行)
处理大量半结构化数据集合的编程模型
MapReduce应用程序至少包含
3 个部分:一个 Map 函数、一个 Reduce 函数和一个 main 函数。main 函数将作业控制和文件输入/输出结合起来
<Hadoop生态圈>
HDFS:分布式文件系统
MapReduce:分布式并行计算框架
HBase :类似于Google BigTable分布式NoSQL列数据库
Hive:数据仓库工具,由FaceBook贡献
Zookeeper:分布式应用程序协调服务,提供类似Google
Chubby的功能,由Facebook贡献。
pig:大数据分析平台
Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的IPC机制。
Ambari:Hadoop管理工具,可以快捷的监控、部署、管理集群。
Sqoop:于在HADOOP与传统的数据库间进行数据的传递。
Flume:是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统
<Hadoop集群>
Hadoop的集群主要由
NameNode,DataNode,Secondary NameNode,JobTracker,TaskTracker组成.
NameNode中记录了文件是如何被拆分成block以及这些block都存储到了那些DateNode节点.
NameNode同时保存了文件系统运行的状态信息.
DataNode中存储的是被拆分的blocks.
Secondary NameNode帮助NameNode收集文件系统运行的状态信息.
JobTracker当有任务提交到Hadoop集群的时候负责Job的运行,负责调度多个TaskTracker.
TaskTracker负责某一个map或者reduce任务.
<流式大数据库处理框架>
Spark
Storm
Samza