02 04 05 06

02环境搭建

 

 

 

1、安装Linux操作系统

 

02 04 05 06

 

 

 

 

 02 04 05 06

 

 

 

 

 

 2、安装关系型数据库MySQL

02 04 05 06

 

 

 

 

3、安装大数据处理框架Hadoop,查看IP

02 04 05 06

 

 

04 Hadoop思想与原理

什么是hadoop

hadoop起源于开源网络搜索引擎Apache Nutch,后者本身也是Lucene项目的一部分。Nutch项目面世后,面对数据量巨大的网页显示出了架构的灵活性不够。当时正好借鉴了谷歌分布式文件系统,做出了自己的开源系统NDFS分布式文件系统。第二年谷歌又发表了论文介绍了MapReduce系统,Nutch开发人员也开发出了MapReduce系统。随后NDFS和MapReduce命名为Hadoop,成为了Apache*项目。从Hadoop的发展历程来看,它的思想来源于Google的三篇技术性论文,一是GFS:Goolgle File System分布式处理系统,这解决了Hadoop的存储问题;二是Mapreduce:分布式计算模型,这解决了Hadoop对数据进行计算处理的问题;三是BigTable,这解决了查询分布式存储文件慢的问题。

Hadoop是一个对海量数据存储和海量数据分析计算的分布式系统。
Hadoop 1.x
            海量数据存储 ----> HDFS
            海量数据分析计算 ----> MapReduce
       Hadoop 2.x 增加
            资源调度系统 ----> Yarn
从hadoop最初的原型来看,hadoop已经远远超过了本身的批处理。从广义上来说,hadoop现在可以是指更广泛的一个hadoop生态了,而不仅仅是HDFS,MapReduce和Yarn。例如Hive,Hbase,Flume,Sqoop等等项目都属于这个生态。

 

2.简要描述名称节点、数据节点的主要功能及相互关系、名称节点的工作机制。

02 04 05 06

 

 

2.1主要功能

名称节点最主要功能:名称节点记录了每个文件中各个块所在的数据节点的位置信息。

数据节点:是分布式文件系统HDFS的工作节点,负责数据的存储和读取,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表

2.2相互关系

名称节点是HDFS主从结构中主节点上运行的主要进程,它指导主从结构中的从节点,数据节点执行底层的I/O任务。

2.3名称结点的工作机制

1.在启动时,系统会将FsImage中的内容加载到内存中去,之后再执行EditLog中的操作,使得内存中的数据和实际同步,存在内存中的支持客户端的读。
2.一旦在内存中成功建立文件系统元数据的映射,则创建一个新的FsImage文件和一个空的EditLog文件
3.名称节点起来之后,HDFS中的更新操作会重新写到EditLog文件中

 

3梳理清楚HDFS的 结构与运行流程,以图的形式描述

02 04 05 06

 

 

读操作

02 04 05 06

 

写操作

02 04 05 06

4.简述HBase与传统数据库的主要区别

Hbase和传统数据库的区别
1.数据类型:Hbase只有简单的数据类型,只保留字符串;传统数据库有丰富的数据类型。

2.数据操作:Hbase只有简单的插入、查询、删除、清空等操作,表和表之间是分离的,没有复杂的表和表之间的关系;传统数据库通常有各式各样的函数和连接操作。

3.存储模式:Hbase是基于列存储的,每个列族都由几个文件保存,不同列族的文件是分离的,这样的好处是数据即是索引,访问查询涉及的列大量降低系统的I/O,并且每一列由一个线索来处理,可以实现查询的并发处理;传统数据库是基于表格结构和行存储,其没有建立索引将耗费大量的I/O并且建立索引和物化试图需要耗费大量的时间和资源。

4.数据维护:Hbase的更新实际上是插入了新的数据;传统数据库只是替换和修改。

5.可伸缩性:Hbase可以轻松的增加或减少硬件的数目,并且对错误的兼容性比较高;传统数据库需要增加中间层才能实现这样的功能。

6.事务:Hbase只可以实现单行的事务性,意味着行与行之间、表与表之前不必满足事务性;传统数据库是可以实现跨行的事务性。

Hbase的优点:
1.列可以动态增加,并且当列为空的时候就不存储,节省存储空间。

2.Hbase自动切分数据,使得数据存储自动具有水平扩展能力。

3.Hbase可以支持高并发顺序读写操作(因为其有内存的缓存机制)。

Hbase的缺点:
1.不能支持条件查询,只支持按照row key来查询

2.暂时不能支持Master server的故障切换,当Master宕机后,这个存储系统都会挂掉。

5.梳理HBase的结构与运行流程,以用图与自己的话进行简要描述,图中包括以下内容:

  • Master主服务器的功能
  • Region服务器的功能
  • Zookeeper协同的功能
  • Client客户端的请求流程
  • 四者之间的相系关系
  • 与HDFS的关联

02 04 05 06

 

 

(1)Master主服务器的功能

管理用户对Table表的增、删、改、查操作;

管理HRegion服务器的负载均衡,调整HRegion分布; 

(2)Region服务器的功能

HRegion部分由很多的HRegion组成,存储的是实际的数据。每一个HRegion又由很多的Store组成,每一个Store存储的实际上是一个列簇(ColumnFamily)下的数据。 

(3)Zookeeper协同的功能

zookeeper是hbase集群的"协调器"。由于zookeeper的轻量级特性,因此我们可以将多个hbase集群共用一个zookeeper集群,以节约大量的服务器.

(4)Client客户端的请求流程

Client请求Zookeeper确定meta表所在的RegionServer所在的地址,接着根据Rowkey找到数据所归属的RegionServer;用户提交put或delete请求时HbaseClient会将put或delete请求添加到本地buffer中,符合一定条件会通过异步批量提交服务器处理。

(5)与HDFS的关联

HDFS是GFS的一种实现,他的完整名字是分布式文件系统,类似于FAT32,NTFS,是一种文件格式,是底层的,Hadoop HDFS为HBase提供了高可靠性的底层存储支持。

HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统

6.完整描述Hbase表与Region的关系,三级寻址原理。

四者之间的相系关系:

①Hbase集群有两种服务器:一个Master服务器和多个RegionServer服务器。

②Master服务负责维护表结构信息和各种协调工作,比如建表、删表、移动region、合并等操作。

③客户端获取数据是由客户端直连RegionServer的,所以Master服务挂掉之后依然可以查询、存储、删除数据,就是不能建新表了。

④RegionServer非常依赖Zookeeper服务,Zookeeper管理Hbase所有的RegionServer信息,包括具体的数据段存放在那个RegionServer上。

⑤客户端每次与Hbase连接,其实都是先于Zookeeper通信,查询出哪个RegionServer需要连接,然后再连接RegionServer;客户端从Zookeeper获取了RegionServer的地址后,会直接从RegionServer获取数据。

与HDFS的关联:

RegionServer保存的数据直接存储在Hadoop的HDFS上。

 

05 HDFS Java API应用实例

一、在Ubuntu系统中安装和配置Eclipse

02 04 05 06

 

 

二、利用hadoop 的java api,向HDFS写一个文件。写入内容含自己的姓名学号信息

02 04 05 06

 

 

 

 

 

三、从HDFS读取一个文件的内容并显示。

 02 04 05 06

 

 

06 HBase安装与伪分布式配置

 

启动HDFS,启动Hbase

02 04 05 06

 

 02 04 05 06

进入shell界面

02 04 05 06

停止Hbase,停止HDFS运行

02 04 05 06

上一篇:HDFS,YARN,MapReduce三者之间的关系


下一篇:做一个社交商城需要多少钱