吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 分布式锁实现原理
摘要:分布式锁是控制分布式系统之间同步访问共享资源的一种方式。 下面介绍 zookeeper 如何实现分布式锁,讲解排他锁和共享锁两类分布式锁。 排他锁 排他锁(Exclusive Locks),又被称为写锁或独占锁,如果事务T1对数据对象O1加上排他锁,那么整个加锁期间,只允许事务T1对O1进行读取和更
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper Leader 选举原理
摘要:zookeeper 的 leader 选举存在两个阶段,一个是服务器启动时 leader 选举,另一个是运行过程中 leader 服务器宕机。在分析选举原理前,先介绍几个重要的参数。 服务器 ID(myid):编号越大在选举算法中权重越大 事务 ID(zxid):值越大说明数据越新,权重越大 逻辑时
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 数据同步流程
摘要:在 Zookeeper 中,主要依赖 ZAB 协议来实现分布式数据一致性。 ZAB 协议分为两部分: 消息广播 崩溃恢复 消息广播 Zookeeper 使用单一的主进程 Leader 来接收和处理客户端所有事务请求,并采用 ZAB 协议的原子广播协议,将事务请求以 Proposal 提议广播到所有
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper watcher 事件机制原理剖析
摘要:zookeeper 的 watcher 机制,可以分为四个过程: 客户端注册 watcher。 服务端处理 watcher。 服务端触发 watcher 事件。 客户端回调 watcher。 其中客户端注册 watcher 有三种方式,调用客户端 API 可以分别通过 getData、exists、
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 权限控制 ACL
摘要:zookeeper 的 ACL(Access Control List,访问控制表)权限在生产环境是特别重要的。 ACL 权限可以针对节点设置相关读写等权限,保障数据安全性。 permissions 可以指定不同的权限范围及角色。 ACL 命令行 getAcl 命令:获取某个节点的 acl 权限信息
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 节点特性
摘要:介绍一下 zookeeper 的节点特性和简单使用场景,正是由于这些节点特性的存在使 zookeeper 开发出不同的场景应用。 1、同一级节点 key 名称是唯一的 实例: $ ls / $ create /runoob 2 2、创建节点时,必须要带上全路径 实例: $ ls /runoob $
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 四字命令
摘要:zookeeper 支持某些特定的四字命令与其交互,用户获取 zookeeper 服务的当前状态及相关信息,用户在客户端可以通过 telenet 或者 nc(netcat) 向 zookeeper 提交相应的命令。 安装 nc 命令: $ yum install nc # centos 或 $ su
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 客户端基础命令使用
摘要:zookeeper 命令用于在 zookeeper 服务上执行操作。 首先执行命令,打开新的 session 会话,进入终端。 $ sh zkCli.sh ls 命令用于查看某个路径下目录列表。 格式: ls path path:代表路径。 ls2 命令 ls2 命令用于查看某个路径下目录列表,它比
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper session 基本原理
摘要:客户端与服务端之间的连接是基于 TCP 长连接,client 端连接 server 端默认的 2181 端口,也就是 session 会话。 从第一次连接建立开始,客户端开始会话的生命周期,客户端向服务端的ping包请求,每个会话都可以设置一个超时时间。 Session 的创建 sessionID:
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--ZooKeeper 数据模型 znode 结构详解
摘要:数据模型 在 zookeeper 中,可以说 zookeeper 中的所有存储的数据是由 znode 组成的,节点也称为 znode,并以 key/value 形式存储数据。 整体结构类似于 linux 文件系统的模式以树形结构存储。其中根路径以 / 开头。 进入 zookeeper 安装的 bin
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper Java 客户端搭建
摘要:使用的 IDE 为 IntelliJ IDEA,创建一个 maven 工程,命名为 zookeeper-demo,并且引入如下依赖,可以自行在maven中央仓库选择合适的版本,介绍原生 API 和 Curator 两种方式。 <dependency> <groupId>junit</groupId>
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper linux 服务端集群搭建步骤
摘要:所需准备工作,创建三台虚拟机环境并安装好 java 开发工具包 JDK,可以使用 VM 或者 vagrant+virtualbox 搭建 centos/ubuntu 环境,本案例基于宿主机 windows10 系统同时使用 vagrant+virtualbox 搭建的 centos7 环境,如果直接
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--Zookeeper 安装配置
摘要:Linux 安装 zookeeper 下载地址为: https://zookeeper.apache.org/releases.html。 打开网址 https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/zookeeper-
阅读全文
吴裕雄--天生自然 Zookeeper学习笔记--ZooKeeper
摘要:ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。 ZooKeeper 的架构通过冗余服务实现高可用性。 Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列
阅读全文
吴裕雄--天生自然HADOOP操作实验学习笔记:pvuv统计案例理论
摘要:实验目的 复习pv、uv的概念和原理 了解pv、uv的实际意义和获取方法 实验原理 前面我们已经基于mapreduce进行数据的etl处理,实验有很多不足之处,这次实验我们是基于url数据进行pv和uv的统计。pv的意思是page view ,uv的意思是user view,分别代表页面点击量和用户
阅读全文
吴裕雄--天生自然HADOOP操作实验学习笔记:pig简介
摘要:实验目的 了解pig的该概念和原理 了解pig的思想和用途 了解pig与hadoop的关系 实验原理 1.Pig 相比Java的MapReduce API,Pig为大型数据集的处理提供了更高层次的抽象,与MapReduce相比,Pig提供了更丰富的数据结构,一般都是多值和嵌套的数据结构。Pig还提供
阅读全文
吴裕雄--天生自然HADOOP操作实验学习笔记:ETL案例
摘要:实验目的 熟悉hadoop生态系统 初步了解大数据点击流分析业务 学会使用hadoop进行数据分析统计 实验原理 hadoop主要有三部分,hdfs做数据存储、mapreduce做数据计算、yarn做资源调度。在企业生产环境下,对数据做统计需要结合hadoop三个部分综合运用,中间还要使用kafka
阅读全文
吴裕雄--天生自然HADOOP操作实验学习笔记:hbase简介
摘要:实验目的 了解hbase的概念 通过安装hbase了解hbase的原理 了解hbase与hadoop的关系 复习hadoop和zookeeper的运行 实验原理 hbase是bigtable的开源山寨版本。hbase建立在hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。它介
阅读全文
吴裕雄--天生自然HADOOP操作实验学习笔记:协同过滤算法
摘要:实验目的 初步认识推荐系统 学会用mapreduce实现复杂的算法 学会系统过滤算法的基本步骤 实验原理 前面我们说过了qq的好友推荐,其实推荐算法是所有机器学习算法中最重要、最基础、最复杂的算法,一个推荐系统的架构,需要综合考虑离线计算、实时计算。需要用到的技术可能还有Flume、Kafka、Re
阅读全文
吴裕雄--天生自然HADOOP操作实验学习笔记:pagerank算法
摘要:实验目的 了解PageRank算法 学会用mapreduce解决实际的复杂计算问题 实验原理 1.pagerank算法简介 PageRank,即网页排名,又称网页级别、Google左侧排名或佩奇排名。 pagerank是Google排名运算法则(排名公式)的一部分,pagerank是Google用于
阅读全文