大数据课程C3——ZooKeeper的概述

这篇具有很好参考价值的文章主要介绍了大数据课程C3——ZooKeeper的概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州

 ▲ 本章节目的

⚪ 了解Zookeeper的特点和命令;

⚪ 了解Zookeeper的构成部分ExecutorService、Lock、Atomic;

一、ExecutorService-执行器服务

1. ForkJoinPool-分叉合并池

1. 分叉:将一个大的任务拆分成多个小的任务,分配多个线程来处理

2. 合并:将拆分出去的小的任务的结果进行汇总,获取到最后的结果

3. 作用:能够非常有效的提高CPU的利用率-实际上就是利用大量的线程来进行抢占,从而保证每一个CPU核上都有大量的任务 进行处理,导致其他的线程被挤占,所以分叉合并放在凌晨执行。

4. 数据量相对较小的时候,循环的效率要高于分叉合并;如果数据量较大的时候,分叉合并的效率就要高于循环。

5. 在分叉合并中,当某一个CPU核所有的任务执行完成之后,这个CPU核不会闲下来,而是随机去扫描其他的某一个核,在这 个核的任务队列的尾端“偷”一个任务回来执行,从而保证分叉合并整体的效率,这个过程称之为“work-stealing”(工 作窃取)策略。

二、Lock-锁

1. 概述

1. 在jdk1.5中,提供了一套lock机制用于取代Synchronized-传统的Synchronized关键字在使用的时候需要确定一个锁对 象,如果锁使用错误的话就会导致产生锁无效或者死锁的情况。

2. Lock的实现类:ReentrantLock-重入锁。如果当前锁可以重复使用-那么就是重入锁。如果锁只能被使用一次,那么就 是非重入锁。

3. ReadWriteLock-读写锁,顾名思义,分为读锁和写锁。

a. 读锁:允许多个线程读,不允许线程写。

b. 写锁之允许一个线程写不允许线程读。

4. 锁的公平和非公平策略

a. 在资源有限的情况下,线程之间实际的抢占和执行次数并不均等,地市就称之为非公平策略。

b. 在公平策略的前提下,任务在执行的时候会自带一个队列,线程不是直接去抢占资源,而是去抢占入队的顺序,线 程在处理完成之后,如果想要再次处理需要重新入队,通过这种方式来保证线程之间实际的执行次数基本上均等。

c. 相对而言,非公平策略效率相等较高,用的也是最多的。

d. Synchronized是非公平的,lock如果不指定默认也是非公平的。

2. 其他

1. CountDownLatch-闭锁/线程递减锁,对线程进行计数,在计数归零之前,线程会陷入阻塞,直到计数归零位置,线程 阻塞才会放开。当一组线程执行结束,另外一组线程开始执行,也适合于用CountDownLatch。

2. CyclicBarrier-栅栏。也会对线程进行计数,也是在计数归零之前陷入阻塞,直到计数归零之后放开阻塞。当这一组线程 到达一个点之后再继续往下执行。

3. Exchanger-交换机。用于交换两个线程之间的信息。

4. Semaphore:信号量。线程在执行任务之前需要获取信号,如果信号被全部占用,那么后来的线程就需要阻塞,等到有 信号释放,阻塞才会放开获取信号执行任务。实际过程中,可以利用这个对象来实现限流的效果。

三、Apache  Zookeeper

1. 概述

1. Zookeeper是Yahoo(雅虎)开发后来贡献给了Apache的一套用于分布式管理和协调的框架。

2. Zookeeper本身仿照Google的《The Chubby Lock》设计实现的。

3. Zookeeper提供了中心化的服务:包括:统一的配置,统一的命名,提供分布式锁,以及提供组服务。

2. 安装

1. 单机模式:在一台机器上安装框架,往往只能启动框架的部分功能。

2. 伪分布式:也是在一台机器上安装框架,利用了多线程来模拟集群环境,能够启动框架的大部分功能,甚至全部功能。

3. 完全分布式:在集群(多台服务器)进行安装框架,能够启动框架的全部功能。

3. 伪分布式安装

1. 关闭的防火墙。

2. 临时关闭防火墙:systemctl stop firewalld。

3. 永久关闭防火墙:systemctl disable firewalld a. wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/jdk-8u181-linux-x64.tar.gz。

4. 下载安装JDK。

5. 修改jdk的环境变量 a. wget http://bj-yzjd.ufile.cn-north-02.ucloud.cn/apache-zookeeper-3.5.7-bin.tar.gz。

6. 下载或者上传Zookeeper的安装包。

7. 解压Zookeeper的安装包:tar -xvf zookeeper-3.5.7 。

8. 进入Zookeeper的安装目录下的子目录conf目录中:cd zookeeper-3.5.7/conf

9. 将conf目录下的zoo_sample.cfg文件复制为zoo.cfg。Zookeeper在启动的时候会自动寻找zoo.cfg,根据其中的配 置来启动服务:cp zoo_sample.cfg zoo.cfg。

10. 编辑zoo.cfg文件:vim zoo.cfg。

11. 修改其中的属性dataDir,指定数据的存储目录:dataDir=/home/software/zookeeper-3.5.7/tmp。

