大数据基础day1

news/2024/5/20 4:09:15 标签: big data, hadoop, hdfs

大数据基础day1

  • HDFS(Hadoop分布式文件系统)
    • 字典与文件系统
      • 文件系统定义
      • 文件名
      • 元数据(Metadata)
      • 数据块(Block)
    • HDFS架构包含三个部分
    • HDFS写数据流程(确保一致性)
    • HDFS读数据(确保效率性)
    • HDFS(高可用)HA
  • HBase
    • 三种读取数据的方式
    • HBase的表的三个特征
    • HBase架构
      • HBase读取数据的流程
      • HBase写入数据的流程
  • mapreduce

HDFS(Hadoop分布式文件系统)

一种旨在在商品硬件上运行的分布式文件系统

  • HDFS具有高度的容错能力,旨在部署在低成本硬件上。
  • HDFS提供对应用程序数据的高吞吐量访问,并且适用于具有大数据集的应用程序
  • HDFS放宽了一些POSIX要求,以实现对文件系统数据的流式访问。
  • HDFS最初是作为Apache Nutch Web搜索引擎项目的基础结构而构建的。
  • HDFS是Apache Hadoop Core项目的一部分。

字典与文件系统

文件系统定义

文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易。

文件名

在文件系统中,文件名是用于定位存储位置。

元数据(Metadata)

保存文件属性的数据,如文件名,文件长度,文件所属用户组,文件存储位置等。

数据块(Block)

存储文件的最小单元。对存储介质划分了固定的区域,使用时按这些区域分配使用。

HDFS架构包含三个部分

  1. Client:支持业务访问HDFS,从NameNode ,DataNode获取数据返回给业务。多个实例,和业务一起运行
  2. NameNode:用于存储、生成文件系统的元数据。运行一个实例
  3. DataNode:DataNode用于存储实际的数据,将自己管理的数据块上报给NameNode ,运行多个实例

HDFS写数据流程(确保一致性)

在这里插入图片描述
1.提出申请 -2.创建元数据 -3.数据拆分 -4.数据写入(第一个节点写入 其他节点复制)-5.ack检查包 -6.关闭接口 -7.元数据固化

HDFS读数据(确保效率性)

在这里插入图片描述

1.提出申请 -2.查找元数据-3读取 (就近原则)- 4.关掉

HDFS(高可用)HA

在这里插入图片描述
利用ZooKeeper实现主备NameNode(解决单点故障问题)
Zookeeper主要用于存储HA下状态文件
双NameNode 保证同一时间总有一个节点正常工作
ZKFC(ZooKeeper Failover Controller)用于监控NameNode节点的主备状态 通过心跳机制 向上层报告自己的状态每3s 发送一条消息(共12条消息)
元数据 持久化:通过快照和日志文件
联邦机制:并行设立多个NameNode节点
副本机制:3副本保证数据安全
同分布 :减少无效的io操作

HBase

hbase是采用java语言编写的一款开源的基于HDFS的 nosql型数据库,不支持SQL.没有表关系,数据最终是存储在HDFS上,在启动hbase集群之前,必须要先启动HDFS

存储模式:列存储
不支持事务,仅支持单行事务
易于扩展

三种读取数据的方式

  1. 基于rowkey(行键)的读取
  2. 基于rowkey的range范围的读取
  3. 扫描全表数据

HBase的表的三个特征

  1. 储量大:一个表可存储上十亿行数据,拥有上百万列
  2. 面向列:基于列族管理操作,进行列式存储方案
  3. 稀疏性:对于NULL值的数据不占用任何磁盘空间,对效率没有任何影响表关系松散

HBase架构

在这里插入图片描述

HBase读取数据的流程

  1. 客户端提出申请
  2. 查找数据存放的位置 (在哪个region中)
  3. 调用get scan 对region进行扫描

HBase写入数据的流程

  1. 提出申请
  2. 明确分区(生成元数据表)
  3. 将数据分配到HRegionServer
  4. 先写日志 hlog 然后再写region
  5. 固化到hdfs

mapreduce

map --生成键值对
reduce – 做聚合操作
洗牌机制 – 小范围的聚合 数据节点之间的聚合


http://www.niftyadmin.cn/n/1717335.html

相关文章

JavaIO系列——概述、字节流示例

JavaIO系列——概述、字节流示例流什么是流输入流(按流向)输出流(按流向)字节流(按单位)字符流(按单位)节点流(按功能)过滤流(按功能)…

阿里云服务器基础linux指令实验(一到五)

阿里云服务器基础实验一文本处理阿里云服务器基础实验一文本处理地址实验搭建文本编辑工具Vim命令模式输入模式底线命令模式文本文件查看命令cat命令使用示例:将一个自增序列写入test.txt文件中。将文件内容清空。more命令使用示例:从第20行开始分页查看…

阿里云全链路数据治理

阿里云全链路数据治理实验全流程阿里云全链路数据治理实验全流程实验地址实验流程通过DataWorks采集日志数据至MaxCompute创建业务流程配置workshop_start节点新建表配置离线同步节点。提交业务流程。运行业务流程确认数据是否成功导入MaxCompute。通过DataWorks计算和分析已采…

JavaIO系列——字节缓冲流,对象流,序列化与反序列化

JavaIO系列——字节缓冲流,对象流,序列化与反序列化字节缓冲流BufferedInputStream构造函数示例BufferedOutputStream构造函数示例对象流序列化反序列化关于序列化和反序列化中的要点ObjectInputStream构造函数方法示例ObjectOutputStream构造函数方法示…

JavaIO系列——常见字符编码,字符流抽象类,FileReader,FileWriter

JavaIO系列——常见字符编码,字符流抽象类,FileReader,FileWriter字符编码注意字符流抽象类Reader构造方法方法Writer构造方法方法FileReader构造方法示例FileWriter构造方法示例字符编码 ISO-8859-1:收录除ASCII外,还…

JavaIO系列——BufferedReader,BufferedWriter,PrintWriter,转换流

JavaIO系列——BufferedReader,BufferedWriter,PrintWriter,转换流BufferedReader,构造方法示例BufferedWriter构造方法示例PrintWriter构造方法示例转换流(重点)InputStreamReader构造方法示例OutputStrea…

JavaIO系列——文件操作类(File)

这里写自定义目录标题File类属性常用方法(文件)常用方法(文件夹)示例(文件)示例(文件夹)FileFilter示例(打印后缀为png的文件)File类 此类仅包含对文件进行操…

Java集合——Properties

Java集合——PropertiesProperties特点构造方法示例Properties 属性集合,线程安全 特点 存储属性名和属性值属性名和属性值都是字符串类型没有泛型和流有关 构造 方法 示例 import java.io.*; import java.util.Properties; import java.util.Set;public class…