Hadoop通信机制和内部协议之RPC

Hadoop RPC

RPC简介

简要地说,RPC就是允许程序调用位于其他机器上的过程(也可以是同一台机器的不同进程)。
RPC调用过程是透明的

传统过程调用:传统的过程调用中,主程序将参数压人栈内并调用过程,这时候主程序停止执行并开始执行相应的过程。被调用的过程从栈中获取参数,然后执行过程函数;执行完毕后,将返回参数入栈(或者保存在寄存器里),并将控制权交还给调用方。调用方获取返回参数,并继续执行。

而RPC调用是进程间的过程调用

RPC模型

  • 通行模块: 请求-响应
  • Stub程序: 用于保证RPC的透明性。在客户端,不在本地调用,而是将请求信息通过网络模块发送给法服务器端,服务器接收后进行解码。服务器中,Stub程序依次进行 解码(请求的参数)、调用相应的服务过程、编码返回结果等处理
  • 调度程序: 调度来自通行模块的请求信息,根据其中标识选一个Stub程序运行
  • 客户程序: 请求发出者
  • 服务过程: 请求接收者

hadoop序列化

序列化介绍

序列化是一种将对象的状态信息转化成可以存储或者传输的过程,与之相反的为反序列化
不是某一种编程语言所独有的特性
序列化的用途

  • 作为一种持久化格式。对象序列化后存盘
  • 作为一种通信的数据格式。如虚拟机之间通信
  • 作为一种拷贝、克隆机制。放缓存

Java序列化

Java通过实现Serializable接口
Java序列化后放入对象,通过对象流进行IO操作,ObjectInputStream/ObjectOutputStream

1
2
3
4
5
6
7
import java. io.Serializable ;

/**定义一个可以序列化的 App 信息类. */
public class Appinfo implements Serializable{
//序列化标识
private static final long serialVersionUID = 11 ;
}

Hadoop 压缩

压缩

压缩是指将数据转换为比原来的格式占用空间更小的格式来存储,以达到减小存储空间
解压是压缩的反过程

Hadoop文件切片

Hadoop MapReduce是通过划分切片来处理得,这样就使得支持分割的压缩格式更适合Hadoop

针对ss.txt文件大小为300M

  • 计算公式
    computeSliteSize(Math.max(minSize,Math.min(maxSize,blocksize)))=blocksize=128M(Hadoop 1.x中块大小为64M)
  • 默认情况下,切片大小=blocksize
  • 开始切,形成第1个切片:ss.txt—0:128M 第2个切片ss.txt—128:256M 第3个切片ss.txt—256M:300M(每次切片时,都要判断切完剩下的部分是否大于块的1.1倍,不大于1.1倍就划分一块切片)

Hadoop介绍

起源 Google 在大数据方面的三大论文 (谷歌三宝)

在github大的当前目录下
三宝的介绍

Hadoop 三大发行版本

  1. Apache、Cloudera、Hortonworks Apache版本最原始、最基础:适合零基础 大公司在用
  2. Cloudera Cloudera’s DistributionIncluding Apache Hadoop 简称CDH
    中小型公司用、简单方便、自带可视化
  3. Hortonworks 文档较好 注:Cloudera 和Hortonworks 在2018年10月,国庆期间宣布合并

    硬件要求

    内存

最大支持内存查询:win + R
输入 wmic memphysical get maxcapacity
计算 MaxCapacity/1024/1024GB

硬盘:500G+

大数据介绍

什么是大数据

百度百科的定义,大数据(BIG DATA),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产

分布式存储管理

为什么直接采用关系模型的分布式数据库并不能适应大数据时代的?

  1. 规模效应所带来的压力

    • 传统数据库倾向于纵向扩展(Scale-Up),即增加单台计算机的性能
    • 适应大数据的数据库系统的应该具有良好的横向扩展(Scale-Out),即为集群增加一台计算机
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×