ZooKeeper

Hadoop NameNode 高可用 (High Availability) 实现解析[转]

一曲冷凌霜 提交于 2021-02-14 04:08:09
NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode 的单点问题尤为严重。因为 NameNode 保存了整个 HDFS 的元数据信息,一旦 NameNode 挂掉,整个 HDFS 就无法访问,同时 Hadoop 生态系统中依赖于 HDFS 的各个组件,包括 MapReduce、Hive、Pig 以及 HBase 等也都无法正常工作,并且重新启动 NameNode 和进行数据恢复的过程也会比较耗时。这些问题在给 Hadoop 的使用者带来困扰的同时,也极大地限制了 Hadoop 的使用场景,使得 Hadoop 在很长的时间内仅能用作离线存储和离线计算,无法应用到对可用性和数据一致性要求很高的在线应用场景中。 所幸的是,在 Hadoop2.0 中,HDFS NameNode 和 YARN ResourceManger(JobTracker 在 2.0 中已经被整合到 YARN ResourceManger 之中) 的单点问题都得到了解决,经过多个版本的迭代和发展,目前已经能用于生产环境。HDFS NameNode 和 YARN ResourceManger 的高可用 (High Availability,HA) 方案基本类似

Centos安装Consul微服务

巧了我就是萌 提交于 2021-02-13 22:51:38
一、简介 Consul([ˈkɒnsl],康搜)是注册中心,服务提供者、服务消费者等都要注册到Consul中,这样就可以实现服务提供者、服务消费者的隔离。除了Consul之外,还有Eureka、Zookeeper等类似软件。consul是存储服务名称与IP和端口对应关系的服务器 consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框 架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等)。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行agent,他有两种运行模式server和client。每个数据中心官方建议需要3或5个server节点以保证数据安全,同时保证server-leader的选举能够正确的进行。 @client CLIENT表示consul的client模式,就是客户端模式。是consul节点的一种模式,这种模式下,所有注册到当前节点的服务会被转发到SERVER,本身是不持久化这些信息。 @server SERVER表示consul的server模式,表明这个consul是个server,这种模式下,功能和CLIENT都一样,唯一不同的是,它会把所有的信息持久化的本地,这样遇到故障,信息是可以被保留的。 @server-leader

hadoop(1)---hadoop的介绍和几种模式。

元气小坏坏 提交于 2021-02-13 12:16:15
一、什么是hadoop? Hadoop软件库是一个开源框架, 允许使用简单的编程模型跨计算机集群分布式处理大型数据集。 它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储。 库本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用程序层的故障,从而在计算机集群之上提供高可用性服务,每个计算机都可能容易出现故障。是大数据技术的基础。 hadoop所包含的模块(从官网借鉴的): ♥ hadoop分布式文件系统(HDFS):一种分布式文件系统,能够提供高可靠、高可用、可扩展以及对应用程序数据的高吞吐量访问。 ♥ yarn :作业调度和资源管理的框架。 ♥ MapReduce :基于yarn框架,用于并行计算处理大型数据集,是一种计算框架。 ♥ ambari :基于Web的工具,用于配置,管理和监控Apache Hadoop集群,包括对Hadoop HDFS,Hadoop MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop的支持。Ambari还提供了一个用于查看群集运行状况的仪表板,例如热图,以及可视化查看MapReduce,Pig和Hive应用程序的功能,以及以用户友好的方式诊断其性能特征的功能。 ♥ avro :数据序列化系统。 ♥ cassandra:可扩展的多主数据库,没有单点故障。 ♥ hbase

docker搭建zookeeper集群实战

