Spark存储模块之数据传输模块
2019-10-15 09:50:33 0 举报
Spark存储模块之数据传输模块
作者其他创作
大纲/内容
TransportClientBootstrap
bossGroup:EventLoopGroup
TransportServer
NettyBlockTransferService
uploadBlocks
fetchBlocks
TransportRequestHandler
RPC-client
创建TransportClientFactory
ChunkFetchRequest
初始化ShuffleClient-1
初始化TransportServer-4
设置TransportResponseHandler
TransportResponseHandler
TransportContext
RCPServer
执行RPC请求-7-调用属性TransportResponseHandler进行消息处理
1.主要对连接建立时进行一些初始化的准备(例如验证、加密)。TransportClientBootstrap所做的操作往往是昂贵的,好在建立的连接可以重用。2.开启后给给TransportClient设置客户端引导程序
处理请求的线程Loop
执行RPC请求-4-得到属性:ChannelTransportResponseHandler
Netty知识补充
为 netty 建立服务端的辅助类
为channel初始化:为channel的管道添加处理类
ChannelInboundHandlerAdapter
init: 1.创建TransportContext 2.创建NettyBlockRpcServer
NioServerSocketChannel
向RPCservice发送请求
执行RPC请求-6
初始化ShuffleClient-2
接受连接的线程Loop
initializePipeline1.把创建SocketChannel的管道处理添加encoder,decoder等最重要添加handler
调用Channel返回结果
执行RPC请求-5-sendRpc:
执行RPC请求-3
设置TransportClient
初始化TransportServer-3
handle: 接受不同类型的请求 进入不同的处理逻辑
为网络连接通道
创建TransportServer对外提供RPC-service1.把NettyBlockRpcServer传入给rpcHandler
OneWayMessage
执行RPC请求-2-针对每个Socket地址的连接池ClientPool
初始化TransportServer-5-接受数据的请求
ChannelHandler
初始化TransportServer-2
通过继承ChannelInboundHandlerAdapter处理器创建自定义处理器,调用Spark的Netty消息处理框架
ServerBootstrap
BlockStoreShuffleReader
TransportClientFactory
消息处理器,添加到管道中
只与Service有关系
初始化TransportServer-1
设置rpcHandler:设置chanel
设置处理器
ShuffleBlockFetcherIterator
继承
执行RPC请求-3-在池中创建client
设置TransportRequestHandler
NettyBlockRpcServer
workerGroup:EventLoopGroup
重写Nettey的ChannelInboundHandlerAdapter
建立连接
init:1.调用TransportContext的initializePipeline把channel和rpcHandler传入2.运行RPC-service
构建:1.把本身,rpcHandler传入
TransportChannelHandler
执行RPC请求-1
ShuffleClient
0 条评论
回复 删除
下一页