随着互联网飞速的发展,海量的数据由现有的软件工具无法高效、及时、准确的进行捕捉、存储、管理、分析。所以大数据和云计算的出现改变了现有的服务模式,降低了拥有成本,改变了人类的生活习惯。

<大数据概述>

通过海量的数据分析,提供给用户良好的决策和支撑,并推荐符合用户生活习惯的产品,并在此过程中不断的完善自身的算法,从而改善用户体验。

<云计算概述>

云计算是一种按使用量付费的模式,该模式提供了可用的、便捷的、按用户需求的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互


<大数据存储单位>

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开发了隶属于HadoopMapReduce分布式计算框架为海量的数据提供了计算。同年还发布了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. 1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
  2. 2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
  3. 3.高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
  4. 4.高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
  5. 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








Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