关于大数据的一些简单了解

一 :大数据:关于大数据没有一个非常准确的定义。但是通过对他的一些简单的了解,有一个简短的概括
大数据是在短时间内能快速产生大量的并且多种多样的有价值的信息。
随着社会的发展,人们产生的数据量也越来越大,越来越多。那么这就造成了一个重要的问题。数据量过大我们要如何去解决?
一些优秀的程序员提出,第一种:可以垂直扩展:关于垂直扩展,简单一点的解释就是,如果我们有一台电脑,当我们需要大量存储数据,但是内存不够时,我们可以在电脑中加入更大的硬盘,可以增加许多的内存。但是电脑中加硬盘和内存的方法还是有局限的。这个时候有了第二种方法:横向扩展:也就是我们可以多个电脑或者服务器相互连接,用这样的方法来扩大我们的存储量。并且我们也不需要花费高额的钱。简单廉价的服务器或者pc端就可以。

二:跟大数据有关的一些技术和内容

谷歌的三大论文
GFS-------------------------HDFS分布式文件系统
MapReduce---------------分布式的处理
Big Data------------------------HBase

Hadoop:他是一个生态圈,他的组成部分有
HDFS:用于分布式文件存储,切分成块,多副本存于 多台机器。
YARN:用于资源管理和调度
Hive:使系统支持SQL语句 ---------大型数据库
pig:使用脚本scripting离线
Flume:收集log
sqoop:DB中数据转向别处
spark core
sparkSQL–可以使用sql处理
mapreduce----------批处理(适用于对时间的要求不高,而且处理的过程比较不着急)
sparkStreaming------------流式处理(与批处理不同,他对实时性要求比较高,需要在很短的时间里对大量的数据进行快速的处理)
zookeeper-------------协调服务
flink
storm
hbase

三:HDFS的一些简单了解
1.他是一个主从架构
用一个比较形象的例子来展示
主节点----类似于老板(Namenode)
从节点----类似于员工(Datanode)
client-----秘书(当数据量特别大,主节点忙不过开的时候,这个时候就需要借助一个中间的人来进行主从节点之间的联系)
存文件
使用的是hdfs的读写机制
读文件

    备份--------------为了解决安全的问题

2.HDFS:是以block块的形式将大文件进行相应的存储 HDFS1.x版本他的默认存储量是64M、
HDFS2.x版本之后的默认存储量是128M

3.HDFS对文件的处理为:当出现一个数据量特别大的文件是。首先将文件线性切割成块(block)
有偏移量offset(单位是byte) block需要分散的存储在集群节点中(在集群中需要分散存储是因为:一个节点只需要存储一个文件就可以了,没有必要一个节点存储两遍甚至多遍的同一个文件。)
单一文件block大小一致,文件与文件可以不一致
(当一个文件进行读写时,文件内存太大,我们需要对文件进行分割,分割成许多大小一致的文件进行传输。这些分割的小文件需要大小一致。但是不同的大文件之间,他们的大小可以不相等)
block可以设置副本数,副本分散在不同的节点中(当我们去存储一些文件的时候,为了防止丢失,所以我们可以在不同的节点中设置备份。要是把备份都存在同一个里面,当一个节点损坏,或者遇到其他问题。那么有再多的备份也是无用的。但是如果存放到不同的节点中。即使一个节点损坏,也还是会有其他的节点可以使用)

副本数不要超过节点数量(我们说的节点数就是我们接受文件的人有多少个,一个节点只要有这一个文件的信息就好,不需要多个副本,这就是多余的文件存储)
文件上传可以设置block大小和副本数(再我们上传文件的时候,我们可以选择我们以多大的文件进行上传,我们可以对不同的文件,在不同的节点上进行本分的设置)
已上传的文件block副本数可以调整,大小不变
(我们已经上传完的文件,我们之前已经确定好,以多大的文件进行上传,那大小我们就不能在去更改。但是我们的备份数量可以更改,如果觉得无用,可以删除,需要,可以再进行增加)
只支持一次写入多次读取,同一时刻只有一个写入者

四:对HDFS中的主节点,从节点进行简单的解释
1.Namenode 主节点(老板)
他是进行全局的掌控 管理从节点的信息 管理元数据(元数据:对数据进行解释的数据;源数据:数据)
还需要接受client的请求 进行读写操作
与DN之间进行相应的通信

2.Datanode 从节点(员工)

  干活的------需要他们存储数据
  要汇报自己的情况
  要接受client的安排

五:写操作
1.有一个大文件
2.client会将大文件进行切块处理 大文件的大小/128M=block
3.向NN汇报 :1)需要汇报块数
2)文件的大小
3)文件的权限
4)文件的属主
5)文件的上传时间

for(Block block:blocks){
4.client切下一块128
5.client会向NN去申请资源-----DN的信息
6.NN会返回一批负载不高的DN给client
7.client会向DN里面发送block并且做好备份
8.DN存放block块之后会向NN汇报情况(这是写操作时一定要有的)
(这只是对一块文件的处理,多个文件需要重复这些步骤一直到处理完成)

}

六:读操作
1.NN会向client发送一个请求,client接受到请求之后,会向NN去申请节点信息(blockid)
2.NN会向client发送一些节点信息
3.client获取到节点信息之后去DN上拿取数据----要就近原则

七:备份机制:

1.集群内提交 再提交的节点上放置block
2.集群外提交 选择一个负载不高的节点进行存放
3.放置与第一个备份不同机架的任意节点上
4.放置在第二个机架的不同和节点上

八:pipeline管道:
1.NN在返回给client一些DN的信息之后
2.client会和这些DN形成一个管道并且将block切割成一个个ackPackage(64K)
3.DN会从管道中拿取相应的数据进行存储
4.当存储完成之后,DN会向NN进行汇报

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值