zookeeper集群

Zookeeper JAVA_HOME is not set and java could not be found in PATH

倖福魔咒の 提交于 2020-01-01 14:32:00
今天第一次学习Zookeeper,集群环境,在其中一台上面安装一直启动失败,记录一下 问题 提示JAVA环境不存在 环境: 三台服务器 阿里云ECS(CentOS 7.6 64位) 腾讯云服务器(CentOS 7.5 64位) 阿里云轻量应用服务器(CentOS 7.3) 问题出现在第三台服务器上,三台服务器Java环境安装都没有问题(有项目在跑),但是阿里云的轻量应用服务器安装 Zookeeper 启动的时候一直报错,重装一次系统之后还是这样,只能改配置文件了 解决 进入 Zookeeper 的 bin 目录下,修改 zkEnv.sh 文件 添加如下内容: 首先可以看到报错日志来源,要做的就是在报错判断前面强行加上JAVA环境(为什么会找不到环境未深究,刚开始学而且另外两台服务器没问题),把参数改成你自己的JAVA环境变量即可,保存并退出,启动Zookeeper即可,如上图,启动成功 来源: CSDN 作者: single_cong 链接: https://blog.csdn.net/single_cong/article/details/103792242

Windows 下 Zookeeper 启动脚本

送分小仙女□ 提交于 2020-01-01 13:28:53
1. 下载地址 http://apache.etoak.com/zookeeper/ 当前最新版: http://apache.etoak.com/zookeeper/zookeeper-3.4.4/ 2. 解压到 C:\myserver\zookeeper-3.4.4\ 3. 修改配置 其中 单机模式不需要 initLimit 、syncLimit 设置 tickTime=2000 dataDir=C:\\myserver\\zookeeper-3.4.4\\data dataLogDir=C:\\myserver\\zookeeper-3.4.4\\log clientPort=2181 4. 启动脚本start.bat setlocal set ZOOCFGDIR=%~dp0%../conf set ZOO_LOG_DIR=%~dp0%.. set ZOO_LOG4J_PROP=INFO,CONSOLE set CLASSPATH=%ZOOCFGDIR% set CLASSPATH=%~dp0../*;%~dp0../lib/*;%CLASSPATH% set CLASSPATH=%~dp0../build/classes;%~dp0../build/lib/*;%CLASSPATH% set ZOOCFG=%ZOOCFGDIR%/zoo.cfg set ZOOMAIN

分布式大牛详解Zookeeper底层原理

﹥>﹥吖頭↗ 提交于 2020-01-01 00:43:17
很多学员都在反馈,说zk很难学,学的不是很明白,在这里,我继续带着大家详解一遍Zookeeper 首先zk是什么呢首先肯定是一个个分布式服务框架,是Apache Hadoop 的一个子项目,它主要是用来解决分布式应用 中经常遇到的一些数据管理问题,如:统一命名服务、集群管理、分布式应用配置项的管理 等。 第二:Zookeeper是一个数据库 第三:Zookeeper是一个拥有一件系统特点的数据库 第四:Zookeeper是一个解决了数据一致性问题的分布式数据库 第五:Zookeeper是一个具有发布和订阅功能的分布式数据库 (watch) 这样说同学们应该都是认同的吧,没有异议的吧 那么这个一致性又是什么呢 一致性分为强一致性,弱一致性, 最终一致性 有些同学不是很懂哈,那就接着看下面的内容 强制要求步骤2读取的时候,一定要读取的是2,不能读取到的是1,那么要求数据库之间同步异常迅速或者在步骤2上加锁以等待数据同步完成,那么这种叫强一致性; 允许步骤2读取的时候,可以读取的是1,那么这种叫弱一致性,其实就是不需要要一致; 允许步骤2读取的时候,可以先读到 1,过一段时间再读到2,那么这种叫最终一致性,就是可以等待一段时间才一致; 一个集群需要对外部提供强一致性,所以只要集群内部某一台服务器的数据发生了改变,那么就需要等待集群内其他服务器的数据同步完成后才能正常的对外提供服务。

这可能是全网讲得最清楚的 ZooKeeper 概念文章了

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

hadoop完全分布式安装

和自甴很熟 提交于 2019-12-29 02:17:43
下面记录下hadoop完全分布式安装的过程,其中hadoop使用的版本是apache下的,不是cdh。 完全分布式示意图 下面在三台节点上安装hadoop完全分布式,其中一个服务器节点上将有多个hadoop相关的节点,最后是压缩到三台的安装效果,正常来说至少13个服务节点。 (1)zookeeper用于管理namenode,用于故障转移主备切换,其中zookeeper通过failoverController进程来进行namenode主备切换。 (2)namenode主备之间通过journalNode来进行通信,进行数据同步。 (3)resourceManager也会有两个,一个挂了另外一个顶上。 (4)datanode上储存数据,MR计算有数据本地化策略,nodeManager一般和datanode在一起。 以上是最后安装的节点分布图,下面开始安装部署。 前置准备 前置准备包括关闭linux防火墙、修改主机名、ip映射、配置jdk和免密登录,可参考 https://www.cnblogs.com/youngchaolin/p/11992600.html ,其中这里使用的主机名分别为hadoop01、hadoop02和hadoop03。ip映射需修改/etc/hosts文件,添加三台ip和节点名的映射关系。以上操作三台都需要准备好,容易出现问题的就是免密登录,下面记录一下。

zookeeper(16)源码分析-ZAB协议

▼魔方 西西 提交于 2019-12-29 00:11:11
Zookeeper使用了Zookeeper Atomic Broadcast(ZAB,Zookeeper原子消息广播协议)的协议作为其数据一致性的核心算法。ZAB协议是为Zookeeper专门设计的一种支持崩溃恢复的原子广播协议。 ZAB理论 ZAB协议的核心是定义了对于那些会改变Zookeeper服务器数据状态的事务请求的处理方式,即: 所有事务请求必须由一个全局唯一的服务器来协调处理 ,这样的服务器被称为Leader服务器,余下的服务器则称为Follower服务器,Leader服务器负责将一个客户端事务请求转化成一个事务Proposal(提议),并将该Proposal分发给集群中所有的Follower服务器,之后Leader服务器需要等待所有Follower服务器的反馈,一旦超过半数的Follower服务器进行了正确的反馈后,那么Leader就会再次向所有的Follower服务器分发Commit消息,要求其将前一个Proposal进行提交。 ZAB一些包括两种基本的模式: 崩溃恢复 和 消息广播 。 1、当整个服务框架启动过程中或Leader服务器出现网络中断、崩溃退出与重启等异常情况时,ZAB协议就会进入恢复模式并选举产生新的Leader服务器。当选举产生了新的Leader服务器,同时集群中已经有过半的机器与该Leader服务器完成了状态同步之后,ZAB协议就会退出恢复模式

ELK日志收集demo

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-27 19:21:46
架构目标 说明 系统: CentOS Linux release 7.5.1804 ELK版本: filebeat-6.8.5-x86_64.rpm, logstash-6.8.5.rpm, elasticsearch-6.8.5.rpm, kibana-6.8.5-x86_64.rpm kafka_2.11-2.0.0 zookeeper-3.4.12 地址 名称 功能, 按图左至右 192.168.9.133 test1.xiong.com nginx + 虚拟主机 + filebeat 192.168.9.134 test2.xiong.com nginx + 虚拟主机 + filebeat 192.168.9.135 test3.xiong.com elasticsearch + kibana + logstash 192.168.9.136 test4.xiong.com elasticsearch + kibana + logstash 192.168.9.137 test5.xiong.com redis + logstash (这里使用kafka) 192.168.9.138 test6.xiong.com redis + logstash (这里使用kafka) 实践并不需要这么多 准备4台即可 1、配置 1.1、主机名 ~]# cat /etc/hosts