烈酒焚心 提交于 2021-02-12 19:06:28
拉取zookeeper镜像 docker pull zookeeper 根据镜像创建docker容器 分别创建容器zookeeper、zookeeper2、zookeeper3这三个容器 docker run --privileged=true -d --name zookeeper --publish 2181:2181 -d zookeeper:latest docker run --privileged=true -d --name zookeeper2 --publish 2182:2181 -d zookeeper:latest docker run --privileged=true -d --name zookeeper3 --publish 2183:2181 -d zookeeper:latest 注意,此时这三个容器还处于单机状态,并没有搭建好集群,我们需要规划一下这三个容器 容器id(已自己的为准) name 虚拟机端口 容器端口 容器ip myid 职责(看启动顺序,详情见zookeeper集群leader选取机制) 7c............. zookeeper 2181 2181 172.17.0.2 1 leader ee................ zookeeper2 2182 2181 172.17.0.3 2 follower ce..

HDFS Federation(联邦)简介

孤街浪徒 提交于 2021-02-12 15:27:07
1 文档编写目的 本文主要介绍HDFS Federation(联邦)相关知识,为后续文章《如何为CDH集群启用Federation(联邦)》做一个简单的铺垫。Federation即为“联邦”,该特性允许一个HDFS集群中存在多组Namenode同时对外提供服务,分管一部分目录(水平切分),彼此之间相互隔离,但共享底层的Datanode存储资源。 文章目录结构: 1. 文档编写目的 2. Federation 2.1 单组Namenode架构 2.2 单组Namenode局限性 2.3 为什么要引入Federation 3. Federation 介绍 3.1 Federation 架构 3.1.1 主要优点 3.1.3 主要缺点 3.2 Federation 局限性 4. 总结 2 Federation 背景 2.1 单组Namenode架构 HDFS 主要有两大模块: Namespace (命名空间): 由目录、文件和块组成,它支持所有命名空间相关的文件操作,如创建、删除、修改,查看所有文件和目录。 Block Storage Service (块存储服务):包括Block管理和存储两部分 Block 管理 通过控制注册以及阶段性的心跳,来保证Datanode的正常运行; 处理Block的报告信息和维护块的位置信息; 支持Block相关的操作,如创建、删除、修改

面试:Zookeeper常见11个连环炮

試著忘記壹切 提交于 2021-02-12 13:03:04
面试的时候,面试官只要看到你简历的上写的有Zookeeper(熟悉、掌握)之类,那你至少要准备接下来的11连问。 NO1:说说zookeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现(Chubby是不开源的),它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户 。 Zookeeper一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心,服务生产者将自己提供的服务注册到Zookeeper中心,服务的消费者在进行服务调用的时候先到Zookeeper中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据,简单示例图如下: NO2:了解Zookeeper的系统架构吗? Zoo Keeper 的架构图中我们需要了解和掌握的主要有: (1)ZooKeeper分为服务器端(Server) 和客户端(Client),客户端可以连接到整个 ZooKeeper服务的任意服务器上(除非 leaderServes 参数被显式设置, leader 不允许接受客户端连接)。 (2)客户端使用并维护一个 TCP 连接,通过这个连接发送请求、接受响应、获取观察的事件以及发送心跳。如果这个 TCP 连接中断

Centos7安装配置Zookeeper

坚强是说给别人听的谎言 提交于 2021-02-12 11:32:17
前言: 在小企业或者一些小项目中,当网站流量很小时,只需一个应用,便能将所有功能都部署在一起,以减少部署节点和成本。但当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率,也就是我们常说的MVC垂直应用架构。可是当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。 此时,用于提高业务复用及整合的分布式服务框架(RPC) 是关键,Dubbo就在这种情况下应运而生。 由于本文不是重点介绍Dubbo和zookeeper的技术文章,如果想深入学习原理,请移步官网。 Dubbo官网:http: //dubbo.apache.org/ Zookeeper官网:http: //zookeeper.apache.org/ Dubbo建议使用Zookeeper作为服务的注册中心,本文作者在公司中也是使用Zookeeper,所以在偏向应用层面给大家介绍如何安装配置Zookeeper,为后续Dubbo的使用实例做铺垫。 废话了这么多,现在来介绍如何在Centos7上安装配置Zookeeper。 1、cd到/usr/local文件夹下,创建 /usr/local/zookeeper 文件夹: mkdir zookeeper 2、进入到 /usr/local

Kafka的存储机制以及可靠性

為{幸葍}努か 提交于 2021-02-12 09:13:09
一、 kafka的存储机制 kafka通过topic来分主题存放数据,主题内有分区,分区可以有多个副本,分区的内部还细分为若干个segment。 所谓的分区其实就是在kafka对应存储目录下创建的文件夹,文件夹的名字是主题名加上分区编号,编号从0开始。 1、 segment 所谓的segment其实就是在分区对应的文件夹下产生的文件。 一个分区会被划分成大小相等的若干segment,这样一方面保证了分区的数据被划分到多个文件中保证不会产生体积过大的文件;另一方面可以基于这些segment文件进行历史数据的删除,提高效率。 一个segment又由一个.log和一个.index文件组成。 1. .log .log文件为数据文件用来存放数据分段数据。 2. .index .index为索引文件保存对对应的.log文件的索引信息。 在.index文件中,保存了对对应.log文件的索引信息,通过查找.index文件可以获知每个存储在当前segment中的offset在.log文件中的开始位置,而每条日志有其固定格式,保存了包括offset编号、日志长度、key的长度等相关信息,通过这个固定格式中的数据可以确定出当前offset的结束位置,从而对数据进行读取。 3. 命名规则 这两个文件的命名规则为: partition全局的第一个segment从0开始

Kafka的存储机制以及可靠性

最后都变了- 提交于 2021-02-12 09:12:54
一、 kafka的存储机制 kafka通过topic来分主题存放数据,主题内有分区,分区可以有多个副本,分区的内部还细分为若干个segment。 所谓的分区其实就是在kafka对应存储目录下创建的文件夹,文件夹的名字是主题名加上分区编号,编号从0开始。 1、 segment 所谓的segment其实就是在分区对应的文件夹下产生的文件。 一个分区会被划分成大小相等的若干segment,这样一方面保证了分区的数据被划分到多个文件中保证不会产生体积过大的文件;另一方面可以基于这些segment文件进行历史数据的删除,提高效率。 一个segment又由一个.log和一个.index文件组成。 1. .log .log文件为数据文件用来存放数据分段数据。 2. .index .index为索引文件保存对对应的.log文件的索引信息。 在.index文件中,保存了对对应.log文件的索引信息,通过查找.index文件可以获知每个存储在当前segment中的offset在.log文件中的开始位置,而每条日志有其固定格式,保存了包括offset编号、日志长度、key的长度等相关信息,通过这个固定格式中的数据可以确定出当前offset的结束位置,从而对数据进行读取。 3. 命名规则 这两个文件的命名规则为: partition全局的第一个segment从0开始

阿里技术文档:Redis+Nginx+设计模式+Spring全家桶+Dubbo文档精选

↘锁芯ラ 提交于 2021-02-12 05:41:30
最近花了很长的时间去搜罗整理Java核心技术好文,我把每个Java核心技术的优选文章都整理成了一个又一个的文档。 今天就把这些东西分享给老铁们,也能为老铁们省去不少麻烦,想学什么技能了,遇到哪方面的问题了 直接打开文档学一学就好了。 不多说,直接上干货! 一、Redis技术好文精选整理(共11篇) Redis实战 Redis设计与实现_扫描版_12.7M Redis入门指南 Redis缓存和MySQL数据一致性方案详解 Redis哨兵、复制、集群的设计原理,以及区别 Spring Boot 整合 Redis 新浪微博开放平台中的 redis 实践 一文梳理 Redis 基础 分布式锁的由来、及Redis分布式锁的实现详解 Redis为什么是单线程、及高并发快的3大原因详解 如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题 二 、Ngi nx技术好文精选整理(共6篇) 《Netty权威指南(第2版)》 Nginx 反向代理、负载均衡图文教程 ! Nginx 搭建图片服务器 Nginx 配置参数中文说明 全面了解 Nginx 主要应用场景 后端实践:Nginx日志配置(超详细) 三、设计模式技术好文精选整理(共6篇) JAVA多线程设计模式 《Head First设计模式(高清版)》 设计模式:Java语言中的应用 设计模式-可复用面向对象软件的基础