分布式系统详解--框架(Hadoop--RPC协议)

2023-10-27

                   分布式系统详解--框架(Hadoop--RPC协议)

       在之前的一篇文章当中已经写过一篇文章是关于RPC通信协议的文章,是    分布式系统详解--基础知识(通信)是讲的关于网络通信的最基本的知识。这篇文章也简单讲一下关于hadoop内部的网络通信。

一、hadoop的RPC模式

C/S模式

基于传输层模式。(TCP/IP)

事件处理模型。(请求、计算、协议)

二、RPC设计目的

调用非本机方法。

不同语言程序之间通讯。

不了解底层通讯,向本地方法一样调用。

三、RPC作用

分布式程序基础(分布式操作系统、分布式计算、分布式软件设计)

垂直应用服务化拆分。

四、RPC特点

封装网络交互

远程调用对象代理

支持容器(Spring、Jetty)

可配置,可扩展

五、hadoop 主要协议

NameNode主要实现了ClientProtocol、DataNodeProtocol、NameNodeProtocol。

Hadoop2.0中存在两个ipc包,分别在hadoop-common和hadoop-yarncommom项目下。分别是hadoop RPC和新的yarn RPC。

六、JAVA代码实现简单hadoop-RPC简单实现测试

6.1 协议接口

/**
 * 
 */
package com.yuyi.rpc;

/**
 * @author mcb 
 *
 * 2018年10月15日 上午11:08:02 
 * 	RPC中的协议
 */
public interface SayHello {
	
	public static final long versionID=1;
	//协议
	public String sayHello(String words);

}

6.2 服务端接口

/**
 * 
 */
package com.yuyi.rpc;

import java.io.IOException;

import org.apache.hadoop.HadoopIllegalArgumentException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.ipc.RPC;
import org.apache.hadoop.ipc.RPC.Server;

/**
 * @author mcb 
 *
 * 2018年10月15日 上午11:10:50 
 * 	RPC中的服务端 实现协议
 * 
 */
public class RPCServer implements SayHello{

	
	public String sayHello(String words) {
		// TODO 自动生成的方法存根
		System.out.println("客户端说的话是: "+words);
		
		return "OK~我知道你没有挂掉了~~~";
	}
	
	public static void main(String[] args) {
		
		try {
			Server server = new RPC.Builder(new Configuration())
			.setInstance(new RPCServer())
			.setProtocol(SayHello.class)
			.setBindAddress("127.0.0.1")
			.setPort(6666)
			.build();
			
			server.start();
			System.out.println("server is started... ");
			
		} catch (HadoopIllegalArgumentException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
	}
	
	
	
}

6.3 客户端接口

/**
 * 
 */
package com.yuyi.rpc;

import java.io.IOException;
import java.net.InetSocketAddress;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.ipc.RPC;

/**
 * @author mcb 
 *
 * 2018年10月15日 上午11:20:11 
 */

public class RPCClient {
	private static String sayHello;

