大数据HDFS入门以及个人见解

很多人会问大数据是什么?
其实关于大数据并没有一个特别官方的说法,也没有特别标准的解释。
我个人觉得大数据就是短时间快速产生大量多种多样的有价值的真实信息。

大家都在淘宝等购物平台上买过东西,广大男性同胞也深知双十一以及双十二这种购物节的恐怖,这不是说女人有多恐怖,站在我们专业的角度上来说在短短时间内所产生的数据就相当恐怖。

在这些大量的数据面前,就要应用到大数据关于数据的一些计算,存储,计算等等,这也就是我接下来给大家分享的关于大数据HDFS技术。

怎样解决数据量过大的问题呢?
首先在面对海量的数据,我们首先要进行一个储存,为了解决空间不足,也就是内存或者存储资源不足的问题主要有两个方法:
1.垂直扩展
垂直扩展就是在你电脑本身或者机架上添加内存条或者增加硬盘数量,就是改变本身的硬件设施提升内存空间来存储数据。
2.横向扩展
所谓的横向扩展就是增加电脑数量或者添加机架数量,让其连接起来组成一个大型存储空间。

存储的问题解决了那接下来就需要对这些数据进行一个处理。

数据的处理
根据最早的谷歌的三大论文衍生了两种新型的技数:
1.GFS 衍生出HDFS 分布式文件系统也就是分布式的存储
2.MapReduce 分布式的处理
3.BigData 衍生出HBase

关于HDFS的总结
知道了HDFS是一个分布式文件系统
HDFS中包含了许多细小的技术
他们分别是
1.yarn 资源和任务的调度
2.mapreduce 批处理
关于mapreduce 这里重点给大家说一下,批处理是分批处理,什么意思呢,就是相当于先把数据放到一个容器,然后在处理,分批式的处理。
3.spark 相当于是一个存储形式吧,在里面还有些细小的技术分支:
1.spark core 相当于是核心
2.spark SQL 可以使用sql语句对数据进行操作
3.sparkstreaming 流式处理
4.mllib 机器学习库
5.graphx spark已经停止维护了 也就是说被淘汰了

HDFS需要一些支持
kafka 缓冲地带对于数据的处理是非常快
zookeeper 协调服务
flume 是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统
hive 是一个大型的关系型数据库 可以用sql语句对数据操作
flink 是一个面向数据流处理和批量数据处理的可分布式的开源计算框架
storm 是一个免费的开源的分布式实时计算系统
hbase 是高可靠、高性能,面向列、可伸缩的分布式存储系统,利用HBase可以对大表数据的读、写达到实时级别

HDFS的主从架构
主节点 (Namenode)相当于老板
从节点 (Datanode)相当于员工
client 相当于秘书
主节点 的作用
1.掌控全局 管理从节点(Datanode)的信息 管理元数据 元数据就是描述数据的数据
2.接受client的请求 读写
3.与从节点 (Datanode)之间进行相应的通信
从节点 (Datanode)的作用
1.存储数据
2.存储完毕后返回信息给namenode主节点
3.接受client的任务安排
HDFS的机制
存文件 与 读文件 是HDFS的读写机制
备份 为了解决数据安全的问题 防止意外的数据丢失
写操作的步骤
1.需要一个大文件
2.client会将大文件进行切块 大文件的大小/128mb=block的块数
3.向主节点返回 分割的block的块数 文件的大小 文件的权限 文件的属主 文件的上传时间
4.client 分割出一块block大小为128mb
5.client会向namenode主节点申请一些资源 也就是负载量不高的datanode信息
6.namenode 会返回client一些负载量不高的datanode信息
7.client会向DataNode发送切割好的block块 并备份
8.DataNode存储block块之后会向NameNode汇报存储情况
读操作的步骤
1.NameNode会向client发送一个请求 ,client接收到请求后会向NameNode申请从节点的信息 也就是block的id
2.NameNode会向client返回block的id
3.client获取到block的id的信息后会向DataNode上拿取数据
注:读操作的原则 就是就近原则
备份机制
备份的方式有两种
一种是集群内提交 所谓的集群内提交就是不通过client的操作 直接由NameNode直接在DataNode存储block一般情况下这种文件较小
另一种就是集群外提交 就是通过client的帮助 由client分割block存储到DataNode
存储时注意
1.备份在与第一备份不同的机架的任意DataNode上
防止机架意外备份丢失
2.放置在第二个机架不同的DataNode上
意思就是同一个备份一个DataNode不能存储两份不然没有意义
pipeline管道
1.NameNode返回给client一些DataNode的信息之后
2.client会将block分割成一个个ackpackage的64kb的小块
这么做的意义在于 减少资源的浪费 加快效率
3.DataNode会从管道中拿去相应的ackpackage进行存储
4.DataNode存储block块之后会向NameNode汇报存储情况
HDFS的数据存储方式
hdfs是以block块的形式将大型的数据文件进行存储的
block 的1.0版本默认每块64mb的大小为最佳进行数据存储
block 的2.0及以上版本默认每块128mb的大小为最佳进行数据存储
关于biock的简单介绍
文件线性切割成块
偏移量 offset 默认以byte为单位
block分散存储在集群的节点上 也就是分散的存储在从节点上(datanode)
单一文件block大小一致
意思就是在存储文件时block的大小已经确定 之间的的任何操作他的大小都不会改变
文件的大小可以不一致
意思就是在block没有分割文件时的大小是不一样的
可以设置block副本数
意思就是可以设置备份的数量
**副本分布在不同的节点中
**
意思就是副本要存在不同的 从节点 (Datanode)上 防止数据丢失
副本数不要超过节点数量
意思就是备份的数量不要超过从节点 (Datanode)的数量 不然的话有可能从节点 (Datanode)上重复备份 浪费资源 没有意义

文件上传时可以设置block大小和副本数
意思就是文件在存储时可以设置block块的大小 并不是说规定的就是128mb 而是最佳为128mb 副本数就是备份 我可以设置到底备份几份在从节点 (Datanode)

已上传的文件block副本数可以调整数量 大小不可以改变
意思就是备份数量可以改变但是block块的大小不可以改变了
只支持一次写入多次读取 同一时刻只有一个写入者
意思就是只存储一遍 多次查看 一次只允许存储一个文件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值