Dubbo 如何成为连接异构微服务体系的最佳服务开发框架

此生再无相见时 提交于 2019-12-27 16:47:31
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 从编程开发的角度来说,Apache Dubbo (以下简称 Dubbo )首先是一款 RPC 服务框架,它最大的优势在于提供了面向接口代理的服务编程模型,对开发者屏蔽了底层的远程通信细节。同时 Dubbo 也是一款服务治理框架,它为分布式部署的微服务提供了服务发现、流量调度等服务治理解决方案。 在这篇文章中,我们将以以上基础能力为背景,尝试突破 Dubbo 体系自身,探索如何利用 Dubbo 对多协议、多服务发现模型的支持,来实现异构微服务体系间的互联互通。在实际业务场景中,这可以用来解决异构技术体系共存场景下的通信问题,帮助公司实现在异构技术体系间作平滑迁移,解决大规模跨区域、多集群部署场景的地址发现及流量调度等问题。 面向接口代理的透明服务开发框架 我们还是从 Dubbo 是一个微服务开发框架 这个大家熟知的概念开始。就像 Spring 是开发 Java 应用的基础框架一样,我们经常会选用 Dubbo 作为开发微服务业的基础框架。 Dubbo 框架的最大优势我认为就在其面向接口的编程模型,使得开发远程服务调用就像开发本地服务一样(以 Java 语言为例): 服务定义 public interface GreetingsService { String sayHi(String name); }

zookeeper基本知识入门(一)

≯℡__Kan透↙ 提交于 2019-12-27 10:45:55
之前我们在搭建hadoop分布式环境的时候用到过Zookeeper注册hadoop服务。那么到底Zookeeper在分布式环境中发挥了什么作用呢,这次我们就来讨论这个问题。 在分布式系统中通常都会有多台机器构成一个集群来对外提供服务,对外来说有几台机器在提供服务它并不关心,那么对内而言组成集群的机器如何互相协调保持一致这是个问题。Zookeeper将提供这样的一个功能–分布式协调技术。 1. Zookerrper概述 ZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务:分布式锁服务。由于ZooKeeper的开源特性,后来我们的开发者在分布式锁的基础上,摸索了出了其他的使用方法:配置维护、组服务、分布式消息队列、分布式通知/协调等。 ZooKeeper性能上的特点决定了它能够用在大型的、分布式的系统当中。从可靠性方面来说,它并不会因为一个节点的错误而崩溃。除此之外,它严格的序列访问控制意味着复杂的控制原语可以应用在客户端上。ZooKeeper在一致性、可用性、容错性的保证,也是ZooKeeper的成功之处,它获得的一切成功都与它采用的协议——Zab协议是密不可分的。 ZooKeeper在实现这些服务时,首先它设计一种新的数据结构——Znode,然后在该数据结构的基础上定义了一些原语,也就是一些关于该数据结构的一些操作

使用Curator操作ZooKeeper

一笑奈何 提交于 2019-12-27 10:00:29
Curator是Netflix公司开源的一个ZooKeeper client library,用于简化ZooKeeper客户端编程。它包含如下模块: Framework:Framework是ZooKeeper API的High-Level的封装,它让访问ZooKeeper更加简单。它基于ZooKeeper添加了一些新的特性,同时屏蔽了访问ZooKeeper集群在管理连接和重试操作方面的复杂度。 Recipes:在Framework的基础上,实现了一些通用的功能,称之为“菜单”。 Utilities:访问ZooKeeper时候的一些公用方法。 Client:一个Low-Level的ZooKeeper客户端,并有一些公用方法。 Errors:Curator的异常处理,包括连接问题,异常恢复等等。 Extensions: 连接ZooKeeper RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3); CuratorFramework _client = CuratorFrameworkFactory.newClient("10.23.22.237:2181", retryPolicy); _client.start(); Curator通过CuratorFrameworkFactory来创建客户端