大数据

2018-10-24  本文已影响0人  茶尽

HDFS 分布式文件系统

  1. 按块存储
    • 支持大规模文件存储
    • 简化系统设计
    • 数据备份
  2. 名称节点,整个HDFS集群的管家。
    • FsImage和editlog
    • 通过shell命令,从上述两个地方最新的元数据,创建一个新版的FsImage(名称节点),创建一个空的 editlog(editlog依然会变大)
    • 第二名称节点(帮助解决editlog过大&冷备份)
      • 冷备份过程:第二名称节点与名称节点定期通信,过大叫停,名称节点创建edit.new,第二名称节点把FsImage和editlog拷贝到本地合并成一个新的FsImage,名称节点将edit.new改为editlog
  3. 数据节点,负责存储实际数据。
  4. 体系结构:hdfs读写先通过名称节点,去读取数据节点.
    • 命名空间 目录+文件+块
  5. 存储原理,冗余数据保存
    • 加快传输速度
    • 容易检查错误
    • 保证可靠性
  6. 数据读取
    • 打开文件,生成fsDataInput Stream输入流,封装了distribution filesystem类对象。
    • 获取数据块信息,与名称节点沟通,将文件数据块地址信息返回。
    • 读取数据,输入流执行read,从距离客户端最近的数据节点开始读。关闭连接。
    • 再次获取数据块信息并读取数据。关闭文件。
  7. 写数据
    • 创建文件请求,生成FSDataOutputStream封装一个distribution filesystem类对象。
    • 创建文件元数据,调用名称节点,名称节点进行检查。
    • 写数据,流水线复制。把数据分成包,放入输出流。数据节点形成一个管道,分包依次发放,客户端发到第一个,第一个发到第二个(复制)……,确认包从最后一个数据节点往前传,传到客户端。
    • 关闭文件。

MapReduce

  1. 一种分布式变成框架。计算向数据靠拢,将应用程序分发到数据所在的机器。map函数输入是一个键值对,输入是一堆键值对。reduce函数输入是一个<key,value-list>,输出是一个<key,value>。
  2. 体系结构。
  1. 工作流程。from hdfs对大规模数据集进行分片操作(split,逻辑上),生成很多map任务(由分片数量决定),对每一个map分成多个reduce任务(shuffle),输出到hdfs。
  1. shuffle过程。


输入数据进行分片处理,map之后输入处理结果(一堆键值对),写入缓存,满了之后溢写到磁盘中。通过reduce任务取走,经过归并,合并输入到reduce函数,输出到hdfs。

Spark

  1. spark与hadoop对比
  1. 架构
    优点:利用多线程执行任务,减少任务启动开销。executor有一个blockmanager存储模块,将内存和磁盘作为存储设备,较少io开销。



    一个application有一个driver和多个job,一个job包含多个stage,一个stage包括多个task。执行一个application,driver向集群管理器申请资源,启动executor,执行task,结束后把结果返回。

  2. 流程


  1. RDD 弹性分布式数据集 resillient distributed dataset
    一个RDD是一个分布式对象几何,只读。避免中间数据存储。
  1. RDD的依赖关系,帮助划分stage。在DAG中反向解析,遇到宽依赖就断开,遇到窄依赖就加入stage。将窄依赖尽量划分在一个stage中,形成流水线操作。
  1. spark部署


数据仓库hive

  1. 本来不具有数据的存储和分析,提供了一种语言。
  1. hive对外访问接口,驱动模块(把HiveQL转换为MR语句),元数据存储模块(独立的关系型数据库)


上一篇下一篇

猜你喜欢

热点阅读