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

本篇文章是对于大数据的一些基本看法,以便让一些想学习大数据的朋友进一步去了解。

近年来大数据异常火爆,随着科技的不断更新迭代,大数据,成为了每天议论的热门话题。

去找度娘问什么是大数据,显示出来的结果长篇大论令人应接不暇,而且回答都比较偏抽象,一时半会儿也难以理解大数据到底是一个什么样的方向,所以我在这里给大家一些我个人对于大数据的理解和看法:

1)什么是大数据

大数据是在短时间内快速产生大量多种多样的有价值的

2)数据量过于巨大常规处理方法无法处理

垂直扩展:改变电脑内存的硬盘量,由于电脑硬盘装载有极限,所以在数据量巨大时也会发生问题。
横向扩展:指的是采购新的设备,和现有设备一起提供更强的负载能力。

3)大数据的5V特性

大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。

4)大数据时代带来什么巨大问题

大数据时代的问题是数据量多且大,这就使得存储的管理面临着挑战。基础架构是大数据首先面临的挑战,,虽然目前基础架构面临的挑战还小,但是随着大数据行业的发展,这种数据的增长将呈现爆炸式,就对传统的架构形成压迫。

在 这里插入图片描述

根据谷歌三大论文衍生出几种编程模型

MapReduce 分布处理 大规模的算法图形处理 文字处理
为了让MapReduce处理更快,产生了Spark
Spark类型有多种,分别如下:
Spark Core
SparkSql
SparkStreaming
Mllib
Graphx(Spark已经对其停止维护)

GFSHDFS 作为Apache Nutch的基础架构 是拥有高容错性的分布式文件系统

BigtableBHBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统

下面介绍一下HDFS的原理以及数据的读写和备份

在了解数据的读写之前首先要知道NameNode和DataNode分别负责什么:
Namenode 掌控全局 管理DataNode的信息 管理元数据 接收读写请求 与DataNode之间进行相应的通信
Datenode 存储数据 汇报自己的情况 接受client发出的安排

1、HDFS的组成

NameNode:Master节点(也称元数据节点),是系统唯一的管理者。负责元数据的管理(名称空间和数据块映射信息);配置副本策略;处理客户端请求
DataNode:数据存储节点(也称Slave节点),存储实际的数据;执行数据块的读写;汇报存储信息给NameNode
Sencondary NameNode:分担namenode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给namenode。注意:在hadoop 2.x 版本,当启用 hdfs ha 时,将没有这一角色
client:系统使用者,调用HDFS API操作文件;与NameNode交互获取文件元数据;与DataNode交互进行数据读写。注意:写数据时文件切分由Client完成

热备份:b是a的热备份,如果a坏掉。那么b立即运行代替a的
冷备份:b是a的冷备份,如果a坏掉。那么b不能立即代替a工作。但是b上存储a的一些信息,减少a坏掉之后的损失

2、HDFS构架原则

元数据与数据分离:文件本身的属性(即元数据)与文件所持有的数据分离
主/从架构:一个HDFS集群是由一个NameNode和一定数目的DataNode组成
一次写入多次读取:HDFS中的文件在任何时间只能有一个Writer。当文件被创建,接着写入数据,最后,一旦文件被关闭,就不能再修改
移动计算比移动数据更划算:数据运算,越靠近数据,执行运算的性能就越好,由于hdfs数据分布在不同机器上,要让网络的消耗最低,并提高系统的吞吐量,最佳方式是将运算的执行移到离它要处理的数据更近的地方,而不是移动数据

3、数据的写

接收文件
client会将文件进行切块 文件的大小/128M=block块数
向NameNode汇报块数 文件大小 文件权限 文件属主 文件上传时间
client切下一块128M的block块(默认128M,可以修改)
client会向NameNode去申请DataNode的信息
Natenode会返回一批负载不高的DateNode给client
client会向DataNode里面发送block并且做好备份
DateNode存放block块之后会像NameNode汇报情况

4、数据的读

Namenode会像client发送一个请求,client接受请求之后,会像Namenode申请节点信息(blockid)
Namenode会像client发送一些节点信息
client获取到节点信息之后去Datanode上拿去数据–就近原则(不会汇报给Namenode)

5、关于数据备份的注意事项

在存储时文件会切割成块(block):偏移量offset(byte)
Block分散存储在集群节点中
单一文件Bloca切割大小必须一致,文件和文件可以不一致
Bloca可以设置副本数,副本分三种不同节点中
副本数不要超过节点数量
文件上传可以设置Block副本数可以调整,大小不变
只支持一次写入多次读取,同一时刻只有一个写入者

6、关于数据备份的机制

  1. 集群内提交 在提交的节点上防止block 由Namenode直接提交给Datanode
    集群外提交 选择一个负载不高的节点进行存放 由Namenode让client去提交给Datanode 就近原则

  2. 放置在与第一个备份不同机架的任意节点上

  3. 放置在第二个机架的不同节点上

  4. client使用pipelien管道进行备份
    NameNode返回给client一些DataNode的信息后
    client会和这些DataNode形成一个管道,并且将block切割成一个个ackPackage(64K)
    DataNode会从管道中拿取相应的数据进行存储
    当存储完成之后,DataNode会向NameNode进行汇报

大数据使用到的一些基础应用程序

  • kafka
  • zookeeper
  • flume
  • hive
  • fink
  • storm
  • hbase
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值