分布式系统基础

A distributed system is: A collection of independent computers that appears to its users as a single coherent system

目标

  • 使资源易于访问
    • 资源的范围很广泛
    • 打印机、存储、数据、文件等
  • 透明
    • 用户看到的就像是一台机器
  • 开放
    • 对外有统一的接口
  • 可扩展:使得系统匹配资源规模的增长
    • 纵向扩展scale-up:提高单台机器的处理能力
    • 横向扩展scale-out:增加机器的数量

例子

  • 分布式计算系统
    • 科学计算(计算密集型)
      • CPU是计算过程的瓶颈
    • 数据管理(数据密集型)
      • 数据IO是计算过程的瓶颈
  • 分布式信息管理系统
    • 事务处理系统
  • 分布式普适系统
    • 智慧家庭
    • 传感网络

大数据处理

  • Volume 大量化
    • 数据增长量大
  • Velocity 快速化
    • 从数据的生成到消耗,时间窗口非常小,生成决策的时间少
  • Variety 多样化
    • 大部分是非结构化数据
  • Value 价值化
    • 价值密度低,商业价值高
  • Veracity 质量
    • 数据的准确性和可信赖度,即数据的质量

大数据产生的原因

  • 存储容量上升
  • CPU处理性能提高
  • 网络带宽加大
  • 人的参与

分布式数据处理系统

两大核心技术

  • 分布式事务管理
    • NoSQL/NewSQL
  • 分布式数据处理系统
    • 批处理/流计算

分布式编程模型

分布式并行编程

  • MPI
    • 容错差/扩展性差/共享式
  • MapReduce
  • DAG

进程通信

线程 vs 进程

  • 进程
    • 系统进行资源分配和调度的一个独立单位,进程有独立的地址空间
  • 线程
    • 是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位

区别

  • 一个程序至少有一个进程,一个进程至少有一个线程
  • 线程的划分尺度小于进程,使得多线程程序的并发性高
  • 进程在执行过程中拥有独立的内存单元, 而多个线程共享内存
  • 线程不能够独立执行,必须依赖进程
  • 操作系统资源分配的基本单位是进程

进程间通信方式

进程间有不同的用户地址空间

  • 同一台机器/不同机器

通过操作系统内核实现

IPC(Inter-prodcess communication)

  • 控制 Control Flow
    • 信号(Signal)
      • 由内核发送给进程
    • 信号量(Semaphore)
      • 进程间对共享数据的互斥访问
    • 消息(Message)队列
      • 两个不相关进程间,独立于发送进程、接受进程而存在
  • 数据 Data Flow
    • 文件(file)
    • 管道/匿名管道(pipe)
      • 匿名管道只能有一个方向流动,只能用于父子进程
      • 实质上是一个内核缓冲区(独立于文件系统)
    • 有名管道(FIFO)
      • 有名管道的名字存在于文件系统中,内容存放在内存中
    • 共享内存(shared memory)
      • 需要同步机制来得到进程的同步和互斥
    • 套接字(socket)
      • 跨网络通信

远程过程调用 RPC

在形式上像本地函数一样去调用远程的函数

参数传递

  • 传值调用 vs. 传址调用
  • 如何根据函数名称进行函数调用?
    • 反射
      • 根据方法名调用该类
    • 代理
      • 让使用者在不知觉的情况下,代替调用者完成远程访问的功能

传送协议

  • 网络传输 (TCP/IP)

数据表示

  • 不同体系结构的机器之间

序列化和压缩

序列化与反序列化

  • 序列化
    • 把对象状态按照一定的格式转换成有序字节流,以便在网络上传输或者保存在本地文件中
  • 反序列化
    • 从文件中或网络上获得序列化后的对象字节流后,根据字节流中所保存的对象状态及描述信息,重建对象

数据压缩的原理

  • 压缩:通过一些有别于原始编码的特殊编码方式来保存数据,使数据占用的存储空间比较小
    • 减少网络传输的时间
    • 压缩本身需要时间
  • 解压缩:将被压缩的数据从特殊编码方式还原为原始数据的过程
    • 解压需要时间

KEYS

  • 大数据的5个V
  • 进程和线程的区别

results matching ""

    No results matching ""