大数据必知必会:Zookeeper(1)单机环境安装

安装前准备

操作系统准备

本次安装采用的操作系统是Ubuntu 20.04。

更新软件包列表。

sudo apt-get update

安装Java 8+

使用命令安装Java 8。

sudo apt-get install -y openjdk-8-jdk

配置环境变量。

vi .bashrc

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

让环境变量生效。

source .bashrc

下载Zookeeper安装包

从Zookeeper官网Apache ZooKeeper下载安装包软件。

或者直接通过命令下载。

wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz

单机环境安装

解压安装包

将安装包解压到目标路径。

mkdir -p apps
tar -xzf apache-zookeeper-3.8.0-bin.tar.gz -C apps

修改配置文件

Zookeeper的配置文件保存在$ZOO_HOME/conf/zoo.cfg

cp apps/apache-zookeeper-3.8.0-bin/conf/zoo_sample.cfg apps/apache-zookeeper-3.8.0-bin/conf/zoo.cfg

vi apps/apache-zookeeper-3.8.0-bin/conf/zoo.cfg

配置文件说明:

# The number of milliseconds of each tick
# 通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒。
tickTime=2000

# The number of ticks that the initial 
# synchronization phase can take
# LF初始通信时限
# Leader和Follower初始连接时能容忍的最多心跳数,单位次(即tickTime的数量)
initLimit=10

# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
# LF同步通信时限
# Leader和Follower连接之后,通信时能容忍的最多心跳数,单位次
# 时间如果超过syncLimit * tickTime,Leader认为Follwer挂掉,从服务器列表中删除Follwer
syncLimit=5

# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
# Zookeeper数据存放目录
dataDir=/home/wux_labs/data/zookeeper

# the port at which the clients will connect
# 客户端连接端口,通常不做修改
clientPort=2181

主要配置内容为:

# Zookeeper数据存放目录
dataDir=/home/wux_labs/data/zookeeper
# 客户端连接端口
clientPort=2181

创建数据存放目录。

mkdir -p /home/wux_labs/data/zookeeper

相关命令

如果没配置环境变量,则需要切换到安装目录下执行相关命令,或者指定命令的绝对路径。

cd apps/apache-zookeeper-3.8.0-bin

启动Zookeeper

bin/zkServer.sh start

QuorumPeerMain 就是 Zookeeper 服务端的进程。

查看状态

bin/zkServer.sh status

Mode: standalone 表示本地模式。

停止Zookeeper

bin/zkServer.sh stop
本文转载于网络 如有侵权请联系删除

