您的位置:首页 > 运维架构

Hadoop——HDFS

2016-08-21 21:56 225 查看
Hadoop是谷歌大数据技术(Google File System、MapReduce、BigTable)的开源实现和扩展,主要由HDFS(Hadoop
DistributedFile System)、MapReduce、HBase组成。初衷是源于爬取数据太多,无法使用普通的RDBS进行存储,05年问世以解决海量数据爬取和存储的需要。

 
Bigtable也使用java语言进行实现,最终进化成为大数据存储DB-HBase。

 一、传统数据 VS 大数据

有别于传统数据GB-TB级的数据量、且增长稳定、数据类型结构化、用于统计报表的特点,大数据一般数据量到达TB-PB级别、持续且快速产生、半结构化或非结构化的多维数据、可用于数据挖掘和预测性分析。

 
例如城市规划中,通过对某区域人口的工作性质、收入、消费习惯等数据进行分析,从而确定是否在该区域建立大型商场;又例如通过对用户的购买清单、商品点击频率、停留时间为该用户推荐可能喜欢的商品或新闻信息等。

 二、Hadoop生态圈



Core:一套分布式File System,支持Map-Reduce的计算框架

Avro:一种用于支持大数据应用的数据格式

HDFS:hadoop分布式文件系统

Map/Reduce:用于并行处理T级数据集的软件框架

Zookeeper:高可用的分布式协同系统

Pig:建立于Hadoop core 之上的为并行计算环境提供的一套数据工作流语言和执行框架

Hive:分布式数据仓库,提供了类似于SQL语法的HiveQL语言进行数据查询。

Hbase:建立于Hadoop core 之上的数据库服务

Flume:分布式海量日志聚合系统,用于手记数据且支持在系统中定制各类数据发送方。

Sqoop:Apache下用于RDBMS和HDFS之间数据导入的工具。

三、Hadoop功能

作为开源的分布式存储和分布式计算框架,顾名思义hadoop的主要作用即在于对海量数据实现分布式存储和分布式计算,hadoop中两个核心组成-HDFS分布式文件系统,主要用于存储海量数据,MapReduce并行处理框架,主要实现任务的分解和调度。

四、HDFS-核心组件

NameNode

1、  存储文件元数据(文件名、属性、权限),同时保存DataNode与Block间的映射关系

2、接收客户端度服务

NameNode包括以下文件:

fsimage:元数据镜像文件,存储某一时段NameNode内存元数据信息即保存了最新的元数据checkpoint。

edits:操作日志文件。

fstime:保存最近一次checkpoint的时间

Secodary NameNode

        SecondaryNameNode用于对edits和fsimage文件进行合并操作。

DataNode
       

        存储数据(Block)文件内容

Block:固定大小的文件单元,HDFS的文件被分成块进行存储,默认每个block都有3个相同的副本文件,一个block64MB,这也是HDFS数据冗余机制

五、HDFS读写流程

读流程:






1、客户端发送请求,通过调用DistributedFs接口的openAPI读数据的函数-发送到namenode
2、namenode中存储了文件元数据,datanode与block的映射关系,返回所有的block的信息,返回后,客户端又开始发送请求到FSDATA,开始读取数据(读取任一一个datanode副本就可以),也可并发的读取其他block的datanode数据。
写流程:




写到具体的databode中,完了写完一个datanode,这个写好的datanode开启一个线程,往其余两个照着这个block块同步数据。三个写完了,第一个datanode向客户端返回完成写操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: