大数据学习之HDFS的工作机制07
1:namenode+secondaryNameNode工作机制

2:datanode工作机制

3:HDFS中的通信(代理对象RPC)
下面用代码来实现基本的原理
1:服务端代码
package it.dawn.HDFSPra.RPC.server; 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.Builder;
import org.apache.hadoop.ipc.RPC.Server; import it.dawn.HDFSPra.RPC.protocol.RpcProtocol; /**
* @version 1.0
* @author Dawn
* @date 2019年4月29日17:10:25
* @return 模拟了一个rpc通信。该类是服务端
*/
public class RpcServer {
public static void main(String[] args) throws HadoopIllegalArgumentException, IOException {
//1.构建rpc框架
Builder builder = new RPC.Builder(new Configuration()); //2.绑定地址
builder.setBindAddress("localhost"); //3.绑定端口号
builder.setPort(6666); //4.绑定协议
builder.setProtocol(RpcProtocol.class); //5.调用协议的实现类
builder.setInstance(new MyRpcProtocol()); //6.创建服务
Server servers= builder.build();
servers.start();
} }
2:代理对象接口
package it.dawn.HDFSPra.RPC.protocol;
public interface RpcProtocol {
//1.定义协议的id
public static final long versionID=1L;
//2.定义方法(拿到元数据的方式)
public String getMetaData(String path);
}
3:代理对象的实现
package it.dawn.HDFSPra.RPC.server;
import it.dawn.HDFSPra.RPC.protocol.RpcProtocol;
public class MyRpcProtocol implements RpcProtocol{
@Override
public String getMetaData(String path) {
return path+": 3 - {BLK_1,blk_2,BLK_3...}";
}
}
4:客服端
package it.dawn.HDFSPra.RPC.client; import java.io.IOException;
import java.net.InetSocketAddress; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.ipc.RPC; import it.dawn.HDFSPra.RPC.protocol.RpcProtocol; /**
* @version 1.0
* @author Dawn
* @date 2019年4月29日17:10:25
* @return 模拟了一个rpc通信。该类是客服端
*/
public class Client {
public static void main(String[] args) throws IOException {
//1.拿到协议
RpcProtocol protocol =RPC.getProxy(RpcProtocol.class, 1L, new InetSocketAddress("localhost", 6666), new Configuration()); //2.发送请求
String result=protocol.getMetaData("/dawnhahhaha"); //3.拿到元数据信息
System.out.println(result);
}
}
大数据学习之HDFS的工作机制07的更多相关文章
- 大数据学习day11------hbase_day01----1. zk的监控机制,2动态感知服务上下线案例 3.HDFS-HA的高可用基本的工作原理 4. HDFS-HA的配置详解 5. HBASE(简介,安装,shell客户端,java客户端)
1. ZK的监控机制 1.1 监听数据的变化 (1)监听一次 public class ChangeDataWacher { public static void main(String[] arg ...
- 大数据 --> 分布式文件系统HDFS的工作原理
分布式文件系统HDFS的工作原理 Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数 ...
- 大数据学习笔记——HDFS写入过程源码分析(2)
HDFS写入过程注释解读 & 源码分析 此篇博客承接上一篇未讲完的内容,将会着重分析一下在Namenode获取到元数据后,具体是如何向datanode节点写入真实的数据的 1. 框架图展示 在 ...
- 大数据学习之HDFS基本API操作(上)06
package it.dawn.HDFSPra; import java.io.FileNotFoundException; import java.io.IOException; import ja ...
- 大数据学习之hdfs集群安装部署04
1-> 集群的准备工作 1)关闭防火墙(进行远程连接) systemctl stop firewalld systemctl -disable firewalld 2)永久修改设置主机名 vi ...
- 大数据学习笔记——HDFS写入过程源码分析(1)
HDFS写入过程方法调用逻辑 & 源码注释解读 前一篇介绍HDFS模块的博客中,我们重点从实践角度介绍了各种API如何使用以及IDEA的基本安装和配置步骤,而从这一篇开始,将会正式整理HDFS ...
- 大数据学习笔记——HDFS理论知识之编辑日志与镜像文件
HDFS文件系统——编辑日志和镜像文件详细介绍 我们知道,启动Hadoop之后,在主节点下会产生Namenode,即名称节点进程,该节点的目录下会保存一份元数据,用来记录文件的索引,而在从节点上即Da ...
- 大数据学习之HDFS基本API操作(下)06
hdfs文件流操作方法一: package it.dawn.HDFSPra; import java.io.BufferedReader; import java.io.FileInputStream ...
- 大数据学习之HDFS基本命令操作05
1)hdfs的客户端 1.网页形式->测试用 http://192.168.40.11:50070/dfshealth.html#tab-overview 2.命令行形式->测试用 3.企 ...
随机推荐
- Github+hexo+next搭建教程
今天参考的是大神的教程,学了一个新东西,但是可能由于原教程中运用的npm包与我当前使用的npm包版本不同的原因,有出过多处运行错误,但都在此教程中解决了; 总结了下命令: npm install he ...
- js 控制选中文字
//脚本获取网页中选中文字 var word = document.selection.createRange().text; //获取选中文字所在的句子 var range = documen ...
- [POI2005]AUT-The Bus
树状数组维护前缀最大值+扫描线DP #include"cstdio" #include"cstring" #include"iostream" ...
- BestCoder Round #93
这么快两天就过去了啊……昨天是April Fool’s Day,但绝对是我过的所有April Fool’s Day里最没意思的一个…… 估计再不写就要忘了……还是写写吧= = 说好7:00到机房,然而 ...
- 第十五章——自编码器(Autoencoders)
自编码器是一种能够通过无监督学习,学到输入数据高效表示的人工神经网络.输入数据的这一高效表示称为编码(codings),其维度一般远小于输入数据,使得自编码器可用于降维(查看第八章).更重要的是,自编 ...
- bootstrap-table 分页增删改查之一(增加 删除)
先上效果图 引入js文件 <!--js jquery --> <script type="text/javascript" src="${pageCon ...
- 如何安装window7 语言包
很多下载的语言包都是.exe文件,双击后生成lp.cab文件. 这时马上把文件复制到另外一个文件夹中,直接拖最快. 这是 window7 sp1 的很多语言包下载地址(企业版和旗舰版通用):http: ...
- spring boot(4)-html和templates
静态页面 spring boot项目只有src目录,没有webapp目录,会将静态访问(html/图片等)映射到其自动配置的静态目录,如下 /static /public /resources ...
- C#实现字符串相似度算法
字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是: 把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这 ...
- python之复数
#coding=utf8 ''''' 复数是由一个实数和一个虚数组合构成,表示为:x+yj 一个负数时一对有序浮点数(x,y),其中x是实数部分,y是虚数部分. Python语言中有关负数的概念: 1 ...