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