本文介绍: Zookeeper概念介绍 分布式协调服务软件 Zookeeper是分布式小文件存储系统 Zookeeper特性:全局数据一致性 Zookeeper角色 主从架构 Zookeeper集群的搭建 Zookeeper的数据模型 Zookeeper的操作 shell command Zookeeper watcher监听机制 Zookeeper典型应用场景
本文重点
理解大数据基本概念
掌握数据分析基本步骤、分布式集群概念
理解zookeeper功能与作用
掌握zookeeper架构原理
学会搭建zookeeper集群
掌握shell客户端操作zk
理解zookeeper典型应用
内容大纲
#大数据导论
数据与数据分析
数据分析作用(商业)
离线分析
实时分析
ML机器学习
数据分析的基本步骤 (重要)
大数据时代
海量数据处理场景 (重要)
如何存储? 分布式存储
如何处理? 分布式计算
大数据5V特征
大数据应用
分布式、集群
#Apache Zookeeper (重要)
Zookeeper概念介绍 分布式协调服务软件
Zookeeper是分布式小文件存储系统
Zookeeper特性:全局数据一致性
Zookeeper角色 主从架构
Zookeeper集群的搭建
Zookeeper的数据模型
Zookeeper的操作
shell command
Zookeeper watcher监听机制
Zookeeper典型应用场景
一、大数据导论
1.1、数据与数据分析
-
数据如何来的
数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。 #通过对客观事件进行计量和记录就会产生数据 数据量化
-
数据分析
所谓的数据就是通过工具或者方法把隐藏在数据背后的规律和价值提取处理的过程。
-
数据分析的作用(在商业中)
数据分析的结果给企业的决策提供支撑 支持决策。 数据仓库的出现也是集成的数据分析平台 分析的结果支撑决策。
1.2、数据分析作用
-
离线分析(批处理 batch processing)
分析已有的数据 历史数据,面向过去分析。 在时间维度明显成批次性变化。一周一分析(T+7),一天一分析(T+1)
-
实时分析(Real Time Processing 流处理Streaming)
分析实时产生的数据 当下的数据 面向当下分析 所谓的实时从数据产生到分析到应用 时间间隔 秒级(spark streaming) 毫秒级(storm flink)
-
基于历史数据和当下产生的实时数据预测未来发生的事情。 侧重于数学算法的运用。 分类 聚类 关联 预测。
1.3、数据分析的基本步骤(数据分析开发步骤)
数据分析的步骤和流程不仅对我们开展分析提供支撑,同时也对我们去沟通阐述数据分析项目的流程有非常大的支撑。面试时:介绍一下你最近做的项目?如何介绍?介绍什么?
-
明确分析的目的和思路
目的:分析方向 分析的主题 要解决什么问题 思路:如何去开展数据分析 关键分析具有体系。 体系化也就是逻辑化,简单来说就是先分析什么,后分析什么,使得各个分析点之间具有逻辑联系 需要营销、管理类理论进行支撑 叫做数据分析方法论。 偏向于战略层面 从宏观角度指导。
-
数据收集
企业常见数据源: #1、业务数据(RDBMS 关系型数据库 比如:Mysql oracle 事务支持) #2、日志数据、日志文件(服务器日志、应用日志、用户行为日志) #3、爬虫数据 #4、其他事数据
-
数据预处理
结构化数据、半结构化数据、非结构化数据 大数据青睐什么?结构化数据。 #所谓的结构化数据指的是具有schema约束信息的数据。 通俗理解易于程序处理解读的数据。 半结构化数据(json xml) #经过预处理把数据变成干净规则统一整洁的结构化数据。
-
数据分析
利用技术和软件 基于指标开展分析。
-
数据应用
分析的结果去哪里? 数据展现、数据可视化(Data Visualization) 即席查询 数据挖掘 数据接口对外
1.4、大数据时代
思考:数据为什么会爆炸?
1.5、分布式、集群
-
共同点:多台机器 不是单机的
-
不同点:
-
搭建一个分布式hadoop集群。 多台机器部署不是单机部署
-
数据大爆炸和面临的挑战解决方案
-
大数据、云计算
#大数据侧重于海量数据的分析。 #云计算侧重于硬件资源的虚拟机技术。云cloud. 阿里云服务器。vmware。 公有云:把云资源当做产品卖。 私有云:自己公司内部搭建云服务器。 混合云:结合上面两点。
二、Apache Zookeeper
2.1、zookeeper概念
这个软件能用来干什么?
这个软件怎么用?
分布式:多台机器的环境。
协调服务:在分布式环境下,如何控制大家有序的去做某件事。
顺序
一致
共同
共享
2.2、zookeeper最重要的特性:全局数据一致性。
事务(transaction):通俗理解 多个操作组成一个事务,要么一起成功,要么一起失败,不会存在中间的状态。如果中间失败了要进行回滚操作。
2.3、zookeeper集群角色
-
事务性请求的唯一调度和处理者
-
处理非事务性操作 转发事务性操作给leader 参与zk内部选举机制
-
处理非事务性操作 转发事务性操作给leader 不参与zk内部选举机制 通俗话:是一群被剥夺政治权利终身的follower。
2.4、Zookeeper集群的搭建
-
-
zookeeper-3.4.6.tar.gz
-
cd /export/server tar zxvf zookeeper-3.4.6.tar.gz mv zookeeper-3.4.6/ zookeeper
-
-
zoo.cfg
#zk默认加载的配置文件是zoo.cfg 因此需要针对模板进行修改。保证名字正确。 cd zookeeper/conf mv zoo_sample.cfg zoo.cfg vi zoo.cfg #修改 dataDir=/export/data/zkdata #文件最后添加 2888心跳端口 3888选举端口 server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:3888
-
#在每台机器的dataDir指定的目录下创建一个文件 名字叫做myid #myid里面的数字就是该台机器上server编号。server.N N的数字就是编号 [root@node1 conf]# mkdir -p /export/data/zkdata [root@node1 conf]# echo 1 >/export/data/zkdata/myid
-
-
cd /export/server scp -r zookeeper/ node2:$PWD scp -r zookeeper/ node3:$PWD
-
[root@node2 ~]# mkdir -p /export/data/zkdata [root@node2 ~]# echo 2 > /export/data/zkdata/myid [root@node3 ~]# mkdir -p /export/data/zkdata [root@node3 ~]# echo 3 > /export/data/zkdata/myid
-
-
zk集群的启动
-
每台机器上单独启动服务
#在哪个目录执行启动命令 默认启动日志就生成当前路径下 叫做zookeeper.out /export/server/zookeeper/bin/zkServer.sh start|stop|status #3台机器启动完毕之后 可以使用status查看角色是否正常。 #还可以使用jps命令查看zk进程是否启动。 [root@node3 ~]# jps 2034 Jps 1980 QuorumPeerMain #看我,我就是zk的java进程
-
-
[root@node1 ~]# vim stopZk.sh #!/bin/bash hosts=(node1 node2 node3) for host in ${hosts[*]} do ssh $host "/export/server/zookeeper/bin/zkServer.sh stop" done
-
[root@node1 ~]# vim startZk.sh #!/bin/bash hosts=(node1 node2 node3) for host in ${hosts[*]} do ssh $host "source /etc/profile;/export/server/zookeeper/bin/zkServer.sh start" done
-
2.5、Zookeeper的数据模型
-
zk的操作
-
-
-
查看
[zk: localhost:2181(CONNECTED) 5] ls /itcast #查看指定路径下有哪些节点 [a0000000000, b0000000002, a0000000001] [zk: localhost:2181(CONNECTED) 6] get /itcast #获取znode的数据和stat属性信息 112233 cZxid = 0x300000003 #创建事务ID ctime = Mon Jan 30 20:52:49 CST 2023 #创建的时间 mZxid = 0x300000003 #上次修改时事务ID mtime = Mon Jan 30 20:52:49 CST 2023 #上次修改的时间 pZxid = 0x300000009 cversion = 3 dataVersion = 0 #数据版本号 只要有变化 就自动+1 aclVersion = 0 ephemeralOwner = 0x0 #如果为0 表示永久节点 如果是sessionID数字 表示临时节点 dataLength = 6 #数据长度 numChildren = 3 #子节点个数
-
更新节点
set path data
-
删除节点
[zk: node2(CONNECTED) 7] delete /itcast Node not empty: /itcast [zk: node2(CONNECTED) 8] rmr /itcast #递归删除
-
-
2.6、Zookeeper监听机制Watch
-
监听机制
#1、设置监听 #2、执行监听 #3、事件发生,触发监听 通知给设置监听的 回调callback
-
zk中的监听是什么?
-
谁监听谁?
客户端监听zk服务
-
监听什么事?
监听zk上目录树znode的变化情况。 znode增加了 删除了 增加子节点了 不见了
-
-
zk中监听实现步骤
#1、设置监听 然后zk服务执行监听 ls path [watch] 没有watch 没有监听 就是查看目录下子节点个数 有watch 有监听 设置监听子节点是否有变化 get path [watch] 监听节点数据是否变化 e.g: get /itcast watch #2、触发监听 set /itcast 456 #修改了被监听的节点数据 触发监听 #3、回调通知客户端 WATCHER:: WatchedEvent state:SyncConnected type:NodeDataChanged path:/itcast
-
zk的监听特性
-
zk中监听类型
-
2.7、zk典型应用
-
提供集群选举
-
分布式锁服务
原文地址:https://blog.csdn.net/weixin_58808338/article/details/128809827
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_28366.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。