初学Hadoop大数据

一.大数据的特征

1.海量性:大数据指具有海量性特点的数据,即指存储在硬盘、内存等介质中的数据量巨大,而且最典型的海量性就是容量大,可以达到PB(即千兆字节),TB(即万兆字节)甚至更大。

2.多样性:大数据数据来源多样化,可以来自各方面,包含传统结构化数据、半结构化数据、非结构数据等,结构化数据指具有完整性、确定性等的典型的数据表,半结构化数据则指日志类等具有不定性的记录,非结构化数据则指图片、视频等文本信息。

3.高速性:由于大数据的海量性与多样性,大数据的处理和分析需要具有高速的处理能力,要求处理和存储等时间应该控制在一秒内,必须满足实时处理能力。

4.可视化:大数据技术作为信息时代最为重要的自身特点之一,其高效的可视化技术非常重要,可以有效的反映出数据里面潜在的规律性和趋势,进而更好的帮助用户更准确、快速的完成分析任务

 

 

二.结构化数据与非结构化数据

结构化数据和非结构化数据是两个不同的概念,它们在数据处理和分析中扮演不同的角色。在数据处理和分析中,需要根据数据的类型和结构进行相应的处理和分析,以确保数据的有效性和准确性。

69bbe18062604ed3a25b3f9763db2b30.jpeg

 1. 概述不同

 

结构化数据是指按照固定格式和规则组织的数据,例如表格、数据库等。

非结构化数据则是指没有固定格式和规则的数据,例如文本、音频和视频等。

 

2. 含义不同

 

结构化数据是按照固定格式和规则组织的数据。

例如,电子表格中的数据就是结构化数据,因为它们按照一定的列和行组织,并且每个单元格都有自己的数据类型和格式。

 

非结构化数据是没有固定格式和规则的数据。

例如,一篇文章中的文本就是非结构化数据,因为它没有固定的格式和规则,也没有明确的数据类型和格式。

 

3.. 组织方式和数据类型不同

 

结构化数据按照固定格式和规则组织,具有明确的数据类型和格式,而非结构化数据没有固定的格式和规则,也没有明确的数据类型和格式。此外,结构化数据可以方便地进行处理和分析,而非结构化数据则需要进行特殊的处理和分析。

 

 

三.Hadoop生态圈

其生态图如下:

da5ef809a1004b4d8242e4cd551148fa.jpeg

 *Sqoop:一款开源工具,主要用在Hadoop、Hive与传统数据库(Mysql)间进行数据传递,可以将关系型数据库数据导入到Hadoop的HDFS中,也可以从HDFS中导入关系型数据库中;

*Flume:一个高可用、高可靠的分布式海量日志采集、聚合和传输系统,支持在日志系统中定制各类数据发送方,用于收集数据;

*Kafka:一种高吞吐量的分布式发布订阅消息系统;

*HBase:一个建立在HDFS之上,面向列的针对性结构化数据的可伸缩、高可靠、高性能、分布式的动态数据库,保存的数据可以使用Mapreducer来处理,将数据存储和并行计算完美的结合在一起;

*Storm:对数据流做连续查询,在计算时就将结果以流动形式输出给用户,用于“连续计算”;

*Spark:一种基于内存的分布式计算框架,与Mapreducer不同的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法,内部提供了大量的库,如 Spark Sql、Spark Streaming等;

*Fiilnk:一种基于内存的分布式计算框架,用于实时计算场景较多;

*Oozie:一个管理hadoop job 的工作流程调动管理系统,用于协调多个MapReducer任务的执行;

*Hive:基于Hadoop的一个数据仓库工具,定义了一种类似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。通常用于离线分析。

*Impala:用于处理存储在Hadoop集群中大量数据的MPP(大规模并行处理)SQL查询引擎,与Hive不同,不基于MapReducer算法。它实现了一个基于守护进程的分布式结构,负责在同一台机器上运行的查询执行所有方面,执行效率高于Hive。

 

 

四.Hadoop hdfs架构

1 HDFS概述

1.1 简介

HDFS(Hadoop Distributed File System),它是一个文件系统

 

HDFS的使用场景:适合一次写入,多次读出的场景。

 

1.2 特点

优点:

 

       1.大规模处理数据

       2.多副本机制提高可靠性

       3.高容错性:副本自动补全周期:6小时或集群重启

缺点:

        1.不适合低延时数据访问,比如毫秒级的存储数据

           原因:结点间的数据访问涉及网络io,被带宽和距离,丢包(校验)等因素限制
         2.无法高效的对大量小文件进行存储:

            1)小文件的元数据会占用nn大量内存

             2)存储的寻址时间>读取时间

          3.不支持并发写入和随机修改:

             1)不允许多个线程同时写一个文件–>读读可并发;读写可并发;写(append)写不能并发;不可上传同一路径的同一文件

              2)仅支持数据append(追加),不支持文件的随机修改。

                  随机修改:只能下载后修改再上传

1.3 组成架构

b753703957574a4d9e3871a6da47bf69.png

 nn(管理者):

1.管理HDFS的名称空间

2.配置副本策略

3.管理数据块映射信息

4.处理客户端读写请求

 

dn(执行者):

1.存储实际的数据块

2.执行数据块的读/写操作

 

2nn(辅助nn)

客户端:

发送读写请求,与nn和dn交互,上传(写)之前先将文件切块;

这里客户端不仅指发送指令的linux系统,windows环境下通过设置依赖亦可实现客户端环境,甚至在hdfs里nn的9870端口的web界面操作也可以对HDFS增删查

 

 

五.HDFS读的流程

be870fcdd19c488fa4ee9cbd1266bc26.jpeg

 1.客户端通过DistributedFileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。

 

2.挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。

 

3. DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。

 

4.客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。

 

从HDFS读数据过程中我们可以分析出其优势在于客户端可以直接连接到DataNode进行数据的读取,这样由于数据分散在不同的DataNode上,就可以同时为大量并发的客户端提供服务。而NameNode作为管理节点,只需要响应数据块位置的请求,告知客户端每个数据块所在的最佳DataNode即可(DataNode的位置信息存储在内存中,非常高效的可以获取)。这样使得NameNode无需进行具体的数据传输任务,否则NameNode在客户端数量多的情况下会成为瓶颈。‍

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值