	public static void main(String[] args) {
		//第一个参数:协议 第二份参数:版本(long整数),第三个参数:地址,第四个参数:configuration。
		try {
			while (true) {
			SayHello sayH = RPC.getProxy(SayHello.class, 1, new InetSocketAddress("127.0.0.1",6666), new Configuration());
			sayHello = sayH.sayHello("我现在活着,心跳正在进行~~~");
			System.out.println(sayHello);
			Thread.sleep(2000);
			}
			
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (InterruptedException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
	}
	
}

启动后结果:

欢迎订阅公众号(JAVA和人工智能)

                                                                        获取更过免费书籍资源视频资料

                                            

知识点超级链接:

 1,分布式系统详解--基础知识(概论

 2,分布式系统详解--基础知识(线程)

 3,分布式系统详解--基础知识(通信)

 4,分布式系统详解--基础知识(CAP)

 5,分布式系统详解--基础知识(安全)

 6,分布式系统详解--基础知识(并发)

 7,分布式系统详解--架构简介(微服务)

 8,分布式系统详解--Linux(权限)

 9,分布式系统详解--框架(Hadoop-单机版搭建)

10,分布式系统详解--架构(Hadoop-克隆服务器)

11,分布式系统详解--框架(Hadoop-集群搭建)

12,分布式系统详解--框架(Hadoop-Ssh免密登陆配置)

13,分布式系统详解--框架(Hadoop--JAVA操作HDFS文件)

14,分布式系统详解--框架(Hadoop--RPC协议)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

分布式系统详解--框架(Hadoop--RPC协议) 的相关文章

随机推荐

  • android 语音识别 语音手电(一)

    一 语音识别库 cmu pocketsphinx 当然要用现成的语音识别库了 自己的水平离开发语音识别库还远的很呢 网上搜索找到卡内基梅龙大学的开源语音项目 好象是李开复创办的项目 有JAVA实现 有C语言实现 pocketsphinx是专
  • 使用vscode编码器统计代码行数

    在一些特殊情况中我们需要计算代码的行数 这时我们就可以借助vscode的VS Code Counter插件进行统计 第一步 选择VS Code Counter进行安装 安装完毕有条件的可以重启编码器 第二步 快捷键ctrl shift p进
  • Tensorflow 下测试gpu是否可用

    import tensorflow as tf tf test is gpu available
  • servlet和java区别_java – servlet和Web服务之间的区别

    Web服务是一种使用REST编程范例或SOAP协议为其客户端提供服务方法以进行通信的服务 有几种方法来实现Web服务 编写Web服务的最简单的方法是编写一个类并使用javax jws中的 WebService和 WebMethod注释进行注
  • php 导出excel的三种方法

    1 PHPExcel thinkphp PHPExcel放到这个目录下 导出excel表格 function exportExcel data filename xlsTitle iconv utf 8 gb2312 filename 文件
  • BI工程师日记

    从17年十月份入职BI工程师半年多的时间里 已熟练使用Tableau及SQL 越来越感觉到tableau的天花板 思考了好久如何打破天花板 想从几个方面入手 1 学习Python数据处理 神经网络庫的使用 结合tableau和Python
  • kubeadm 安装集群 1.16.12

    kubeadm 安装集群 添加源 mirror https mirrors aliyun com mirror https mirrors ustc edu cn docker 源 curl fsSL mirror docker ce li
  • 【喊7的次数重排】

    题目描述 喊7的次数重排 喊7是一个传统的聚会游戏 N个人围成一圈 按顺时针从1到N编号 编号为1的人从1开始喊数 下一个人喊的数字为上一个人的数字加1 但是当将要喊出来的数字是7的倍数或者数字本身含有7的话 不能把这个数字直接喊出来 而是
  • 对串级PID控温算法的解析

    目录 前言 单级PID 串级PID 系统分析 算法分析 总结 前言 笔者在做项目的过程中 需要对一个目标物体做精确控温 精度要求 1 需要在两分钟内使用电阻发热贴将温度由20控制到41 且无超调 根据控制原理 做精确控温应该使用PID算法
  • 026-从零搭建微服务-文件服务(二)

    写在最前 如果这个项目让你有所收获 记得 Star 关注哦 这对我是非常不错的鼓励与支持 源码地址 后端 https gitee com csps mingyue 源码地址 前端 https gitee com csps mingyue u
  • 【点云】PointCNN: Convolution On X-Transformed Points

    目录 测试 1 摘要 2 介绍 3 PointCNN 3 1 分层卷积 3 2 X Conv操作 3 3 PointCNN结构 4 参考 4 1 ELU激活函数 4 2 BatchNorm 测试 在Semantic3D上跑了PointCNN
  • jitter概念理解

    一般 PLL等时钟产生模块 都会有RMS jitter的描述 根据这个参数 可以计算出相关时钟的clock jitter 方便设置综合sdc的时钟约束 为什么只有RMS jitter 因为期望值就是理论周期值 根据期望值 RMS 均方差 就
  • 数据运营-计算留存率和转化率(漏斗分析&Python)

    一 案例数据 在数据运营中 留存率分析和转化率 漏斗 分析是经常用到的 本文结合具体案例总结了如何利用python求n日留存率以及各环节间转化率 指标释义 案例数据集介绍 本文是利用淘宝app的运营数据进行分析的 数据集中包含以下字段 部分
  • vue项目+el-tree,树结构展示,非常完整的代码,包含调接口拿真实数据渲染

    温故而知新 最近项目中频繁使用树形结构展示效果 因为不熟悉 备受折磨 代码贴出来 再复习一次 代码太长了 想看分析的可以搜我下一篇文章 下一篇会详细的写如何在项目中使用 效果 左侧是树 右侧是表格 点击任何一行都会展示对应的表格 完整代码如
  • Acwing 898. 数字三角形

    f i j 表示所有从起点开始 走到 i j 的路径中的和的最大值 自上而下到达 i j 有两种路径 一个是左上方 一个是正上方 f i j max f i 1 j 1 a i j f i 1 j a i j 注意边界情况 边界初始化为 I
  • 单机网游架设必学:Win7安装虚拟机详细步骤

    1 下载虚拟机软件 VMware VMware Workstation 中文正式版 10 0 1 137977 2 查了很多资料说虚拟机不会占用磁盘 但是我感觉应该是有影响的 所以这里我特意分出来一个空白的60G盘做测试用 分盘用 Acro
  • PDB文件详解

    PDB文件的介绍 PDB Program Data Base 意即程序的基本数据 是VS编译链接时生成的文件 DPB文件主要存储了VS调试程序时所需要的基本信息 主要包括源文件名 变量名 函数名 FPO 帧指针 对应的行号等等 因为存储的是
  • 强化学习算法 DQN 解决 CartPole 问题,代码逐条详解

    本文内容源自百度强化学习 7 日入门课程学习整理 感谢百度 PARL 团队李科浇老师的课程讲解 强化学习算法 DQN 解决 CartPole 问题 移动小车使得车上的摆杆保持直立 这个游戏环境可以说是强化学习中的 Hello World 大
  • Visual C++ ADO数据库编程入门(1)

    ADO 是目前在Windows环境中比较流行的客户端数据库编程技术 ADO是建立在OLE DB底层技术之上的高级编程接口 因而它兼具有强大的数据处理功能 处理各种不同类型的数据源 分布式的数据处理等等 和极其简单 易用的编程接口 因而得到了
  • 分布式系统详解--框架(Hadoop--RPC协议)

    分布式系统详解 框架 Hadoop RPC协议 在之前的一篇文章当中已经写过一篇文章是关于RPC通信协议的文章 是 分布式系统详解 基础知识 通信 是讲的关于网络通信的最基本的知识 这篇文章也简单讲一下关于hadoop内部的网络通信 一 h