Hadoop文件系统系统基础知识

来源:互联网 发布:通联数据面经 编辑:程序博客网 时间:2024/06/04 08:07

一、Hadoop云计算系统

1、对Hadoop体系结构认知

       官方的解释就不多说了,只谈自己的理解。

       现在有很多公司都推出了自己的云计算平台,如IBM、Amazon、Microsoft。Hadoop是Apache组织的一个分布式框架,是Google的云计算平台的开源实现。

       Hadoop主要由以下几个子项目构成:

(1)   Hadoop Common:原来的Hadoop Core,是Hadoop项目的计算核心,其他的子项目都是在这个核心的基础上发展的。

(2)   Avro:Hadoop的RPC(Remote Procedure Call ,远程过程调用)方案。

(3)   Chukwa:一个用来管理大型分布式系统的数据采集系统。

(4)  HbaseHadoopDatabase支持结构化数据存储的分布式数据库。

(5)  HDFSHadoopDistributed File System,高吞吐量的分布式文件系统。

(6)   Hive:提供数据摘要和查询功能的数据仓库。

(7)  MapReduce:大数据的分布式处理模型。

(8)   Pig:建立在MapReduce上的高级数据流语言。

(9)   ZooKeeper:用于解决分布式系统的一致性问题。

 

   

                                            Hadoop云计算系统                                           

                                             Google云计算系统                                               

Hadoop HDFS

Google GFS

Hadoop MapReduce

Google MapReduce

Hadoop HBase

Google Bigtable

Hadoop ZooKeeper

Google Chubby

Hadoop Pig

Google Sawzall

 两个系统的对比

2、Hadoop的优点

1、开源:就不多说了

2、经济:分布式运行到多个廉价PC上

3、可扩展:存储可扩展和计算可扩展

4、可靠:HDFS的备份恢复机制和MapReduce的任务监控机制保证分布式处理的可靠性。

5、高效:分布式文件的高效数据交互,各节点的动态数据交互并保证动态平衡(目前脑子没概念)。

二、HDFS

1、体系结构

HDFS(HadoopDistributed File System)是Hadoop系统底层的分布式文件管理系统。主要包括NameNode、DataNode、元数据及数据块的操作。

对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在HDFS内部提供元数据服务;DataNode,它为 HDFS提供存储块。由于仅存在一个 NameNode,具有单点失效风险(SinglePoint Of Failure),这也是HDFS的一个缺点。

存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode可以控制所有文件操作。HDFS内部的所有通信都基于标准的 TCP/IP协议。

          

    图 2-1  结构原理图(摘自官网)

3、相关概念

NameNode通常在 HDFS实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode决定是否将文件映射到DataNode上的复制块上。对于最常见的 3个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。NameNode管理文件系统的元数据,只有表示DataNode和块的文件映射的元数据经过 NameNodeDataNode存储实际的数据。客户端联系NameNode以获取文件的元数据,实际的 I/O事务并没有经过 NameNode,而是直接和DataNode交互。当外部客户机发送请求要求创建文件时,NameNode会以块标识和该块的第一个副本的DataNode IP地址作为响应。这个 NameNode还会通知其他将要接收该块的副本的DataNode

NameNode在一个称为 FsImage的文件中存储所有关于文件系统名称空间的信息。这个文件和一个包含所有事务的记录文件(这里是EditLog)将存储在 NameNode 的本地文件系统上。FsImage EditLog文件也需要复制副本,以防文件损坏或 NameNode系统丢失。

       DataNodeDataNode也是一个通常在 HDFS实例中的单独机器上运行的软件。Hadoop集群包含一个 NameNode和大量 DataNodeDataNode通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。DataNode响应来自 HDFS客户机的读写请求。它们还响应来自 NameNode的创建、删除和复制块的命令。NameNode依赖来自每个 DataNode的定期心跳(heartbeat)消息。每条消息都包含一个块报告,NameNode可以根据这个报告验证块映射和其他文件系统元数据。如果 DataNode不能发送心跳消息,NameNode将采取修复措施,重新复制在该节点上丢失的块。

三、Hbase

1、Hbase的数据模型

Row Key

Timestamp

Column Family

 

 

表的主键,默认升序

 

 

操作对应数据的时间戳

水平方向有一个或多个列族,每个列族由任意多列组成,并且支持动态扩展,数据以二进制形式存储.

2、内部处理机制

Table随着记录数不断增加而变大后,会逐渐分裂成多份splits,成为regions,一个region由[startkey,endkey)表示,不同的region会被Master分配给相应的RegionServer进行管理。

HBase中有两张特殊的Table,-ROOT-和.META.

.META.:记录了用户表的Region信息,.META.可以有多个regoin

-ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region

Zookeeper中记录了-ROOT-表的location

当Client访问用户数据之前需要首先访问zookeeper,然后访问-ROOT-表,接着访问.META.表,最后才能找到用户数据的位置去访问,中间需要多次网络操作,不过client端会做cache缓存。

3、常用的操作

觉得和以前的SQL原理类似,有DML和DDL,还有权限管理以及工具命令等。常用的有create,describe,disable,drop,list,scan,put,get,delete,deleteall,count,status,grant,revoke,user_permission等。

原创粉丝点击