您的位置:首页 > 大数据

大数据-Hadoop学习笔记10

2017-05-01 10:38 344 查看

32.考查Hadoop的底层ipc通信

IPC进程间通信(inter process communication)

RPC远程过程调用(remote procedure call)

1.实现原理
【Client】
1.Client.class,且遵循VersionProtocal协议
2.通过代理和服务器端打交道
【Server】
1.Server.class,且遵循VersionProtocal协议
2.server端有具体实现
2.创建客户端服务端


【服务端】
public class MyServer {

public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
Builder builder = new RPC.Builder(conf)
.setProtocol(HelloWorldService.class)
.setInstance(new HelloWorldServiceImpl())
.setBindAddress("localhost")
.setNumHandlers(2)
.setPort(6666);
Server server = builder.build();
server.start();
}
}


【客户端】

public class MyClient {

public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
try {
HelloWorldService proxy = RPC.getProxy(
HelloWorldService.class,
1,
new InetSocketAddress("localhost", 6666),
conf);
String result = proxy.sayHello("my name is xiaoji");
System.out.println("client result is: " + result);

} catch (IOException e) {
e.printStackTrace();
}
}
}


3.创建一个接口HelloWorldService继承于VersionedProtocol


public interface HelloWorldService extends VersionedProtocol{
public static final long versionID = 1;
public String sayHello(String msg) throws Exception;
}


4.启动服务器再启动客户端


33.

1.切片大小和block相当,优化策略
a)数据本地化优化策略
b)机架本地化策略
c)不同机架运行任务
d)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: