zookeeper集群

看完这篇文章你就清楚的知道 ZooKeeper的 概念了

ぃ、小莉子 提交于 2019-11-25 22:44:38
前言 相信大家对 ZooKeeper 应该不算陌生。但是你真的了解 ZooKeeper 是个什么东西吗?如果别人/面试官让你给他讲讲 ZooKeeper 是个什么东西,你能回答到什么地步呢? 我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 solr 集群的时候,我使用到了 ZooKeeper 作为 solr 集群的管理工具。前几天,总结项目经验的时候,我突然问自己 ZooKeeper 到底是个什么东西?想了半天,脑海中只是简单的能浮现出几句话:“①Zookeeper 可以被用作注册中心。 ②Zookeeper 是 Hadoop 生态系统的一员;③构建 Zookeeper 集群的时候,使用的服务器最好是奇数台。” 可见,我对于 Zookeeper 的理解仅仅是停留在了表面。 所以,通过本文,希望带大家稍微详细的了解一下 ZooKeeper 。如果没有学过 ZooKeeper ,那么本文将会是你进入 ZooKeeper 大门的垫脚砖。如果你已经接触过 ZooKeeper ,那么本文将带你回顾一下 ZooKeeper 的一些基础概念。 最后,本文只涉及 ZooKeeper 的一些概念,并不涉及 ZooKeeper 的使用以及 ZooKeeper 集群的搭建。 网上有介绍 ZooKeeper 的使用以及搭建 ZooKeeper 集群的文章

一起走进动物园管理员——ZooKeeper

假如想象 提交于 2019-11-25 22:27:58
一、ZooKeeper简介 1. ZooKeeper是什么 ​ Apache ZooKeeper是一个开源的分布式服务框架,为分布式应用提供协调服务,用来解决分布式应用中的数据管理问题,如:配置管理、域名服务、分布式同步、集群管理等 官网 https://zookeeper.apache.org/ ZooKeeper视频教程 http://edu.51cto.com/course/16190.html 2. ZooKeeper组成 ​ 主要包括两部分:文件系统、通知机制 2.1 文件系统 ​ ZooKeeper维护一个类似Linux文件系统的数据结构,用于存储数据 数据模型结构是一种树形结构,由许多节点构成 每个节点叫做ZNode(ZooKeeper Node) 每个节点对应一个唯一路径,通过该路径来标识节点,如 /app1/p_2 每个节点只能存储大约1M的数据 ​ 节点类型有四种: 持久化目录节点 persistent 客户端与服务器断开连接,该节点仍然存在 持久化顺序编号目录节点 persistent_sequential 客户端与服务器断开连接,该节点仍然存在,此时节点会被顺序编号,如:000001、000002..... 临时目录节点 ephemeral 客户端与服务器断开连接,该节点会被删除 临时顺序编号目录节点 ephemeral_sequential

playbook自动安装kafka集群

主宰稳场 提交于 2019-11-25 22:16:17
一、环境说明 1、服务器信息 172.21.184.43 kafka、zk 172.21.184.44 kafka、zk 172.21.184.45 kafka、zk 172.21.244.7 ansible 2、软件版本信息 系统:CentOS Linux release 7.5.1804 (Core) kafka:kafka_2.11-2.2.0 Zookeeper version: 3.4.8 ansible:ansible 2.7.10 二、配置准备 1、编写playbook相关配置文件,先tree看下整目录结构 tree . ├── kafka │ ├── group_vars │ │ └── kafka │ ├── hosts │ ├── kafkainstall.yml │ └── templates │ ├── server.properties-1.j2 │ ├── server.properties-2.j2 │ ├── server.properties-3.j2 │ └── server.properties.j2 └── zookeeper ├── group_vars │ └── zook ├── hosts ├── templates │ └── zoo.cfg.j2 └── zooKeeperinstall.yml 2、建立相关目录 mkdir

Hadoop2.0分布式集群的平台搭建

為{幸葍}努か 提交于 2019-11-25 20:47:15
一、Hadoop集群安装前的准备 基础环境 四台Centos6.5 IP地址: 192.168.174.128 192.168.174.129 192.168.174.130 192.168.174.131 四台主机新建hadoop用户并实现ssh免密登陆 iptables关闭和selinux为disabled 1.修改主机名和ip地址映射 为了后面操作方便,修改主机名分别为hadoop01、hadoop02、hadoop03、hadoop04。修改主机名只需修改/etc/sysconfig/network文件hostname行即可,这里博主不再复述。然后修改/etc/hosts文件,将ip地址和主机名的映射写入进去,这样,后面其它主机就可根据主机名去对应ip地址。 2.安装JDK Hadoop的核心组成之一MapReduce是基于java的,因此需要配置基本的java环境。JDK安装十分简单,前面也多次提到。下载jdk安装包,解压jdk到指定目录。 tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/local/java 修改环境变量,进入/etc/profile export JAVA_HOME=/usr/local/java/jdk1.8.0_181 export PATH=$PATH:$JAVA_HOME/bin 重新加载环境变量生效

