大数据概览以及当下实用的主流开发

首先我们要知道什么是大数据
大数据顾名思义:就是短时间内快速产生大量多种多样的有价值的信息 (个人理解)
大家都知道双十一,双十二淘宝产生的交易数量,数据不仅多而且还很杂,有可能在某一秒就可以产生上G或者上T的数据。而怎么把这些数据快速并且有效的存储起来,并把其中有价值的提取出来?

有两种可以解决数据量过大的问题

1、垂直扩展:就是指改变你电脑内存的硬盘量,由于电脑硬盘装载有限制,所以配合横向扩展使用
2、横向扩展:多台电脑或者服务器连接到一起使用,简单廉价的服务器或者pc端都可以

什么是Hadoop?

Hadoop的安装模式

1、本地模式 1台
2、伪分布模式 1台
3、全分布模式:最少3台
源自于百度

根据谷歌的三大论文衍生出

MapReduce 中文版
Google File System 中文版
BigTale 中文版

GFS ------ HDFS分布式文件系统 ---------- 分布式的存储
MapReduce ----------- 分布式的处理
BigDate ---------- HBase

HDFS主从架构
      主节点 (Namenode)
      从节点(Datenode)
以及一个可有可无的 client
HDFS的读写机制:
                        存文件
                        读文件
为了解决安全问题:
                        备份
初步掌握HDFS的架构及原理
来源于百度

yarn — 资源和任务调度

为了让MapReduce (批处理)处理更快,产生了spark
spark 有很多种
          Spark Core
          SparkSql — 可以使用sql处理
          SparkStreaming — 流式处理
          Mllib — 机器学习库
          graphx—Spark已经停止维护

批处理:就比如说我们坐那种直上直下的电梯,假如你想坐的话你在一楼,可是电梯在五楼,那么你就需要等一会,在你等的期间别人也想坐电梯也在等,等电梯来了再一起把你们带上去
流式处理:比如商城或者地铁站的电梯,他是不管你有没有人他都在跑,并且只要你要坐你不需要等你上去他就走

HDFS 分布式的存储
yarn 资源和任务的调度
MapReduce 计算引擎 分布式计算框架(计算向数据移动–>移动计算而非移动数据)
mapreduce 批处理:将任务分批次处理,类似升降电梯,有等待时间
spark:
spark core spark的核心
sparkSQL 可以执行SQL语句
sparkStreaming 流式处理:没有等待时间,时时任务时时处理得到结果,类似电梯
mllib 机器学习库
hive 是Hadoop的一个数据仓库工具 ,可以执行SQL语句
zookeeper 分布式应用程序协调服务
kafka 一种高吞吐量的分布式发布订阅消息系统
flume 一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统
flink 一种流处理框架 Flink以数据并行和流水线方式执行任意流数据程序
storm 分布式实时计算系统
hbase 一个分布式的、面向列的开源数据库

大数据的5v特性:

一、Volume:数据量大,包括采集、存储和计算的量都非常大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。

二、Variety:种类和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。

三、Value:数据价值密度相对较低,或者说是浪里淘沙却又弥足珍贵。随着互联网以及物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何结合业务逻辑并通过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题。

四、Velocity:数据增长速度快,处理速度也快,时效性要求高。比如搜索引擎要求几分钟前的新闻能够被用户查询到,个性化推荐算法尽可能要求实时完成推荐。这是大数据区别于传统数据挖掘的显著特征。

五、Veracity:数据的准确性和可信赖度,即数据的质量。

Volume(大量)        Velocity(高速)        Variety(多样)
Value(低价值密度)        Veracity(质量)

不管是数据上传还是下载都是按照 block块 的形式将大文件进行相应的存储
   1.x中数据块的大小是64M
   2.x中数据块的大小是128M



备份是为了解决数据安全问题


1、文件线性切割成块(block):偏移量 offset(byte)

文件平均切成N块,向上取整,比如你装水,有13.1的水,每瓶只能装1,装完13了后还剩下0.1,那么还要取一个完整的瓶子来装,就是装了14个瓶,
偏移量:就是指 数据存到块中,做个标记id,然后可以根据id找到这个数据

2、block 分散存储在集群结点中

集群里有机架N个,每个机架里还有N个服务器,每个服务器就相当于一个节点,每个机架里面只能有一个NameNode,多个DateName,每个服务器里可以都有DateName,其中有一个服务器可以包括一个NameNode和一个DateName
这里假如有两个机架,每个机架里有四个服务器,备份在机架1里的NameNode节点上一个,剩下的备份在机架2上,并且要备份的节点不能一样

3、单一文件block大小一致,文件与文件可以不一致

一个文件切成block块,切的大小要一模一样
文件和文件的大小就随意了

4、block可以设置副本数,副本分散在不同的节点中

在切块的同时可以设置你要备份的数量,副本最好分散在不同的节点中,以防数据丢失或者损坏,
为什么不放在一个节点呢? 因为万一这个节点的机器损坏了或者出现问题而你现在刚好需要这个数据,那么你就可以从备份获取,不会因为你出现问题的节点而读取不了你所需要的数据

5、副本数不要超过节点数量

备份的数量不要超过你节点的数量,假如你有3个节点,可你想备份4份甚至更多,那么肯定在有一个节点里面你要备份2份甚至更多,如果这个节点损坏那么还是读取不了,所以不要做多于节点的备份

6、文件上传可以设置block大小和副本数

在文件切割成block块的时候可以设置block 块的大小,以及你要备份的数量

7、已上传的文件block副本数可以调整,大小不变

面对已经切割好的block块,他的block的大小以及你要备份的数量不可以改变,只有在你切割block块的时候可以设置block块的大小以及你要备份的数量

8、只支持一次写入多次读取,同一时刻只有一个写入者

同一时间只支持一次写入多次读取,可以有很多人读,但只能有一个人写,不然就乱套了

写操作
1、有一个大文件
2、client会将大文件进行切块              大文件的大小/128M=block块数
3、向NameNode汇报
                                    1.块数
                                    2.文件的大小
                                    3.文件的权限
                                    4.文件的属主
                                    5.文件的上传时间
4、client切下一块128M
5、client会向NameNode去申请资源 ---- DateNode的信息
6、NameNode会返回一批负载不高的DateNode给client
7、client会向DateNode里面发送block并且做好 备份
8、DateNode存放block块之后会向NameNode汇报情况

读请求
1、NameNode会向client发送一个请求,client接收到请求之后,会向NameNode去申请节点信息(blockid)
2、NameNode会向client发送一些节点信息
3、client获取到节点信息之后去DateNode上拿取数据 – 就近原则

备份机制

1、集群内提交      在提交的节点上放置block
      集群外提交      选择一个负载不高的节点进行存放
2、放置在与第一个备份不同机架的任意节点上
3、放置在第二个机架的不同节点上
在这里插入图片描述

pipeline 管道
1、NameNode在返回给client一些DateNode的信息之后
2、client会和这些DateNode形成一个管道并且将block块切割成一个个ackPackAge(64K) 大小的块传输
3、DataNode会从管道中拿取相应的数据进行存储
4、当存储完成之后,DataNode会向NameNode进行汇报

比如client给3个DateNode一份文件让他们存储起来,平常就是一个文件发三次,这样造成浪费以及不必要的意外,但是如果用pipeline管道,把文件切成ackPackAge再在client和DateNode之间连接一个管道这样数据传输就会快而且还很安全

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值