BiGData
2020-11-04 14:37:05 1 举报
AI智能生成
大数据应用原理与应用的总结
作者其他创作
大纲/内容
3.分布式文件系统HDFS
分布式文件系统
Distributed File System:是通过网络实现文件在多台主机上存储的文件系统
结构
文件系统的整体架构
主节点(Master Node)名称节点 :负责文件和目录的创建,删除和重命名
从节点(Slave Node)数据节点 :负责数据的存储和读取
HDFS
实现目标【1.0版本】
兼容廉价的硬件设备
流数据读写
大数据集
简单的文件模型
强大的跨平台兼容性
不适合低延迟数据访问
无法高效存储大量小文件
不支持多用户写入及修改文件
相关概念
块
1.0 默认大小是64MB,2.0为128MB 目的:最小化寻址开销
好处
支持大规模文件存储
简化系统设计
适合数据备份
名称节点和数据节点
NameNode
组成
FsImage :维护文件系统树以及文件树中所有文件和文件夹的数据
EditLog: 记录了所有针对文件的创建,删除,重命名等操作
作用
1.存储元数据
2.元数据保存在内容中
3.保存文件Block与DataNode之间的映射关系
DataNode
存储文件内容
文件内容保存在磁盘中
维护BlockID与DataNode本地文件的映射文件
第二名称节点
功能
完成EditLog和FsImage的合并操作,减小EditLog文件大小,缩短名称节点重启时间
冷备份:保存名称节点中的元数据信息
体系结构
命名空间管理
命名空间包含目录,文件,块
hdfs集群中只有一个命名空间,并且只有一个名称节点对此进行管理
通信协议
TCP/IP协议(基础)
数据节点与名称节点之间为数据节点协议
客户端与数据节点之间为RPC调用
局限性
命名空间的限制
性能的瓶颈
隔离问题
集群的可用性
存储原理
冗余存储
加快数据传输速度
容易检查数据错误
保证数据的可靠性
数据存放策略(冗余数据存储)
1.数据存放
默认的冗余复制因子为3【即每个文件块会被放到3个地方】
放置策略
内部请求:第一个副本放置在写操作请求的数据节点上;外部请求:挑一个不太忙的数据节点,第二个副本放置在不同于第一个副本的机架的数据节点上,第三个副本放置在第一个副本的机架的其他数据节点上
2.数据读取
当发现某个数据块副本对应的机架ID与客户端对应的ID一样时,优先选择该副本,否则就随机
3.数据复制
流水线复制的策略
数据错误与恢复
1.数据节点出错
2.名称节点出错
3.数据出错
4.分布式数据库HBase
概述
谷歌BigData的开源实现
HBase是Hadoop数据仓库,高可靠,高性能,面向列,可伸缩的分布式数据库
Hadoop生态系统: 利用MapReduce处理海量数据,利用Zookeeper作为协同服务,利用HDFS作为底层存储
对比分析
数据类型
关系数据库采用关系模型,HBase采用了更为简单的数据模型,把数据都存储为未经解释的字符串
数据操作
关系数据库有丰富的操作,HBase不存在复杂的表与表之间的关系,只有简单的插入,查询,删除等,通常采用单表的主键查询。
存储模式
关系数据库是基于行模式存储的,Hbase是基于列存储的。
数据索引
关系数据库通常可以针对不同列构建复杂的多个索引,HBase只有一个索引行键
数据维护
关系数据库数据被覆盖后就不存在了,而HBase中不会删除旧版本,而是生成一个新版本
可维护性
关系数据库很难横向扩展,HBase就是为了水平扩展而开发的
数据模型
稀疏,多维度,排序的映射表,索引是 行键,列族,列限定符和时间戳
实现原理: HBase的功能组件,表和Region以及Region的定位机制
功能组件
库函数,链接到每个客户端
一个Master主服务器
许多个Region服务器
表和Region
Region 的定位
一个Region标识符可以表示为 表名+开始主键+RegionID
常用Shell命令
create: 创建表
list:列出HBase中的所有表的信息
put:向表,行,列指定的单元格添加数据
get:通过指定表名,行,列,时间戳,时间范围,版本号来获取相应单元格的值
scan:浏览表的相关信息
alter:修改列族模式
count:统计表中的行数
describe:显示表的相关信息
enable/disable:使表有效或者无效
delete:删除指定单元格的数据
drop:删除表
exists:判断表是否存在
truncate:使表无效,删除该表,然后重新建立表
exit:退出HBase Shell
shutdown: 关闭HBase 集群
version: 输出Hbase版本信息
status: 输出HBase 的集群状态信息
5.NoSql数据库
简介
Not Only SQL
特点
1.灵活的可扩展性
2.灵活的数据模型
3.与云计算紧密触合
菲关系型数据库强调高吞吐量,关系型数据库强调低延时
四大类型
键值数据库
Memcached和Redis
列族数据库
BigTable,HBase
文档数据库
MongoDB
图数据库
Neo4J
三大基石
CAP
C(Consistency):一致性
A(Available):可用性
P(Tolerance of Network Partition:分区容忍性)
只能三选二
BASE
基本可用(Basically Availbale)
软状态(Soft-state)
最终一致性(Eventual consisitency)
BASE的思想是在ACID【原子性,一致性,隔离性,持久性】上发展起来的,不过牺牲了高一致性获取了高可用性
最终一致性
大数据时代数据库架构的三个阵营
传统关系型数据库【OldSql】
NoSQL数据库
NewSQL数据库
6.云数据库
概念
部署和虚拟化在云计算环境中的数据库
特性
1.动态可扩展
2.高可用性
3.较低的使用代价
4.易用性
5.高性能
6.免维护
7.安全
BigData
1.大数据概述
信息化浪潮
提供技术支撑
1.存储设备容量不断增加
2.CPU处理能力大幅提升
3.网络带宽不断增加
5个特点
数据量大
bit->Byte->KB->MB->GB->TB->PB->EB->ZB
数据类型繁多
处理速度快
价值密度低
真实性
大数据对数据研究的影响
数据之父:吉姆-格雷
经历了实验,理论,计算和数据四种范式
大数据对思维方式的影响
1.全样而非抽样
2.效率而非精确
3.相关而非因果
大数据技术的不同层面
数据采集与预处理
数据存储和管理
数据处理与分析
数据安全和隐私保护
大数据计算模式
批处理计算
流计算
图计算
查询分析计算
云计算
概念: 实现可伸缩,廉价的分布式计算能力,以虚拟化技术为核心,低价为目标,动态可扩展的网络应用基础设施
关键技术: 虚拟化,分布式存储,分布式计算,多租户
物联网
概念:物物相连 的互联网
关键技术:识别和感知技术,网络和通信技术,数据挖掘与融合技术
大数据和云计算,物联网的区别和联系
区别:大数据 侧重数据存储,处理与分析,从海量数据中发现价值,云计算本质整合IT资源,并通过廉价的方式提供给用户,物联网目标是 物物相连,应用创新是核心
联系:大数据根植于云计算,大数据为云计算提供了“用武之地”,物联网构成了大数据的重要数据来源,物联网也需要借助大数据,云计算进行物联网大数据的存储,分析,处理
2.大数据处理架构Hadoop
介绍:开源,运行在大规模集群上的分布式计算平台
核心
HDFS:Hadoop分布式文件系统
MapReduce
特性
高可靠性
高效性
高扩展性
高容错性
成本低
运行在linux平台上
支持多种语言
基本安装配置
1.创建Hadoop用户
2.安装java
3.设置SSH登录权限
4.单击安装配置
常用操作命令
系统管理
前提:进入hadoop根目录
启动HDFS:./sbin/start-dfs.sh
停止HDFS:./sbin/stop-dfs.sh
启动所有进程: ./sbin/start-all.sh
停止所有进程: ./sbin/stop-all.sh
进入安全模式:hdfs dfsadmin -safenode enter
退出管理模式: hdfs dfsadmin -safenode leave
文件管理
创建目录 hdfs dfs -mkdir /test
上传文件到系统: hdfs dfs -put etc/hadoop/core-site.xml /test
复制文件到系统: hdfs dfs -copyFromLocal etc/hadoop/hdfs-site.xml /test
上传文件夹到系统: hdfs dfs -put etc/hadoop /test
查看文件: hdfs dfs -cat /test/core-site.xml
下载文件: hdfs dfs -get /test/hdfs-site.xml /usr
合并文件: hdfs dfs -getmerge /test temp.xml
删除文件: hdfs dfs -rm -r /test
5.伪分布式安装配置
Hadoop2.0的核心组件
Hadoop2.0的新特性
HDFS2.0
一个名称节点背后还有两个,一个待命名称节点,一个后备名称节点【待命名称节点】
解决单名称节点的问题
1.HDFS集群可扩展性
2.性能更高效
3.良好的隔离性
YARN
三个组件
ResourceManager
ApplicationMaster
NodeManager
目标
实现“一个集群多个框架”,即在一个集群上部署一个统一的资源调度管理框架YARN,在YARN上可以部署各种框架
Pig
提供了类似SQL的Pig Latin语言
Pig自动编写的脚本转换成MapReduce作业在集群上运行
Tez
Apache开源的支持DAG作业的计算框架,直接源于MapReduce框架
核心思想: 将map和Reduce两个操作进一步进行拆分
Kafka
有LinkedIn开发的一种高吞吐量的分布式发布订阅消息系统
数据交换枢纽
在线实时处理和批量离线处理
7.MapReduce
分布式并行编程
Hadoop MapReduce是MapReduce的开源实现,易上手
设计理念
计算向数据靠拢
Map函数
Reduce函数
策略
分而治之
流程
mapreduce流程
MapReduce如何进行分片,分片的大小是什么,文件块的大小
指的是MapReduce阶段的FileInputFormat阶段对于数据块的切片,默认的切片大小是块大小(64MB),如果没有大于文件的1.1倍,所有不会被切分掉
9.Spark
简介:基于内存计算的大数据并行计算框架
Scala
简介:与spark结合的很好的语言
面向函数的语言
运行架构
RDD:弹性分布式数据集
DAG:有向无环图,反映RDD之间的依赖关系
10.流计算
含义:针对流数据的实时计算
流数据不适合采用批量计算,必须采用实时计算
实时计算:能够实时得到计算结果,【数据不断的输入,不断的输出】
11.图计算
含义:对图结构进行计算
批处理:对数据的批量处理
Pergel是一个基于BSP模型实现的并行图处理系统
0 条评论
回复 删除
下一页