日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop-RPC应用demo

發布時間:2025/3/11 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop-RPC应用demo 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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 服務端


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*/@Overridepublic 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



總結

以上是生活随笔為你收集整理的Hadoop-RPC应用demo的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。