Kafka笔记整理(一)

青春壹個敷衍的年華 提交于 2019-11-25 20:24:29
[TOC] Kafka简介 消息队列(Message Queue) 消息 Message 网络中的两台计算机或者两个通讯设备之间传递的数据。例如说:文本、音乐、视频等内容。 队列 Queue 一种特殊的线性表(数据元素首尾相接),特殊之处在于只允许在首部删除元素和在尾部追加元素。入队、出队。 消息队列 MQ 消息+队列,保存消息的队列。消息的传输过程中的容器;主要提供生产、消费接口供外部调用做数据的存储和获取。 MQ分类 MQ主要分为两类:点对点(p2p)、发布订阅(Pub/Sub) 共同点: 消息生产者生产消息发送到queue中,然后消息消费者从queue中读取并且消费消息。 不同点: p2p模型包括:消息队列(Queue)、发送者(Sender)、接收者(Receiver) 一个生产者生产的消息只有一个消费者(Consumer)(即一旦被消费,消息就不在消息队列中)。比如说打电话。 Pub/Sub包含:消息队列(Queue)、主题(Topic)、发布者(Publisher)、订阅者(Subscriber) 每个消息可以有多个消费者,彼此互不影响。比如我发布一个微博:关注我的人都能够看到。 那么在大数据领域呢,为了满足日益增长的数据量,也有一款可以满足百万级别消息的生成和消费,分布式、持久稳定的产品——Kafka。 Kafka简介 Kafka是分布式的发布—订阅消息系统

java操作Zookeeper

纵然是瞬间 提交于 2019-11-25 19:29:57
Zookeeper 什么是 Zookeeper Zookeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身可以以单机模式安装运行,不过它的长处在于通过分布式ZooKeeper集群(一个Leader,多个Follower),基于一定的策略来保证ZooKeeper集群的稳定性和可用性,从而实现分布式应用的可靠性。 1、zookeeper是为别的分布式程序服务的 2、Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务) 3、Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统> 一名称服务等 4、虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能: 管理 (存储,读取)用户程序提交的数据(类似namenode中存放的metadata); 并为用户程序提供数据节点监听服务; 启动单机 1.Zoolnspector 文件 在里面创建一个 data 空文件夹 把 conf 里面的 zoo.... 改成 zoo

Zookeeper集群

百般思念 提交于 2019-11-25 17:01:32
配置: tickTime=2000 dataDir=D:/zookeeper-3.2.2/data clientPort=2181 initLimit=5 syncLimit=2 server.1=192.168.211.1:2888:3888 server.2=192.168.211.2:2888:3888 initLimit:客户端与服务器件多少个tickTime没有检查到心跳,则表示断开连接; syncLimit:服务器集群件多少个tickTime没有检查到心跳,则表示服务器挂了; server.zid=ip:cport:lport :其中zid为该服务器的标识,后面要用到,ip为机器地址,cport是与客户端通信的端口,lport是服务器间进行选举的端口; 同时在dataDir 配置的目录下添加文件myid,内容为上面的zid。 可见配置集群需要为每个zookeeper几点进行配置,这样如果添加节点那不是需要全部重新配置? 连接: new ZooKeeper("ip:port,ip:port...", sessionTimeout, watcher) 我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=25uvjp7f5vi84 来源: https:/

dubbo花钱买的知识精髓

别说谁变了你拦得住时间么 提交于 2019-11-25 16:58:03
Dubbo 初步认识dubbo及基本应用 官方网址:http://dubbo.apache.org 由于业务的复杂度公司服务不断增多,那么远程服务之 间的调用才是实现分布式的关键因素。 服务与服务之间的调用无非 就是跨进程通信而已,我们可以使用 socket 来实现通信,我们也可以使用 nio来实现高性能通信。我们不用这些开源的RPC框架,也可以完成通信的过程。 官方图解: 图解说明: 节点 角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次数和调用时间的监控中心 Container 服务运行容器 但是为什么要用现成的框架呢? 1. 底层网络通信协议的处理 ; 2. 序列化和反序列化的处理工作 ; 3. 网络请求之间的负载均衡、容错机制、服务降级机制等等要一一处理太麻烦; 大规模服务化对于服务治理的要求 ? 我认为到目前为止,还只是满足了通信的基础需求,但是当企业开始大规模 的服务化以后,远程通信带来的弊端就越来越明显了。比如说 1. 服务链路变长了,如何实现对服务链路的跟踪和监控呢? 2. 服务的大规模集群使得服务之间需要依赖第三方注册中心来解决服务的 发现和服务的感知问题 3. 服务通信之间的异常,需要有一种保护机制防止一个节点故障引发大规模 的系统故障