第 2 章-大数据处理架构 Hadoop
1 hadoop 生态系统
1 Hadoop的三大组件
1) HDFS分布式文件管理系统
- 超大数据存储
- 流式存储
2) MapRuduce分布式并行编程模型
3) Yarn 资源管理和调度器
2 其他组件
4 HBase
- 实时读写
- 非关系型数据库
- 分布式列式数据库
- 基于HDFS数据存储
5 Hive
- 数据仓库
- SQL语句转换为mapreduce任务
6 Flume
- 日志采集聚合
7 Sqoop
- 传统数据库的数据导入到hadoop中
2 hadoop特性
1 高容错性 冗余存储策略
2 支持多语言编程
- 基于java开发,后在各种环境都能运行
3 高可扩展性
- 多个datanode
4 成本低
2 伪分布式安装
1 伪分布是什么?
名称节点和数据节点在同一台机器上,采用HDFS文件系统
2 了解虚拟机
再本虚拟机中,桌面的路径是/home/hadoop/Desktop
3 修改文件夹名 mv命令
#mv还可以移动路径
sudo mv ./filename ./hadoop
4 解压命令 tar -zxf
tar -zxf /home/hadoop/Downloads/hadoop-3.1.3.tar.gz -C /home/hadoop/Desktop
5 伪分布式需要配置core-site.xml 和hdfs-site.xml文件
core-site.xml:配置hadoop的核心文件
hdfs-site.xml:配置namenode和datanode进程
6 初始化hadoop集群
hadoop namenode -format
是一个 Hadoop 命令,用于格式化 Hadoop 分布式文件系统(HDFS)的 NameNode。
7 启动所有进程
start-all.sh
8 启动shell 哪个命令可以用来操作HDFS文件
- hadoop fs :适用于任何文件系统
- hadoop dfs/hdfs dfs:只适用于hdfs文件系统
- 没有hdfs fs这种东西///
第 3 章-分布式文件系统 HDFS
3.1.1 计算机集群结构
分布式文件系统将文件分布存储到多个计算机节点
3.1.2 分布式文件系统的结构
分布式文件系统由2部分组成
1 主节点 Namenode(名称节点)
2 从节点 Datanode(数据节点)
3.2 HDFS 简介
1 HDFS目的
- 大数据集
- 流数据读写
- 廉价硬件设备
- 跨平台兼容
2 HDFS缺点
- 不支持低延迟数据
- 不支持多用户访问修改
3.3 HDFS 的相关概念
1 块
块是存储单位,默认64MB
1 好处
1 支持大规模存储
一个大规模文件以块为单位存储,eg:一个文件=5个块=机器A1+B1+C1+D1+E1
2 备份 提高容错性
1个块既可以出现在机器A,也可以冗余存储在机器B
2 HDFS组件
1 NameNode
1 作用
- 存储元数据
- 记录文件、block、datanode映射关系
- 名称节点的数据都保存在内存中
- 管理文件系统名称和维系客户端对文件的访问
2 Namenode两个核心结构
1 Fsimage
维护文件树所有文件
2 EditLog
- 在hdfs运行过程间,EditLog会变大
- 记录文件的增删改查重命名
2 DateNode
1 作用
- 保存实际数据块/具体文件内容
- 通常将文件内容保存到磁盘
2 心跳机制
数据节点定期会给名称节点发送心跳信息
3 SecondaryNamenode
- 保存名称节点元数据的备份
- secondarynamenode每隔一段时间请求名称节点停止EditLog文件
- 将editlog与fsimage合并,将合并好的fsimage上传到名称节点上
3 启动hdfs命令
start-hdfs.sh
start-dfs.sh
3.5.1 数据的冗余存储
1 采用多副本冗余存储的优势包含
- 检查数据错误
- 加速存储速度
- 保证数据可靠(容错性) 一个节点错误,其他节点有备份
3.5.2 数据存取策略
1 数据存放
同一个数据块复制3次得到3个副本!
保证实现机架坏了,其他机架节点实现或机架内节点故障,其他节点替代
1 第一个副本
挑一个磁盘不太满、CPU不太忙的节点
2 第二个副本
不和第一个副本在同一机架的节点
3 第三个副本
与第一个副本机架相同,但节点不同
2 数据读取
- 优先选择与客户端同一机架内的数据副本进行读取,除此以外再随机选择副本读取
第 4 章-分布式数据库 HBase
4.1.2 HBase 简介
1 HBase的特性
面对列/高可靠性/高性能/高可伸缩性
- 高可靠性:通过在多个节点上存储数据的多个副本,以及支持自动的数据恢复机制,HBase能够应对节点故障或其他异常情况。
- 高性能: HBase具有快速的读写性能,特别适用于需要对大规模非结构化和半结构化数据进行快速检索和分析的场景。
- 面向列: HBase是一种列存储数据库,以列为基本存储单元,而不是行。这种存储方式有助于高效地进行大规模数据的读取和检索。
- 可伸缩性: HBase的设计允许用户通过简单地增加集群中的节点数量来实现水平扩展,以满足不断增长的数据存储需求。
4.1.3 HBase 与传统关系数据库的对比分析
1 数据类型
将数据存储为未经解释的字符串
2 数据操作
没有表与表的联系,只有简单的增删改查
3 存储模式
基于列族存储
4 索引
只有行键一个索引
5 更新
每次更新修改新值,不会删除掉原来的文件
6 可伸缩性
关系型数据库很难实现纵向扩展
4.3.1 数据模型概述
- hbase是一个稀疏(每个单元格不一定有数据),多维度
- 索引是行键、列族、列限定符和时间戳