相关文章

  • 【随笔】一些可用的 Google 搜索镜像站

    我在日常工作或生活中,几乎时时刻刻都用到Google搜索引擎,但因为“众所周知的原因”在国内无法直接访问。幸好,网上有热心人士搭建了Google镜像站,现分享给大家!温馨提醒:如果出现访问缓慢或无法打开等情况,请换个网址尝试;请勿在镜像站上登录Google账号或者搜索个人隐私,否则可能会被泄露给第三方;请勿搜索含有政治、色情、敏感、暴力血腥、恐怖、其他国家法律法规禁止的词汇,以及浏览违法内容。香港区域:https://g.xzx725.top/http://d.6wl.cc/https://g.qwq.fan/https://shitu.paodekuaiweixinqun.com/webhp/https://gogogle.cf/https://s.isway.cn/https://go.lizmt.cn/https://google.justscience.cn/日本区域:https://www.谷歌.cf/https://www.googlejxz.ml/https://so.ylyn.cc/韩国区域:https://ge1.azurewebsites.net/备用区域:http

  • APP 测试如何保证多机型覆盖 ?

    读者提问:移动端APP测试,安卓手机和iPhone手机机型那么多,如何保证不漏测?阿常回答:可以采用云真机测试,选取Top机型。前面两天阿常和大家聊了APP的安装和更新测试,今天测试群内的小伙伴问到上面?的问题,阿常来和大家分享一下我的经验。市面上机型很多,基于成本考虑,公司不会采购大量的测试机,也不会因此配置更多的测试资源,而是采用云真机测试。云测试通常能将企业的软件和系统测试效率提高50%,测试成本降低30%。常见的云测试平台包括Testin、TestBird、阿里云移动测试等等。拿阿里云移动测试来举例,它提供的测试服务包括兼容测试、功能测试、性能测试、远程真机等等。再拿其中的兼容功能测试来举例,操作步骤为:1、购买基础测试资源包基础测试提供的服务包括:Android兼容性测试、Android功能测试、iOS兼容性测试、iOS功能测试。计费项统计为:1个App在1台Android设备上进行10分钟基础测试,消耗1台次资源;1个App在1台iOS设备上进行10分钟基础测试,消耗2台次资源。计费精度为:测试设备数,精确到1台。2、上传待测试的Android/iOS应用3、(可选)新建用

  • Linux之lastb命令

    列出登入系统失败的用户相关信息。lastb命令用于显示用户错误的登录列表,此指令可以发现系统的登录异常。单独执行lastb命令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,全部显示出来。命令语法lastb[选项][参数]命令选项-a:把从何处登入系统的主机名称或ip地址显示在最后一行;-d:将IP地址转换成主机名称;-f<记录文件>:指定记录文件;-n<显示列数>或-<显示列数>:设置列出名单的显示列数;-R:不显示登入系统的主机名称或IP地址;-x:显示系统关机,重新开机,以及执行等级的改变等信息。命令参数用户名:显示中的用户的登录列表;终端:显示从指定终端的登录列表。使用ssh的登录失败不会记录在btmp文件中。>lastb|head rootssh:notty120.132.112.75SunApr1122:18-22:18(00:00) rootssh:notty185.36.81.44SunApr1122:18-22:18(00:00) rootssh:notty101.89.13

  • RTSP/GB28181/HIKSDK/大华SDK协议安防视频云平台EasyCVR新增告警

    监控系统实时地为用户提供了精准的产品数据,用户可以通过应用这些数据,提取有用信息并应用于业务。这是一个包含了数据生产到数据消费的闭环,通过这个活动,数据得以被合理使用继而变现产生价值。然而对于以下场景,用户和数据之间实际是隔离的,并无法形成数据的闭环路径: 1.面对海量业务数据,用户对于监控数据的异常变化不敏感; 2.在不能随时跟进数据的“离线”状态时,用户无法及时跟进数据变化。为了解决以上问题,确保用户可以及时获悉相关信息,进而采取合适的应对措施,“告警服务”应运而生。“告警服务”能极大的解放用户的注意力,通过对监控数据设定规则,管理员可以掌握产品数据的健康状况。“告警服务”能通过规则匹配过滤无效的信息,使用户第一时间获取期望的关键数据。我们的视频上云平台EasyCVR也新增了设备的告警功能,和EasyGBS国标平台一样都是通过接受国标message中的alarm告警消息,然后通过接口展示,这样我们就能及时发现设备及监控画面的异常。视频上云平台EasyCVR的告警功能列表如下图:列表项包括:设备名称、设备ID、通道ID、监控对象–根据资源类型进行添加、告警级别(一级、二级、三级和四级

  • JDK 15 要来了,新特性尝鲜。

    JavaDevelopmentKit15是甲骨文公司发布JavaSE(标准版)的最新版本,它在6月11日进入缓降阶段,系列功能现在被冻结。JDK15的亮点包括文本块、隐藏类、外部内存访问API以及密封类和记录的预览。 Java升级的下一个阶段是另一个缓降阶段,从现在起到8月20日有两个可选版本。预计9月15日正式上市。JDK15紧随3月17日发布的JDK14。甲骨文公司遵循标准Java六个月的发布计划,新版本每年发布两次。 第二个孵化器外部内存访问API,它可以使Java程序安全、高效地访问Java堆栈之外的外部内存。API应该能够对各种类型的外部内存进行操作,例如本机内存、持久内存和托管堆。许多Java程序访问外存,如Ignite和MapDB。API将有助于避免垃圾收集相关的成本和不可预测性,跨进程共享内存,并通过将文件映射到内存来序列化和反序列化内存内容。javaAPI目前还没有为访问外存提供令人满意的解决方案。但有了新的提议,即API不应该破坏JVM的安全性。这个功能在jdk14中经历了早期的孵化阶段,在jdk15中进行了改进。 密封类的预览。与接口一起,密封类限制了那些可

  • 初识kafka中的生产者与消费者

    发送生产消息的大致流程:1.创建生产者对象,生产者发送包装消息的ProducerRecord2.生产者通过send方法发送消息3.消息被序列化4.消息计算出分区5.根据分区消息被分配到指定主题和分区的批次中6.批量发送到broker7.broker判断是否消息失败,成功则直接返回元数据【可选】,失败判断是否重试,对应做相应处理如何创建生产者对象?必须指定3个属性:broker地址,key的序列化方式,value的序列化方式。其它可选参数,包括重试次数,内存缓冲大小,每次发送消息的批次大小,是否压缩等等Avro序列化简介它是一种与语言无关的序列化格式。数据通过schema来定义,如果出现读的schema与写的shema不一致的时候,不会抛出遗产,而选择返回默认值。使用的时候,在注册表中注册一个schema,消息字段schema的标识,然后存放到broker中,消费者使用标识符从注册表中拉取schema进行解析得到结果 如何发送消息? 1.同步方式:构建消息的封装ProducerRecord,通过生产者的send方法发送即可,可以用Future的方式接收返回的RecordMetadata

  • Python3 将源目录中的图片根据设定最长边参数保存到目标目录脚本(Image 的使用)

    如果我们给客户制作网站,客户会发送过来一堆的图片,这些图片一般都是通过手机或者数码相机拍摄的。有一个问题就是这些图片会比较大。那我们就需要对这些图片进行压缩的处理,这就是我写的这个脚本的实际用途。关键问题是算法,例如,我要求图片最长边为400px,那么理想情况下,处理的状态应该是:源图片尺寸为800*600,则缩放后结果是400*300源图片尺寸为600*800,则缩放后结果是300*400源图片尺寸为300*200,因为无论是宽和高均小于我们设定的最长边,所以,原样保存不做处理。好,如果我文字描述不足以让你理解,通过上面的详细举例,我相信应该能理解我的意图了。最终实现源码#!/usr/bin/envpython3 #-*-coding:UTF-8-*- importargparse importos importimghdr fromPILimportImage #错误退出函数 deferrMsn(msn): print('\033[31mError:\033[0m'+msn) parser.print_usage() exit() #在源目录中找到所有图片并

  • 币聪-ShapeShift收购Insta的工具 - 比特币可以兑换成其他十种加密货币

    总部位于瑞士的交易平台ShapeShiftAG宣布收购Bitfract,这是一家软件公司,允许用户在一次交易中将比特币兑换成数十种数字资产。根据该公司的帖子,Bitfract工具可以作为一个改变游戏规则的工具,通过允许投资者快速简单地重新平衡他们的加密货币组合来简化购买过程。ShapeShift的创始人兼首席执行官ErikVoorhees表示,Bitfract团队给他留下了深刻的印象,他们在创建工具ShapeShift方面的执行力正在计划建立自己。“Bitfract团队专门利用ShapeShift的开放式API来构建我们自己计划构建的产品,”Voorhees评论道。“这表明了战略和思维的完美结合,他们的执行非常出色,我们希望将他们才华横溢的团队和技术带到船上。”使用Bitfract工具,用户将能够在不进行多笔交易的情况下获得多元化的数字资产组合-节省时间和费用。Bitfract的联合创始人兼首席执行官WillyOgorzaly说:“我们相信个人可以自由控制数字财富的分散化未来,我们的团队很荣幸与Erik和ShapeShift的每个人一起努力实现这一目标。”该工具使用一个简单的过程。它通

  • 使用pt工具检测MySQL主从延迟(r12笔记第7天)

    今天翻看了下《高性能MySQL》,真是让人拍手称绝,里面的很多实战思路非常不错,各种问题分析如数家珍,如果是有一定基础的同学,看起来会非常不错。当然里面提到的一个地方,感觉很有意思,那就是主从延迟的一个测算思路。书中他们是通过建立一张表,插入时间相关的数据,值得一提的是这个表的存储引擎是Federated,主要就是为了完成类似OracleDBlink一样的特殊需求,在备库端来对比这个时间差来得到一个相对精准的延迟值。当然有的同学可能会说,我们有showslavestatus里面的Seconds_behind_master的选项嘛,那个可不能当做严格意义上的主从延迟标准,尽管看上去这个值都很小,接近于0.书中也提到了一个工具,那就是pt-heartbeat。这个工具算是一个比较主流的测试工具,使用起来也非常便捷,安装好pt工具集之后,这只是其中的一个。工具的安装部署可以参考Percona-toolkit的安装和配置(r8笔记第86天) MySQL主从不一致的修复过程我们创建一个用户pt_checksum,方便以后做数据修复等,权限都一并给到。GRANTSELECT,PROCESS,SUP

  • 腾讯云云点播获取片头片尾模板列表api接口

    1.接口描述接口请求域名:vod.tencentcloudapi.com。 获取片头片尾模板列表。 默认接口请求频率限制:20次/秒。 APIExplorer提供了在线调用、签名验证、SDK代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成SDK调用示例。 2.输入参数以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见公共请求参数。 参数名称 必选 类型 描述 Action 是 String 公共参数,本接口取值:DescribeHeadTailTemplates。 Version 是 String 公共参数,本接口取值:2018-07-17。 Region 否 String 公共参数,本接口不需要传递此参数。 SubAppId 否 Integer 点播子应用ID。如果要访问子应用中的资源,则将该字段填写为子应用ID;否则无需填写该字段。 Definitions.N 否 ArrayofInteger 片头片尾模板号,数组长度限制:100。 Offset 否 Integer 分页偏移量,默

  • 简单的UIButton按钮动画效果iOS源码

    这个是简单的UIButton按钮动画效果案例,源码,简单的UIButton按钮动画,可以自定义button属性。 效果图: <ignore_js_op>  使用方法:使用时把ButtonAnimations.h和.m文件导入新工程即可 ButtonAnimations*btView=[[ButtonAnimationsalloc]initWithFrame:CGRectMake(10,150,self.view.bounds.size.width,80)];       [self.viewaddSubview:btView];       [btViewsetNeedsDisplay:@[@"50",@"100",@"200"]];           [btViewsendCar:^(N

  • SQL优化

    SQL优化 –写SQL语句用大写字母: 因为Oracle总是先解析SQL语句,把小写的字母转换成大写字母再执行。 –尽量不要使用SELECT*查询: 数据库在解析的过程中会将*依次转换成所有的列名,这个工作是通过查询数据字典完成的,这意味着将耗费更多的时间。 –用>=替代>: 高效:SELECT*FROMempWHEREdeptno>=4低效:SELECT*FROMempWHEREdeptno>3说明:两者的区别在于高效直接跳到deptno等于4的记录而低效将首先定位到deptno=3的记录并且向前扫描到第一个deptno大于3的记录。 –用WHERE子句替换HAVING子句: 避免使用HAVING子句,HAVING会在检索出所有记录之后才对结果集进行过滤,这个处理需要排序,总计等操作,如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销。在多表联接查询时,ON比WHERE更早起作用,系统首先根据各个表之间的联接条件,把多个表合成一个临时表后再由WHERE进行过滤,然后再计算,计算完后再由HAVING进行过滤。 –使用索引提高查询效率: 索引用来提高检

  • SpringBoot简历模板

    项目二:智慧学习-乐勤在线学习网(SpringBoot)◎开发模式:团队(8人)                ◎开发周期:4个月◎开发环境:JDK1.8、Zookeeper       ◎开发工具:IDEA◎开发技术:Springboot+Zookeeper+Dubbo+mysql;◎项目描述:    乐勤在线学习网是一个在线教育平台项目,提供职业课程在线学习,平台包括门户、教学管理中心、学习中心、系统管理中心、社交系统等子系统。◎模块描述:门户是整个平台的入口,包括门户首页、注册登录、课程搜索等。学习中心为用户提供在线学习服务,包括我的课程、视频点播、视频直播等。教学管理中心为教育机构或个人讲师提供教学管理功能,包括课程管理、媒资管理等。 ◎责任描述:课程管理模块:包括课程的添加、课程的预览、课程的发布、图

  • STM32 CubeIDE快速创建工程(图文详解)

    使用STM32CubeIDE快速创建STM32的HAL库工程。 文章目录1STM32CubeIDEHome2生成工程3程序下载 1STM32CubeIDEHome 进入到官网的下载界面,选择符合对应的操作系统和对应的版本,下载安装,下载界面如下图所示; 安装完成之后,打开STM32CubeIDE会直接进入主页,这里开始创建STM32工程或者导入工程,如下图所示; ReadSTM32CubeIDEDocumentation有大量的官方文档;可以快速入门,包括; 安装教程; 用户手册; 2生成工程 设置工程名称和路径之后就基本完成工程的创建了,具体如下图所示; 在此期间可能会联机下载库文件和相应MCU的外设文件,这里要保持网络畅通,并耐心等待; 成功创建工程之后,如下图所示; 可以看到左边是HAL库,右边是CubeMAX的配置界面,至此已经完成了工程的生成了,那么下一步进行进行编译和下载。 另外在文件列表中可以看到TEST.ioc文件,这是CubeMAX的配置文件,相当于一些软件的ini文件,CubeMAX主要通过读写该文件将设备的配置保存和加载的软件中,直接用

  • Docker ubuntu镜像更换apt-get源

    在Dockerfile中添加   RUNsed-is@/archive.ubuntu.com/@/mirrors.aliyun.com/@g/etc/apt/sources.list RUNapt-getclean 复制     原文链接 https://www.jianshu.com/p/c1885cc192a6

  • 关系代数题目小汇总——数据库

    ————————————————————————————————版权声明:本文为CSDN博主「Flora_M」的原创文章,遵循CC4.0BY-SA版权协议原文链接:https://blog.csdn.net/Flora_SM/article/details/84190119   1.查询选修了2号课程的学生的学号。   2.查询至少选修了一门其直接先行课为5号课程的学生姓名   因为是选修直接先行课,所以在Course表里,而学生姓名在Student表里,学生与课程相联系在SC表里,所以要将这三个表做自然连接   3.查询选修了全部课程的学生号码和姓名。   通过除运算求得选修了全部课程的学生号码,再与Student表中投影的Sno和Sname列做自然连接,即可得到学生号码和姓名。   4.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式: S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY);&nb

  • 场景分割:MIT Scene Parsing 与DilatedNet 扩展卷积网络

    MITSceneParsingBenchmark简介        Sceneparsingistosegmentandparseanimageintodifferentimageregionsassociatedwithsemanticcategories,suchassky,road,person,andbed.MITSceneParsingBenchmark(SceneParse150)providesastandardtraining andevaluationplatformforthealgorithmsofsceneparsing.ThedataforthisbenchmarkcomesfromADE20KDatasetwhichcontainsmorethan20Kscene-centricimagesexhaustivelyannotated withobjectsandobjectparts.Specifically,thebenchmarkisdividedinto20Kimagesfortra

  • python 3.9调 用 xlrd 1.2.0 报错 AttributeError: &#39;ElementTree&#39; object has no attribute &#39;getiterator&#39;

    FLowUs邀请链接:https://flowus.cn/login?code=AXNU63 FlowUs邀请码:AXNU63 参照:https://blog.csdn.net/suhao0911/article/details/110950742 在新版python3.9中,windows中使用的更新删除了getiterator方法,所以我们老版本的xlrd库调用getiterator方法时会报错。AttributeError:'ElementTree'objecthasnoattribute'getiterator' 解决方法: 找出目录python\Lib\site-packages\xlrd下的xlsx.py文件 修改两个地方的的getiterator()改成iter(),下面的两个地方,这里已经把getiterator()改成iter()了 然后重新载入程序即可

  • An Improved Reversible Data Hiding in Encrypted Images using Parametric Binary Tree Labeling

    一种改进的基于参数二叉树标记的加密图像可逆数据隐藏方法 整体思路: 该方案利用了原始图像整体的空间相关性,而不是在较小的图像块中保留隐藏数据的空间。然后用加密密钥对原始图像进行加密,并用参数二叉树将加密后的像素分为两类。最后,两类加密像素中的一类可以通过比特替换嵌入秘密信息。 优势: 更高的嵌入率;可逆性,原始明文图像和秘密信息可以无损地分别恢复和提取。 介绍: 明文域中的可逆数据隐藏(RDH)是一种修改原始封面图像以隐藏秘密信息(秘密数据)的技术。在提取秘密信息后,可以完全恢复原始的封面图像。近十年来,可逆数据隐藏因其在图像不受干扰时的潜在应用而引起了信息隐藏界的广泛研究兴趣。到目前为止,方法主要分为三类: 基于无损压缩的、基于差分扩展的、基于直方图移位的方法 目的是保证秘密信息不能被检测到,并且不能察觉到载体图像的变化。 随着云存储对用户隐私保护需求的不断增加,许多可逆的加密图像数据隐藏方案(RDHEI)相继问世。RDHEI技术将秘密信息嵌入到加密图像中,而不是明文图像,这涉及三方:内容所有者、数据隐藏者和接收者。 原始图像提供程序(内容所有者)在将原始图像发送到云之前对其进

  • js中substr,substring,indexOf,lastIndexOf,split 的用法

    js中substr,substring,indexOf,lastIndexOf,split等的用法   1.substr substr(start,length)表示从start位置开始,截取length长度的字符串。 varsrc="images/off_1.png";alert(src.substr(7,3)); 弹出值为:off   2.substring substring(start,end)表示从start到end之间的字符串,包括start位置的字符但是不包括end位置的字符。 varsrc="images/off_1.png";alert(src.substring(7,10)); 弹出值为:off   3.indexOF indexOf()方法返回某个指定的字符串值在字符串中首次出现的位置(从左向右)。没有匹配的则返回-1,否则返回首次出现位置的字符串的下标值。 varsrc="images/off_1.png";alert(src.indexOf('t'));alert(src.indexOf('i'));alert(src.index

  • 微软宣布加入 OpenJDK,打不过就改变 Java 未来!

    近日,微软的BrunoBorges在OpenJDK邮件列表中发布了一条消息,内容包含接下来发生的事情以及微软如何开始将其团队整合到OpenJDK社区。在邮件中,BrunoBorges提到,微软已正式签署《Oracle贡献者协议》。同时,他重申了微软对Java的承诺,以及微软团队对回馈Java社区的期待。Borges曾经是Oracle开发人员,现在担任微软Java的首席产品经理。他向大家介绍了Java工程团队负责人MartijnVerburg,Verburg同时也是jClarity的首席执行官,而jClarity是AdoptOpenJDK的主要贡献者,于今年8月被微软收购。该邮件可以在OpenJDK邮件列表中找到:嗨,OpenJDK社区, 在过去的一周中,微软正式签署了《Oracle贡献者协议》,甲骨文公司对我们参与该项目表示了认可及欢迎。我代表微软Java工程团队,很高兴正式加入OpenJDK项目,并期待与你们的合作。 众所周知,微软及其子公司在许多方面都高度依赖Java,并且在微软Azure云中向客户提供Java运行时服务。微软已经认识到在甲骨文成功有效管理下的OpenJDK项

相关推荐

推荐阅读