12. 保存并且关闭zoo.cfg。

13. 进入Zookeeper的安装目录下的子目录bin目录中:cd ../bin。

14. 执行zkServer.sh文件,来启动Zookeeper服务器端:sh zkServer.sh start。

15. 执行zkCli.sh文件,来启动进入Zookeeper客户端:sh zkCli.sh。

4. 特点

1. Zookeeper底层是一个树状结构,根节点是/。

2. Zookeeper中每一个节点称之为Znode节点,因此这棵树称之为Znode树。

3. Zookeeper自带了一个子节点/zookeeper。

4. Zookeeper在创建节点的时候可以携带数据也可以不携带(早版本的zookeeper中,创建节点必须携带数据),数据 可以是对节点的描述,或者可以是一些配置信息。

5. 在Zookeeper中不存在相对路径,所有的路径都必须从根节点开始计算。文章来源地址https://www.toymoban.com/news/detail-612478.html

5. 命令

命令 解释
ls / 查看根节点的子节点
create /video 创建节点
delete /boot 删除节点
rmr /video 递归删除节点
get /aaa 获取节点数据
set /aaa 修改节点数据

到了这里,关于大数据课程C3——ZooKeeper的概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大数据课程F1——HIve的概述

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解HIve的概念; ⚪ 了解HIve与数据库的区别; ⚪ 了解HIve的特点; 1. Hive原本是由Facebook公司开发后来贡献给了Apache的一套用于进行数据仓库管理的机制。 2. Hive提供了类SQL(HQL,Hive QL)语句来管理HDFS上的大量

    2024年02月14日
    浏览(56)
  • 大数据课程E1——Flume的概述

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Ganglia的概念; ⚪ 了解Ganglia的拓扑结构和执行流程; ⚪ 掌握Ganglia的安装操作; 1. Flume原本是由Cloudera公司开发的后来贡献给了Apache的一套分布式的、可靠的、针对日志数据进行收集(collecting)、汇聚(ag

    2024年02月14日
    浏览(34)
  • 大数据课程J1——Scala的概述

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Scala的特点; ⚪ 了解Scala的开发环境搭建; ⚪ 了解Scala的开发工具; Scala既是 面向对象 的语言,也是 面向函数 的语言。scala可以为你在做大量代码重用和扩展是提供优雅的层次结构,并可以通过高阶函

    2024年02月13日
    浏览(49)
  • 大数据课程K12——Spark的MLlib概述

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Spark的MLlib概念; ⚪ 掌握Spark的MLlib基本数据模型; ⚪ 掌握Spark的MLlib统计量基础; MLlib是Apache Spark的可迭代机器学习库。 适用于Java、Scala、Python和R语言。 MLlib适用于Spark的API,并与Python中的NumPy(从Spa

    2024年02月11日
    浏览(38)
  • Air101|Air103|Air105|Air780E|ESP32C3|ESP32S3|Air32F103开发板:概述及PinOut

    目录 1、合宙Air101 固件编译可参考: PinOut(V2.1092400): 管脚映射表 PinOut(V2.1091800): 2、Air103 最新固件下载: 固件编译可参考: PinOut(V3.21112201): 管脚映射表 资料链接 PinOut(V4.21121301): 3、合宙Air105 固件编译可参考: 管脚详细信息 PinOut(V2.22050801) 4、Air780E 固件编译可

    2023年04月08日
    浏览(41)
  • Zookeeper概述及部署

    Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 Zookeeper的工作机制 :从设计模式角度来理解: 是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeepe

    2024年02月16日
    浏览(76)
  • zookeeper概述和原理

    分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制 ,让他们有序的去访问某种临界资源,防止造成 \\\" 脏数据 \\\" 的后果。 在这图中有三台机器,每台机器各跑一个应用程序。然后我们将这三台机器通过网络将其连接起来,构成一个系统来为用户提供服务,

    2024年01月23日
    浏览(34)
  • Zookeeper概述

    ​ ZooKeeper概述 ZooKeeper是什么 zookeeper是一个为分布式应用程序提供的一个分布式开源协调服务框架。是Google的Chubby的一个开源实现,是Hadoop和Hbase的重要组件。主要用于解决分布式集群中应用系统的一致性问题。 提供了基于类似Unix系统的目录节点树方式的数据存储。 可用于

    2024年02月09日
    浏览(32)
  • Zookeeper+Kafka概述

    Zookeeper是一个 开源的、分布式的 ,为分布式框架提供协调服务的Apache项目。 Zookeeper: 一个领导者(leader),多个跟随者(Follower) 组成的集群。 Zookeeper:集群中只要有半数以上节点存活,Zookeeper集群就正常服务,所以Zookeeper适合安装 奇数台 服务器。 全局数据一致 :每个

    2024年02月02日
    浏览(36)
  • Zookeeper快速入门(Zookeeper概述、安装、集群安装、选举机制、命令行操作、节点类型、监听器原理)

    1.1 概述 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 1、Zookeeper工作机制 Zookeeper从设置模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责储存和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生

    2024年03月28日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包