zoukankan      html  css  js  c++  java
  • 0007.HDFS上传与下载的原理


    04-09-HDFS数据上传的过程

    HDFS数据上传的过程.png


    04-10-HDFS数据下载的过程

    HDFS的联盟与HA简介.png

    HDFS数据上传的过程.png


    04-11-HDFS的安全模式


    04-12-HDFS的快照


    04-13-HDFS的配额


    04-14-HDFS的回收站


    04-15-什么是RPC

    使用RPC完成远程调用.png


    04-16-Java的动态代理对象

    动态代理对象的基本原理.png

    	import org.apache.hadoop.ipc.VersionedProtocol;
    
    	public interface MyInterface extends VersionedProtocol{
    
    		//定义一个版本号
    		//使用版本号来进行签名
    		public static long versionID = 1;
    		
    		//定义我们业务方法
    		public String sayHello(String name);
    	}
    
    	import org.apache.hadoop.ipc.ProtocolSignature;
    
    	public class MyInterfaceImpl implements MyInterface {
    
    		@Override
    		public String sayHello(String name) {
    			System.out.println("*********调用到了Server 端**********");
    			return "Hello "+name;
    		}
    
    		@Override
    		public ProtocolSignature getProtocolSignature(String arg0, long arg1, int arg2) throws IOException {
    			//通过版本号定义签名信息
    			return new ProtocolSignature(MyInterface.versionID, null);
    		}
    
    		@Override
    		public long getProtocolVersion(String arg0, long arg1) throws IOException {
    			//返回版本号
    			return MyInterface.versionID;
    		}
    	}
    
    
    	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;
    
    	public class MyRPCServer {
    
    		public static void main(String[] args) throws Exception {
    			// 利用Hadoop RPC的框架实现RPC Server
    			
    			//使用RPC Builder来构建 
    			RPC.Builder builder = new RPC.Builder(new Configuration());
    			
    			//定义Server的参数
    			builder.setBindAddress("localhost");
    			builder.setPort(7788);
    			
    			//部署我们的程序
    			builder.setProtocol(MyInterface.class); //部署的接口
    			builder.setInstance(new MyInterfaceImpl()); //指定接口的实现类
    			
    			// 创建RPC Server
    			Server server = builder.build();
    			
    			//启动Server
    			server.start();
    		}
    
    	}
    
    
    
    	import java.io.IOException;
    	import java.net.InetSocketAddress;
    
    	import org.apache.hadoop.conf.Configuration;
    	import org.apache.hadoop.ipc.RPC;
    
    	import day0905.rpc.server.MyInterface;
    
    	public class MyRPCClient {
    
    		public static void main(String[] args) throws Exception {
    			// 使用Hadoop RPC的框架调用Server 端的程序
    			/*
    			RPC.getProxy(protocol,    调用的接口
    						 clientVersion, 版本号
    						 addr,   RPC Server的地址
    						 conf)
    			*/
    
    			//得到的是Server端部署对象的代理对象
    			MyInterface proxy = RPC.getProxy(MyInterface.class, 
    											 MyInterface.versionID, 
    											 new InetSocketAddress("localhost", 7788), 
    											 new Configuration());
    			
    			//使用这个代理对象调用Server的程序
    			String result = proxy.sayHello("Tom");
    			System.out.println(result);
    		}
    	}
    
    
  • 相关阅读:
    ::selection
    为什么要web语义化
    label的for属性与inputde的id元素绑定
    a 标签
    IE6 双倍距BUG
    css样式书写顺序
    清除浮动 .clearfix
    Unity利用AnimationCurve做物体的各种运动
    Error: unknown argument: '-websockets'
    关闭VAX的拼写检查_解决中文红色警告问题
  • 原文地址:https://www.cnblogs.com/RoyalGuardsTomCat/p/13834289.html
Copyright © 2011-2022 走看看