笔记
wqy1200
这个作者很懒,什么都没留下…
展开
-
yarn实现
YARN基础库YARN的基础库主要有以下几个。❑Protocol Buffers:Protocol Buffers是Google开源的序列化库,具有平台无关、高性能、兼容性好等优点。❑Apache Avro:Avro是Hadoop生态系统中的RPC框架,具有平台无关、支持动态模式(无需编译)等优点。❑RPC库:YARN仍采用了MRv1中的RPC库,但其中采用的默认序列化方法被替换成了Protocol Buffers。❑服务库和事件库:YARN将所有的对象服务化,以便统一管理(比创建、销毁等),而服原创 2020-06-09 20:24:09 · 534 阅读 · 0 评论 -
hdfs名字节点实现
命名空间镜像和编辑日志内存中的HDFS目录树及文件/目录元信息由INode及其子类保存,如果节点掉电或进程崩溃,数据将不再存在,因此,必须将上述信息保存到磁盘。命名空间镜像保存某一个时刻目录树的信息,它在HDFS中实现为类FSImage,是内存元数据和磁盘元数据间的桥梁。对内存目录树的修改,也必须同步到磁盘元数据上,但每次修改都将内存元数据导出到磁盘,显然是不现实的,为此,名字节点引入了镜像编辑日志,将改动保存在日志中,形成了命名空间镜像和编辑日志的备份机制,其中,命名空间镜像是某一个时间点内存元数据的真原创 2020-06-04 20:15:31 · 286 阅读 · 0 评论 -
hdfs数据节点实现
数据块存储数据节点的磁盘目录文件结构在第一次启动HDFS集群前,需要通过如下命令对名字节点进行格式化,让名字节点建立对应的文件结构:bin/hadoop namenode–format数据节点可以管理多个数据目录,被管理的目录通过配置项${dfs.data.dir}指定,如果该配置项的值为“/data/datanode,/data2/datanode”,则数据节点会管理这两个目录,并把它们作为数据块的保存目录。其中各个目录的作用如下:blocksBeingWritten:由名字可以知道,该文件原创 2020-06-04 19:55:54 · 703 阅读 · 0 评论 -
HDFS概述
HDFS采用了主从(Master/Slave)体系结构,名字节点NameNode、数据节点DataNode和客户端Client是HDFS中3个重要的角色。1.数据块HDFS的数据块比前面讨论过的磁盘块大得多,一个典型HDFS系统中,磁盘块的大小为64MB,也有使用128MB和256MB数据块大小的集群。2.名字节点和第二名字节点第二名字节点(Secondary NameNode,SNN)是用于定期合并命名空间镜像和镜像编辑日志的辅助守护进程。和名字节点一样,每个集群都有一个第二名字节点,在大规模部原创 2020-06-04 19:26:05 · 228 阅读 · 0 评论 -
hadoop文件系统
文件系统的实现1.块管理以磁盘为例,磁盘在逻辑上会划分为磁道、柱面和扇区,扇区是磁盘的读写单位,也是磁盘读写时候的最小寻址单位,一个扇区一般是512字节(自2009年底开始,磁盘制造商开始引入使用4096字节扇区的磁盘)。块管理用于记录存储块和文件的关联关系,对于随机存储设备(如磁盘)而言,一般有如下三种方法来实现块管理。(1)连续分配最简单的物理结构是连续分配,连续分配将文件中的N个逻辑块映射到N个地址连续的物理块上。以磁盘为例,如果扇区的大小是512字节,50KB的文件需要分配连续的100个扇原创 2020-06-04 16:43:01 · 260 阅读 · 0 评论 -
hadoop远程调用
Java远程方法调用Java远程方法调用(Remote Method Invocation,RMI)是Java的一个核心API和类库,允许一个Java虚拟机上运行的Java程序调用不同虚拟机上运行的对象中的方法,即使这两个虚拟机运行于物理隔离的不同主机上。在某种程度上,RMI可以看成RPC的Java升级版。Java RMI的开发往往从远程接口的定义开始,本例使用的远程接口如下:import java.rmi.Remote;import java.rmi.RemoteException;//远程接口原创 2020-06-04 11:21:32 · 1020 阅读 · 0 评论 -
深入理解hdfs设计之common
common实现序列化public interface Writable { /** * 输出(序列化)对象到流中 * @param out DataOuput流,序列化的结果保存在流中 * @throws IOException */ void write(DataOutput out) throws IOException; /** * 从流中读取(反序列化)对象 * 为了效率,请尽可能复用现有的对象 * @param in原创 2020-06-04 10:54:50 · 252 阅读 · 0 评论 -
elasticsearch集群搭建
1、新建es用户ckuseradd es#把互信的ssh文件cp给e用户mkdir /hoom/es/.sshcp/root/.ssh/* /home/es/.sshchown -R es:es /home/es/.sshcpush /home/es/.ssh /home/es#创建es所需目录和权限mkdir /usr/local/essmkdir /data/essmkdir /data/ess/es_homechown -R es:es /usr/local/esschown原创 2020-05-30 12:37:27 · 182 阅读 · 0 评论 -
elasticsearch综合应用
集群层· 节点总数不应该太多,一般来说,最大集群规模最好控制在100个节点左右。· 单个分片不要超过50GB,最大集群分片总数控制在几十万的级别。搜索对 CPU、内存、磁盘的性能要求都很高,要达到比较低的延迟就需要较好的硬件资源。. ES不建议为JVM配置超过32GB的内存,超过32GB时,Java内存指针压缩失效,浪费一些内存,降低了CPU性能,GC压力也较大。因此推荐设置为31GB:-Xmx31g -Xms31g当物理主机内存在64GB以上,并且拥有多个数据盘,不做raid的情况下,部署ES节原创 2020-05-28 20:32:12 · 3468 阅读 · 0 评论 -
elasticsearch参数优化
写入速度优化提升写入速度从以下几方面入手:· 加大translog flush间隔,目的是降低iops、writeblock。ES 2.x开始,在默认设置下,translog的持久化策略为:每个请求都“flush”。对应配置项如下:index.translog.durability: request由于数据既没有刷到Lucene,translog也没有刷盘,恢复时translog中没有这个数据,数据丢失),则调整translog持久化策略为周期性和一定大小的时候“flush”,例如:index.原创 2020-05-28 19:58:57 · 1546 阅读 · 0 评论 -
elasticsearch原理分析
集群内部原理1. 主节点(Master node)主节点负责集群层面的相关操作,管理集群变更。通过配置 node.master: true(默认)使节点具有被选举为 Master 的资格。主节点是全局唯一的,将从有资格成为Master的节点中进行选举。2. 数据节点(Data node)负责保存数据、执行数据相关操作:CRUD、搜索、聚合等。数据节点对CPU、内存、I/O要求较高。3. 预处理节点(Ingest node)这是从5.0版本开始引入的概念。预处理操作允许在索引文档之前,即写入数据原创 2020-05-27 08:38:18 · 359 阅读 · 0 评论