所有服务器都会先将自己的服务器信息注册到servers中,然后每台服务器都会尝试注册master,哪台注册成功,则哪台就是master服务器. 所有的服务器都会关注master节点的删除事件,这样通过监听是否发生删除事件来确定master服务器是否宕机,宕机后需要重新选出一台 新机器来作为master: LeaderSelectorZkClient:调度器 Work Server:主工作类 RunningData:描述Work Server基本信息 除了master主动释放和master服务器宕…
Hadoop学习笔记(8) ——实战 做个倒排索引 倒排索引是文档检索系统中最常用数据结构.根据单词反过来查在文档中出现的频率,而不是根据文档来,所以称倒排索引(Inverted Index).结构如下: 这张索引表中, 每个单词都对应着一系列的出现该单词的文档,权表示该单词在该文档中出现的次数.现在我们假定输入的是以下的文件清单: T1 : hello world hello china T2 : hello hadoop T3 : bye world bye hadoop bye bye 输…
第十六章:创建函数 基本的脚本函数 创建函数 1.用function关键字,后面跟函数名 function name { commands } 2.函数名后面跟空圆括号,标明正在定义一个函数 name() { commands } 如果两个函数的名称相同,那么后面的将会覆盖前面的,而且不会有提示. 使用函数 使用函数名称即可.必须先定义,再使用. #!/bin/bash f1() { echo "this is f1." } f1 function f1 { echo "th…
C++ Primer 第七章-函数学习笔记 一步一个脚印.循序渐进的学习. 一.参数传递 每次调用函数时,都会重新创建函数所有的形参,此时所传递的实参将会初始化对应的形参. 「如果形参是非引用类型,则复制实参的值来初始化形参:如果形参是引用类型,则形参只是实参的别名.」 「非引用形参表示对实参的局部副本,函数内修改此类型形参时仅仅改变局部副本的值,一旦函数执行结束,这些局部变量的值就没有了,因此不影响实参的值.」 「如果函数参数为指针,同样形参是实参的副本,修改形参指针的值不影响实参,但是如果修…
zookeeper是一个自动管理分布式集群的一个工具,以实现集群的高可用. 比如集群中的一个机器挂掉了,没有zookeeper的话就得考虑挂一个机器对剩下集群工作的影响,而有了zookeeper,它就能自动帮你协调这些事儿. 正规的解释如下: zookeeper是 一个开源的针对大型分布式系统的可靠协调系统. 设计目标是:将复杂且容易出错的分布式式一致性服务封装起来,构成一个高效可靠的原语集, 并以简单易用的接口提供给用户使用. 提供的功能包括:发布/订阅,分布式协调/通知,配置管理,集群管理,…
timeout表示会话超时时间,zookeeper靠与客户的心跳来判断会话是否有效(单位毫秒), -r为只读,表示zookeeper如果与半数以上服务器失去连接则会停止服务,如果有-r参数,则会继续保留只读服务 -server ip和端口 connected表示连接成功,输入h获取帮助列表 一般通过对节点的增删改查来完成系统功能…
linux中/opt一般用来存放应用/var目录一般用来存放日志 sample为样例文件,复制一份zoo.cfg文件 配置zoo文件,id为服务器id(整数),host为服务器的ip地址,第一个port为follow的端口,第二个port为leader选举端口,输入任意可用值即可 创建一个zookeeper目录,用来存放日志,而后修改zoo文件中dataDir配置: 在目录下新建一个myid文件,里面写入该服务器的server后的id: 而后再另外两台做相同操作,但是myid中的数字需要作出修改…
顺序一致性:严格按照顺序在zookeeper上执行 原子性:所有事物请求的结果,在整个集群的应用情况一致 单一视图:无论从哪个服务器进入集群,看到的东西都是一致的 可靠性:服务端成功响应后,状态会 一直保留 3台的zookeeper集群达到12-13万QPS 客户端在zookeeper注册监听器,zookeeper会给客户端通知…
38 | bytes包与字节串操作(上) 前导内容: bytes.Buffer基础知识 strings包和bytes包可以说是一对孪生兄弟,它们在 API 方面非常的相似.单从它们提供的函数的数量和功能上讲,差别可以说是微乎其微. 只不过,strings包主要面向的是 Unicode 字符和经过 UTF-8 编码的字符串,而bytes包面对的则主要是字节和字节切片. 我今天会主要讲bytes包中最有特色的类型Buffer.顾名思义,bytes.Buffer类型的用途主要是作为字节序列的缓冲区.…
48 | 程序性能分析基础(上) 作为拾遗的部分,今天我们来讲讲与 Go 程序性能分析有关的基础知识. Go 语言为程序开发者们提供了丰富的性能分析 API,和非常好用的标准工具.这些 API 主要存在于: 1.runtime/pprof: 2.net/http/pprof: 3.runtime/trace: 这三个代码包中. 另外,runtime代码包中还包含了一些更底层的 API.它们可以被用来收集或输出 Go 程序运行过程中的一些关键指标,并帮助我们生成相应的概要文件以供后续分析时使用.…