Hadoop-RPC应用demo
2016-12-19 15:06
190 查看
Hadoop里的rpc框架可以单独拿出来使用。jar包全在hadoop-common工程里。
导入hadoop-common工程里(hadoop-2.7.3为例):
hadoop-common-2.7.3.jar
\hadoop-2.7.3\share\hadoop\common\lib下的全部jar包
实例
rpc.client 客户端
rpc.protocol (数据传递的)协议层
rpc.service 服务端
步骤:
1、运行PublishServiceUtil.java 启动服务端
2、运行MyHdfsClient.java 访问服务端
结果:
客户端
服务端
-------------
更多的Java,Angular,Android,大数据,J2EE,Python,数据库,Linux,Java架构师,:
http://www.cnblogs.com/zengmiaogen/p/7083694.html
导入hadoop-common工程里(hadoop-2.7.3为例):
hadoop-common-2.7.3.jar
\hadoop-2.7.3\share\hadoop\common\lib下的全部jar包
实例
rpc.client 客户端
rpc.protocol (数据传递的)协议层
rpc.service 服务端
package rpc.client; import java.net.InetSocketAddress; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.ipc.RPC; import rpc.protocol.IClientNamenodeProtocol; public class MyHdfsClient { public static void main(String[] args) throws Exception { IClientNamenodeProtocol proxy = RPC.getProxy(IClientNamenodeProtocol.class, 1L, new InetSocketAddress("localhost", 8888), new Configuration()); String metaData = proxy.getMetaData("/hellohellohelloxxxxxxx.xxx"); System.out.println("获取到结果:"+metaData); } }
package rpc.protocol; /** * 通信接口 * * @author zengmiaogen * */ public interface IClientNamenodeProtocol { //hadoop-rpc框架要求有的变量versionID,没有报错 public final long versionID=1L; public String getMetaData(String path); }
package rpc.service; import rpc.protocol.IClientNamenodeProtocol; public class MyNameNode implements IClientNamenodeProtocol{ /** * 模拟NameNode的业务方法之一,查询元数据 * @param path * @return */ @Override public String getMetaData(String path){ //假的,模拟的 System.out.println("传入的路径:"+path); return path+": 副本数量3-{BLK-1,BLK-2}-NameNode......."; } }
package rpc.service; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.ipc.RPC; import org.apache.hadoop.ipc.RPC.Builder; import org.apache.hadoop.ipc.RPC.Server; import rpc.protocol.IClientNamenodeProtocol; /** * 启动服务器 * @author zengmiaogen * */ public class PublishServiceUtil { public static void main(String[] args) throws Exception { Builder builder = new RPC.Builder(new Configuration()); builder.setBindAddress("localhost") .setPort(8888).setProtocol(IClientNamenodeProtocol.class) .setInstance(new MyNameNode()); Server server = builder.build(); server.start(); } }
步骤:
1、运行PublishServiceUtil.java 启动服务端
2、运行MyHdfsClient.java 访问服务端
结果:
客户端
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 获取到结果:/hellohellohelloxxxxxxx.xxx: 副本数量3-{BLK-1,BLK-2}-NameNode.......
服务端
log4j:WARN No appenders could be found for logger (org.apache.hadoop.ipc.Server). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 传入的路径:/hellohellohelloxxxxxxx.xxx
-------------
更多的Java,Angular,Android,大数据,J2EE,Python,数据库,Linux,Java架构师,:
http://www.cnblogs.com/zengmiaogen/p/7083694.html
相关文章推荐
- 3 weekend110的hadoop中的RPC框架实现机制 + hadoop中的RPC应用实例demo
- Hadoop rpc demo
- 运行HBase应用开发程序产生异常,提示信息包含org.apache.hadoop.hbase.ipc.controller.ServerRpcControllerFactory的解决办法
- 深入理解Java Proxy机制 应用在 Hadoop RPC 框架
- j 4000 ava之反射(RPC中应用demo)
- Hadoop的RPC框架应用示例
- hadoop中RPC的使用方法---DEMO
- hadoop中RPC的用法 ( by quqi99 )
- (引用)Java RPC通信机制之SOAP:应用Apache Axis进行Web Service开发
- Java RPC通信机制之SOAP:应用Apache Axis进行Web Service开发
- NET2.0环境下的Ajax选型和应用(提供Demo源码下载)
- Cascading:一个简单的Hadoop MapReduce应用
- resPickle 的应用,自己写了一个demo
- ajax应用一例demo
- PHP xml-rpc 应用说明-基于php扩展
- ASP.NET Mvc Preview 5 演示Demo #4 实现RadioButtonList与DropDownList应用
- hadoop应用之安装篇
- WPF中ListView小Demo的数据绑定应用.
- .NET2.0环境下的Ajax选型和应用(提供Demo源码下载)
- 反编译jfreechart_demo应用到J2EE当中