• [技术干货] Zookeeper linux 服务端集群搭建步骤
    所需准备工作,创建三台虚拟机环境并安装好 java 开发工具包 JDK,可以使用 VM 或者 vagrant+virtualbox 搭建 centos/ubuntu 环境,本案例基于宿主机 windows10 系统同时使用 vagrant+virtualbox 搭建的 centos7 环境,如果直接使用云服务器或者物理机同理。骤一:准备三台 zookeeper 环境和并按照上一教程下载 zookeeper 压缩包,三台集群 centos 环境如下:机器一:192.168.3.33提示: 查看 ip 地址可以用 ifconfig 命令。步骤二:别修改 zoo.cfg 配置信息zookeeper 的三个端口作用1、2181 : 对 client 端提供服务2、2888 : 集群内机器通信使用3、3888 : 选举 leader 使用按 server.id = ip:port:port 修改集群配置文件:三台虚拟机 zoo.cfg 文件末尾添加配置:server.1=192.168.3.33:2888:3888server.2=192.168.3.35:2888:3888server.3=192.168.3.37:2888:3888根据 id 和对应的地址分别配置 myidvim /tmp/zookeeper/myid本案例配置完成后查询显示如下:IP 192.168.3.33 机器配置 myid,因为这台机器上个教程单机启动过,所以出现 version-2,没有也没关系。步骤三:启动集群启动前需要关闭防火墙(生产环境需要打开对应端口)systemctl stop firewalld启动 192.168.3.33 并查看日志,此时日志出现报错是正常现象,因为另外两台还没启动,暂时连接不上。另两台分别启动后,查看三台机器状态:IP 192.168.3.33IP 192.168.3.35最后显示集群搭建成功!Mode:leader 代表主节点,follower 代表从节点,一主二从。
  • [技术干货] Zookeeper 安装配置
    Linux 安装zookeeper 下载地址为: https://zookeeper.apache.org/releases.html。选择一稳定版本,本教程使用的 release 版本为3.4.14,下载并安装。打开网址 https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz,看到如下界面:选择一个下载地址,使用 wget 命令下载并安装:Zookeeper 下载安装$ wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz$ tar -zxvf zookeeper-3.4.14.tar.gz$ cd zookeeper-3.4.14$ cd conf/$ cp zoo_sample.cfg zoo.cfg$ cd ..$ cd bin/$ sh zkServer.sh start执行后,服务端启动成功:启动客户端:$ sh zkCli.sh帮助命令:ZooKeeper -server host:port cmd args stat path [watch] set path data [version] ls path [watch] delquota [-n|-b] path ls2 path [watch] setAcl path acl setquota -n|-b val path history redo cmdno printwatches on|off delete path [version] sync path listquota path rmr path get path [watch] create [-s] [-e] path data acl addauth scheme auth quit getAcl path close connect host:portWindows 下安装zookeeper 下载地址为: https://zookeeper.apache.org/releases.html。选择一个地址点击版本下载:下载后解压:在安装目录下面新建一个空的 data 文件夹和 log 文件夹:修改 zoo.cfg 配置文件,将 dataDir=/tmp/zookeeper 修改成 zookeeper 安装目录所在的 data 文件夹,再添加一条添加数据日志的配置(需要根据自己的安装路径修改)。
  • [技术干货] ZooKeeper基础知识(转)
    ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。ZooKeeper 的架构通过冗余服务实现高可用性。Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。谁适合阅读本教程?本教程是为专业的程序开发人员,通过本教程你可以一步一步了解 zookeeper 的应用。zookeeper 数据结构zookeeper 提供的名称空间非常类似于标准文件系统,key-value 的形式存储。名称 key 由斜线 / 分割的一系列路径元素,zookeeper 名称空间中的每个节点都是由一个路径标识。相关 CAP 理论CAP 理论指出对于一个分布式计算系统来说,不可能同时满足以下三点:一致性:在分布式环境中,一致性是指数据在多个副本之间是否能够保持一致的特性,等同于所有节点访问同一份最新的数据副本。在一致性的需求下,当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致的状态。可用性:每次请求都能获取到正确的响应,但是不保证获取的数据为最新数据。分区容错性:分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务,除非是整个网络环境都发生了故障。一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。在这三个基本需求中,最多只能同时满足其中的两项,P 是必须的,因此只能在 CP 和 AP 中选择,zookeeper 保证的是 CP,对比 spring cloud 系统中的注册中心 eruka 实现的是 AP。BASE 理论BASE 是 Basically Available(基本可用)、Soft-state(软状态) 和 Eventually Consistent(最终一致性) 三个短语的缩写。基本可用:在分布式系统出现故障,允许损失部分可用性(服务降级、页面降级)。软状态:允许分布式系统出现中间状态。而且中间状态不影响系统的可用性。这里的中间状态是指不同的 data replication(数据备份节点)之间的数据更新可以出现延时的最终一致性。最终一致性:data replications 经过一段时间达到一致性。BASE 理论是对 CAP 中的一致性和可用性进行一个权衡的结果,理论的核心思想就是:我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性。相关资源zookeeper 官网:https://zookeeper.apache.org/
  • [运维管理] HD 6.5.1.3 版本集群 zookeeper和kafka是否有限制客户端ip访问的方法?kerberos除外
    【操作步骤&问题现象】HD 6.5.1.3 版本集群 zookeeper和kafka是否有限制客户端ip访问的方法?kerberos除外
  • [openEuler] openEuler20.03 LTS sp1操作系统下发布Apache ZooKeeper3.5.9
    一、架构信息和软件版本信息 :[root@localhost ~]# cat /etc/os-release [root@localhost ~]# uname -i二、切换目录并下载软件包到该目录[root@localhost ~]# cd /usr/local/ [root@localhost local]# wget https://downloads.apache.org/zookeeper/zookeeper-3.5.9/apache-zookeeper-3.5.9-bin.tar.gz三、解压之后修改目录名称并创建 data 文件夹tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz mv apache-zookeeper-3.5.9-bin zookeeper-3.5.9 cd zookeeper-3.5.9 mkdir data四、进入 conf 目录,修改 zoo_sample.cfg 名称为 zoo.cfg,编辑 zoo.cfg ,修改 配置配置文件里的dataDir为上面创建的 data 的路径为  /usr/local/zookeeper-3.5.9/data[root@localhost zookeeper-3.5.9]# cd conf/ [root@localhost conf]# cp -a zoo_sample.cfg zoo.cfg [root@localhost conf]# ls [root@localhost conf]# vi zoo.cfg zoo.cfg的详细配置如下:# The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=10 # The number of ticks that can pass between # sending a request and getting an acknowledgement syncLimit=5 # the directory where the snapshot is stored. # do not use /tmp for storage, /tmp here is just # example sakes. dataDir=/usr/local/zookeeper-3.5.9/data # the port at which the clients will connect clientPort=2181 # the maximum number of client connections. # increase this if you need to handle more clients #maxClientCnxns=60 # # Be sure to read the maintenance section of the # administrator guide before turning on autopurge. # # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # # The number of snapshots to retain in dataDir #autopurge.snapRetainCount=3 # Purge task interval in hours # Set to "0" to disable auto purge feature五、进入 bin 目录启动zookpeercd /usr/local/zookeeper-3.5.9/bin ./zkServer.sh start启动成功六、zookeeper节点的增删改查./zkCli.sh下面是zk的一些命令测试,如果需要尝试可以查更多资料了解。WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 0] [zk: localhost:2181(CONNECTED) 0] ls / [zookeeper] [zk: localhost:2181(CONNECTED) 1] create /node0 zk-3-5-9 Created /node0 [zk: localhost:2181(CONNECTED) 2] get /node0 zk-3-5-9 [zk: localhost:2181(CONNECTED) 3] stat /node0 cZxid = 0x2 ctime = Sat Aug 07 23:23:44 CST 2021 mZxid = 0x2 mtime = Sat Aug 07 23:23:44 CST 2021 pZxid = 0x2 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 8 numChildren = 0 [zk: localhost:2181(CONNECTED) 4] ls / [node0, zookeeper]
  • [openEuler] openEuler20.03 LTS sp1操作系统下发布Apache ZooKeeper 3.7
    一、架构信息和软件版本信息 : cat /etc/os-release uname -i 二、切换目录并下载软件包到该目录 cd /usr/local/ wget https://downloads.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz 三、解压之后修改目录名称并创建 data 文件夹tar -zxvf apache-zookeeper-3.7.0-bin.tar.gz mv apache-zookeeper-3.7.0-bin zookeeper-3.7.0 cd zookeeper-3.7.0 mkdir data 四、进入 conf 目录,修改 zoo_sample.cfg 名称为 zoo.cfg,编辑 zoo.cfg ,修改 dataDir为上面创建的 data 的路径为  /usr/local/zookeeper-3.7.0/datacd conf/ mv zoo_sample.cfg zoo.cfg vi zoo.cfg五、进入 bin 目录启动zookpeer cd /usr/local/zookeeper-3.7.0/bin ./zkServer.sh start  启动成功六、zookeeper节点的增删改查./zkCli.sh下面是zk的一些命令测试,如果需要尝试可以查更多资料了解。
  • [openEuler] openEuler20.03 LTS sp1操作系统下发布Apache ZooKeeper 3.6.3
    一、架构信息和软件版本信息 : cat /etc/os-release       uname -i                     二、切换目录并下载软件包到该目录 cd /usr/local/wget https://downloads.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz 三、解压之后修改目录名称并创建 data 文件夹tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz   mv apache-zookeeper-3.6.3-bin zookeeper-3.6.3cd zookeeper-3.6.3mkdir data四、进入 conf 目录,修改 zoo_sample.cfg 名称为 zoo.cfg,编辑 zoo.cfg ,修改 dataDir为上面创建的 data 的路径为  /usr/local/zookeeper-3.6.3/datacd conf/mv zoo_sample.cfg zoo.cfg vi zoo.cfg五、进入 bin 目录启动zookpeer      cd /usr/local/zookeeper-3.6.3/bin      ./zkServer.sh start启动成功六、zookeeper节点的增删改查./zkCli.sh下面是zk的一些命令测试,如果需要尝试可以查更多资料了解。[zk: localhost:2181(CONNECTED) 1] ls /   [zookeeper][zk: localhost:2181(CONNECTED) 2] create /node_1 openeuler1334Created /node_1[zk: localhost:2181(CONNECTED) 3] create -s /node_1/node_1_1 openeuler666Created /node_1/node_1_10000000000[zk: localhost:2181(CONNECTED) 4] get /node_1openeuler1334[zk: localhost:2181(CONNECTED) 5] stat /node_1cZxid = 0x2ctime = Fri Jul 30 23:23:04 CST 2021mZxid = 0x2mtime = Fri Jul 30 23:23:04 CST 2021pZxid = 0x3cversion = 1dataVersion = 0aclVersion = 0ephemeralOwner = 0x0dataLength = 13numChildren = 1[zk: localhost:2181(CONNECTED) 6] set /node_1 updated[zk: localhost:2181(CONNECTED) 7] get /node_1updated[zk: localhost:2181(CONNECTED) 8] ls /[node_1, zookeeper][zk: localhost:2181(CONNECTED) 9] delete /node_1/node_1_10000000000[zk: localhost:2181(CONNECTED) 10] delete /node_1 [zk: localhost:2181(CONNECTED) 11] ls /[zookeeper][zk: localhost:2181(CONNECTED) 12] 
  • [二次开发] flink提交任务zookeeper鉴权失败
    flink提交测试程序wordCount能正常跑,自己写的flink消费kafka写hive的任务打包上去报如下错误:运行脚本如下:flink run  --detached -m yarn-cluster \  -ynm test_real_time1 \  -c com.xxxx.xxxxx1.FlinkKafka2Hive \ ./DataCollectorRealTime-1.0-SNAPSHOT.jar config运维跟我说有可能是jar冲突,请问有可能是jar包冲突吗?另外尝试过使用如下参数提交任务,没有效果:-D java.security.auth.login.config "/data01/BigData/data1/FusionInsight/client/Kafka/kafka/config/jaas.conf" \-D zookeeper.server.principal "zookeeper/xxxx.xxxx1" \-D java.security.krb5.conf "/data01/BigData/data1/FusionInsight/keytab/krb5.conf" \求助解决办法
  • [问题求助] 【zookeeper+dubbo+redis+mysql】鲲鹏服务器上dubbo一直注册不到zookeeper注册中心上
    【功能模块】zookeeper【操作步骤&问题现象】1、dubbo是内嵌在服务中的,zookeeper、redis、mysql都是外置组件或服务,zookeeper、redis、mysql已经在鲲鹏上跑起来了,用本地连接以上服务,web服务是可以起来的,但是将  web服务放到鲲鹏服务器上,就起不来了【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [维护宝典] HBase经典案例集锦三:异常重启(4-11):ZooKeeper实例Full GC导致RegionServer异常重启
    问题分析 排查regionserver运行日志(/var/log/Bigdata/hbase/rs/hbase-omm-regionserver-xxx.log),异常重启的原因为连不上zookeeper集群。查看zookeeper GC日志与运行日志。发现zookeeper gc 日志中存在Full GC打印。问题解决参考    ZooKeeper实例Full GC导致RegionServer连不上zookeeper,需要增大ZooKeeper的GC配置。FI界面修改quorumpeer的GC配置如下,修改完后保存配置,重启zookeeper服务。
  • [典型案例] 【转】HUAWEI CLOUD Stack 6.5.1计算节点的storage_date平面地址与云平台后端存储的业务地址IP冲
    问题描述:HUAWEI CLOUD Stack 6.5.1云平台,规划了storage_date0、storage_date1、storage_date2、storage_date3四个存储平面,后端存储为一台OceanStor 5500SAN存储,A控B控共8个业务口,配了storage_date平面的8个地址。在CPS上扩容计算节点后,eSight和OceanStor 5500的Device Manage界面上出现了存储阵列IP地址冲突的告警,通过fsp账户登陆计算节点,执行ifconfig命令查看计算节点的存储平面IP地址,发现有两个计算节点的地址与存储阵列的业务地址IP相同。告警信息:eSight界面告警:处理过程 :1、登陆CPS界面,点击“配置”>“OpenStack”>“Cinder”>“存储网络平面映射”,查看storage_date平面的“开始地址”和“结束地址”2、确认好旧IP和新IP地址,登陆OpenStack控制节点,执行图中命令进入python脚本,对IP和偏移量进行转换,输入IP,回车后自动显示偏移量字节。记录好偏移量字节,后续要在zookeeper数据库中进行修改。3、登陆OpenStack控制节点,导入环境变量后,执行cps template-instance-list --service zookeeper zookeeper,查询zookeeper所在节点。4、登陆zookeeper所在节点后,cd /usr/bin/upg/tools/,查看zkview文件是否存在。5、执行python zkview,进入zookeeper操作工具,出现如下回显若要修改storage_data偏移量信息,依次键入5 -> 1,进入到偏移量数据存放路径6、键入g是查看偏移量信息7、键入e后指定路径导出偏移量数据8、编辑导出后的偏移量数据,找到对应的主机,将其需要修改的平面IP地址的偏移量修改为新IP地址对应的偏移量,保存文件退出9、键入i后指定文件路径导入新偏移量数据10、等待几分钟,在对应主机上执行ifconfig查看storage_date平面的IP是否变化,在别的主机上尝试ping看是否通信正常。若IP未配置上,尝试执行cps commit后,根据被修改主机的UUID,单独重启该节点的network-client组件,命令如下:cps host-template-instance-operate --service cps network-client --action stop --host HOST-ID cps host-template-instance-operate --service cps network-client --action start --host HOST-ID根因:此原因是在部署平台阶段,FCD导入表里规划storage_date平面的开始地址和结束地址时,未将已分配给后端存储阵列的业务地址排除出去,导致系统在给计算节点分配storage_date平面地址时,误将已分配给后端存储阵列的业务地址分配给了计算节点,最终导致IP冲突。解决方案:在部署平台时,storage_date平面的开始和结束地址规划好,确定未分配给其它设备使用。建议与总结 :云平台网络平面规划尤为重要,一旦出现IP冲突等问题,需要在平台底层修改,操作方法复杂且危险。转自:https://support.huawei.com/enterprise/zh/knowledge/EKB1100052396
  • [技术干货] kafka+zookeeper单机部署及验证
    软件介绍:ZooKeeper是一个分布式协调服务,它的主要作用是为分布式系统提供一致性服务,提供的功能包括:配置维护、命名服务、分布式同步、组服务等。Kafka的运行依赖ZooKeeper。安装环境:本文主要写下单机形式的kafka+ zookeeper部署和使用。使用1台华为云服务器,配置信息如下:型号:4vCPUs | 16GB | kc1.xlarge.4操作系统:CentOS 8.0 64bit with ARM安装步骤:1 安装openjdkjava -version 查看当前环境是否安装,如果环境已安装就跳过该步骤 如果没有安装,则依次执行命令:安装:yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel修改配置文件vim /etc/profile,在文档末尾添加:JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk   --路径按照实际情况填写PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH,后保存退出使生效source /etc/profile2 安装mavenmvn -v 查看当前环境是否安装,如果环境已安装就跳过该步骤 如果没有安装,则依次执行命令:获取:wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz解压:tar -zxf apache-maven-3.5.4-bin.tar.gz修改配置文件vim /etc/profile,在文档末尾添加:MAVEN_HOME=/home/apache-maven-3.5.4  --路径按照实际情况填写PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME PATH,后保存退出使生效source /etc/profile修改maven配置,修改Maven配置文件中的:本地仓路径、远程仓等配置文件路径在解压的conf目录下,我的是: /home/apache-maven-3.5.4/conf/settings.xml<mirror> <id>huaweimaven</id> <name>huawei maven</name> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <mirrorOf>central</mirrorOf></mirror>3 安装gradle下载安装包:wget https://downloads.gradle.org/distributions/gradle-4.10-bin.zip解压:unzip gradle-4.10-bin.zip修改配置文件vim /etc/profile,在文档末尾添加:export GRADLE_HOME=/home/gradle-4.10   --路径按照实际情况填写export PATH=$GRADLE_HOME/bin:$PATH,后保存退出使生效source /etc/profile4 安装zookeeper①下载安装包:wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz本次使用的zookeeper3.4.12版本②解压并进入目录tar zxvf zookeeper-3.4.12.tar.gz        cd zookeeper-3.4.12③修改配置文件cp conf/zoo_sample.cfg conf/zoo.cfgvim conf/zoo.cfg,进行修改dataDir=/tmp/zookeeper/datadataLogDir=/tmp/zookeeper/log④修改配置文件vim /etc/profile,在文档末尾添加:export ZOOKEEPER_INSTALL=/home/zookeeper-3.4.12/   --路径按照实际情况填写export PATH=$PATH:$ZOOKEEPER_INSTALL/bin,后保存退出使生效source /etc/profile⑤启动验证zookeeper:    启动:sh zkServer.sh start    查看状态:sh zkServer.sh status    停止:sh  zkServer.sh stop5 源码编译kafka①下载安装包,并将安装包上传至服务器自定义目录。本次使用的kafka2.1.0版本下载地址为:https://archive.apache.org/dist/kafka/2.1.0/kafka-2.1.0-src.tgz②解压并进入目录tar -zxvf kafka-2.1.0-src.tgz         cd kafka-2.1.0-src③修改build文件vim build.gradle在repositories标签下内容添加多个maven仓库maven {     url "https://mirrors.huaweicloud.com/kunpeng/maven"   }   maven {     url "https://mirrors.huaweicloud.com/repository/maven"   }   maven {     url "https://plugins.gradle.org/m2/"   }   mavenCentral()④进行编译gradle -g /$UserHome/gradleRepository releaseTarGz -info⑤编译成功,会在对应目录:/home/kafka-2.1.0-src/core/build/distributions/     生成.tgz包6 配置kafka①进入生成.tgz的目录,cd /home/kafka-2.1.0-src/core/build/distributions/②解压并进入目录,tar -zxvf  kafka_2.11-2.1.0.tgz    cd /home/kafka_2.11-2.1.0/config③修改配置文件,vim server.properties  增加,host.name=hostname   zookeeper.connect=localhost:2181 listeners=PLAINTEXT://:9092④进入kafka安装目录,cd /home/kafka_2.11-2.1.0  启动,bin/zookeeper-server-start.sh config/zookeeper.properties &bin/kafka-server-start.sh config/server.properties &⑤检查进程启动情况,jps当Kafka、QuorumPeerMain两个进程启动成功,整个Kafka服务启动完成测试验证①创建topicbin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test②生产数据bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test③获取数据bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test,也可以一次性消费之前所有的消息:bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning④启动一个生产者,启动一个消费者,在生产者控制台输入字符串,可以看到消费者控制台进行消费并打印效果展示如图,生产者:消费者:
  • [Java] zookeeper 的功能
    集群管理:监控节点存活状态、运行请求等。主节点选举:主节点挂掉了之后可以从备用的节点开始新一轮选主,主节点选举说的就是这个选举的过程,使用 zookeeper 可以协助完成这个过程。分布式锁:zookeeper 提供两种锁:独占锁、共享锁。独占锁即一次只能有一个线程使用资源,共享锁是读锁共享,读写互斥,即可以有多线线程同时读同一个资源,如果要使用写锁也只能有一个线程使用。zookeeper可以对分布式锁进行控制。命名服务:在分布式系统中,通过使用命名服务,客户端应用能够根据指定名字来获取资源或服务的地址,提供者等信息。
  • [Java] Zookeeper的三种部署模式
    单机部署:一台集群上运行集群部署:多台集群上运行伪集群部署:一台集群启动多个实例
  • [Java] Zookeeper
    Zookeeper是一个开源的分布式协调器,是一个典型的分布式数据一致性解决方案,其设计目的是将复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的系统。提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
总条数:41 到第
上滑加载中