【zookeeper】zookeeper的shell操作

news2024/12/22 9:25:09

Zookeeper的shell操作

本章节将分享一些zookeeper客服端的一些命令,实验操作有助于理解zookeeper的数据结构。

Zookeeper命令工具

在前一章的基础上,在启动Zookeeper服务之后,输入以下命令,连接到Zookeeper服务。连接成功之后,系统会输出Zookeeper的相关环境及配置信息,并在屏幕输出“welcome to Zookeeper!”等信息,倒数几行的位置,如下:

[root@k8s-m1 bin]# zkCli.sh -server k8s-m1:2181
Connecting to k8s-m1:2181
2023-08-31 16:36:48,125 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.12-e5259e437540f349646870ea94dc2658c4e44b3b, built on 03/27/2018 03:55 GMT
2023-08-31 16:36:48,129 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=k8s-m1
2023-08-31 16:36:48,130 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_65
2023-08-31 16:36:48,132 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/opt/jdk1.8.0_65/jre
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/opt/zookeeper-3.4.12/bin/../build/classes:/opt/zookeeper-3.4.12/bin/../build/lib/*.jar:/opt/zookeeper-3.4.12/bin/../lib/slf4j-log4j12-1.7.25.jar:/opt/zookeeper-3.4.12/bin/../lib/slf4j-api-1.7.25.jar:/opt/zookeeper-3.4.12/bin/../lib/netty-3.10.6.Final.jar:/opt/zookeeper-3.4.12/bin/../lib/log4j-1.2.17.jar:/opt/zookeeper-3.4.12/bin/../lib/jline-0.9.94.jar:/opt/zookeeper-3.4.12/bin/../lib/audience-annotations-0.5.0.jar:/opt/zookeeper-3.4.12/bin/../zookeeper-3.4.12.jar:/opt/zookeeper-3.4.12/bin/../src/java/lib/*.jar:/opt/zookeeper-3.4.12/bin/../conf:.:/opt/jdk1.8.0_65/lib/dt.jar:/opt/jdk1.8.0_65/lib/tools.jar
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.10.0-957.el7.x86_64
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2023-08-31 16:36:48,134 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/opt/apache-zookeeper-3.7.1-bin/bin
2023-08-31 16:36:48,135 [myid:] - INFO  [main:ZooKeeper@441] - Initiating client connection, connectString=k8s-m1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@5c29bfd
Welcome to ZooKeeper!
2023-08-31 16:36:48,166 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@1028] - Opening socket connection to server k8s-m1/192.168.2.140:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2023-08-31 16:36:48,241 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@878] - Socket connection established to k8s-m1/192.168.2.140:2181, initiating session
[zk: k8s-m1:2181(CONNECTING) 0] 2023-08-31 16:36:48,314 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server k8s-m1/192.168.2.140:2181, sessionid = 0x1002552fac20000, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

[zk: k8s-m1:2181(CONNECTED) 0]

输入help之后,屏幕会输出可用的Zookeeper命令,如下所示

[zk: k8s-m1:2181(CONNECTED) 0] 
[zk: k8s-m1:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
        stat path [watch]
        set path data [version]
        ls path [watch]
        delquota [-n|-b] path
        ls2 path [watch]
        setAcl path acl
        setquota -n|-b val path
        history 
        redo cmdno
        printwatches on|off
        delete path [version]
        sync path
        listquota path
        rmr path
        get path [watch]
        create [-s] [-e] path data acl
        addauth scheme auth
        quit 
        getAcl path
        close 
        connect host:port        

使用Zookeeper命令的简单操作

(1)使用ls命令查看当前Zookeeper中所包含的内容:ls /

[zk: k8s-m1:2181(CONNECTED) 1] ls /
[zookeeper]

(2)创建一个新的Znode节点"aa",以及和它相关字符,执行命令:create /aa “first zookeeper”,默认是不带编号的

[zk: k8s-m1:2181(CONNECTED) 2] create /aa "first zookeeper"
Created /aa

创建带编号的持久性节点"bb",

[zk: k8s-m1:2181(CONNECTED) 3] create -s /bb "bb"
Created /bb0000000006

创建不带编号的临时节点"cc"

[zk: k8s-m1:2181(CONNECTED) 4] create -e /cc "cc"
Created /cc

创建带编号的临时节点"dd"

[zk: k8s-m1:2181(CONNECTED) 5] create -s -e /dd "dd"
Created /dd0000000008

(3) 再次使用ls命令来查看现在Zookeeper的中所包含的内容:ls /

[zk: k8s-m1:2181(CONNECTED) 6] ls /                 
[aa, bb0000000006, cc, dd0000000008, zookeeper]

此时看到,上面的四个节点aa/bb/cc/dd都已经被创建。

关闭本次连接回话session,并直接使用connect重新打开一个连接。
[zk: k8s-m1:2181(CONNECTED) 7] close
2023-08-31 20:17:54,078 [myid:] - INFO  [main:ZooKeeper@687] - Session: 0x1002552fac20002 closed
[zk: k8s-m1:2181(CLOSED) 8] 2023-08-31 20:17:54,084 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@521] - EventThread shut down for session: 0x1002552fac20002

[zk: k8s-m1:2181(CLOSED) 8] ls /
Not connected
[zk: k8s-m1:2181(CLOSED) 9] connect  k8s-m1:2181 
2023-08-31 20:18:22,837 [myid:] - INFO  [main:ZooKeeper@441] - Initiating client connection, connectString=k8s-m1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@5680a178
[zk: k8s-m1:2181(CONNECTING) 10] 2023-08-31 20:18:22,841 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@1028] - Opening socket connection to server k8s-m1/192.168.2.140:2181. Will not attempt to authenticate using SASL (unknown error)
2023-08-31 20:18:22,842 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@878] - Socket connection established to k8s-m1/192.168.2.140:2181, initiating session
2023-08-31 20:18:22,863 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server k8s-m1/192.168.2.140:2181, sessionid = 0x1002552fac20003, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

重新查看,临时节点已经随着上一次的会话关闭自动删除了

[zk: k8s-m1:2181(CONNECTED) 10] ls  /
[aa, bb0000000006, zookeeper]
[zk: k8s-m1:2181(CONNECTED) 11] 

(4)使用get命令来确认第二步中所创建的Znode是否包含我们创建的字符串,执行命令:get /aa

[zk: k8s-m1:2181(CONNECTED) 11]  get /aa
first zookeeper
cZxid = 0x20000000e
ctime = Thu Aug 31 19:53:59 CST 2023
mZxid = 0x20000000e
mtime = Thu Aug 31 19:53:59 CST 2023
pZxid = 0x20000000e
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 15
numChildren = 0
[zk: k8s-m1:2181(CONNECTED) 12] 

(5)接下来通过set命令来对zk所关联的字符串进行设置,执行命令:set /aa haha123

[zk: k8s-m1:2181(CONNECTED) 12] set /aa hello  
cZxid = 0x20000000e
ctime = Thu Aug 31 19:53:59 CST 2023
mZxid = 0x200000014
mtime = Thu Aug 31 20:20:39 CST 2023
pZxid = 0x20000000e
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0
[zk: k8s-m1:2181(CONNECTED) 13]

(6)再次使用get命令来查看,上次修改的内容,执行命令:get /aa

[zk: k8s-m1:2181(CONNECTED) 13]  get /aa     
hello
cZxid = 0x20000000e
ctime = Thu Aug 31 19:53:59 CST 2023
mZxid = 0x200000014
mtime = Thu Aug 31 20:20:39 CST 2023
pZxid = 0x20000000e
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0

(7)下面我们将刚才创建的Znode删除,执行命令:delete /aa

[zk: k8s-m1:2181(CONNECTED) 14] delete /aa

(8) 最后再次使用ls命令查看Zookeeper中的内容,执行命令:ls /

[zk: k8s-m1:2181(CONNECTED) 15] ls  /        
[bb0000000006, zookeeper]

经过验证,zk节点aa已经删除。
(9) 退出,执行命令:quit

[zk: k8s-m1:2181(CONNECTED) 17] quit 
Quitting...
2023-08-31 20:22:07,820 [myid:] - INFO  [main:ZooKeeper@687] - Session: 0x1002552fac20003 closed
2023-08-31 20:22:07,820 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@521] - EventThread shut down for session: 0x1002552fac20003
[root@k8s-m1 bin]# 

查看状态信息

查看一个文件的状态信息

[zk: k8s-m1:2181(CONNECTED) 0] ls /
[bb0000000006, zookeeper]
[zk: k8s-m1:2181(CONNECTED) 1] stat /bb
Node does not exist: /bb
[zk: k8s-m1:2181(CONNECTED) 2] stat /bb0000000006
cZxid = 0x20000000f
ctime = Thu Aug 31 19:56:17 CST 2023
mZxid = 0x20000000f
mtime = Thu Aug 31 19:56:17 CST 2023
pZxid = 0x20000000f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0

详细解释:

zxid: 一个事务编号,zookeeper集群内部的所有事务,都有一个全局的唯一的顺序的编号。
  它由两部分组成: 就是一个 64位的长整型 long
  高32位: 用来标识leader关系是否改变,如 0x2  
  低32位: 用来做当前这个leader领导期间的全局的递增的事务编号,如上面的0000000f

状态属性说明
cZxid数据节点创建时的事务ID
ctime数据节点创建时的时间
mZxid数据节点最后一次更新时的事务ID
mtime数据节点最后一次更新时的时间
pZxid数据节点的子节点列表最后一次被修改(是子节点列表变更,而不是子节点内容变更)时的事务ID
cversion子节点的版本号
dataVersion数据节点的版本号
aclVersion数据节点的ACL版本号
ephemeralOwner如果节点是临时节点,则表示创建该节点的会话的SessionID;如果节点是持久节点,则该属性值为0
dataLength数据内容的长度
numChildren数据节点当前的子节点个数

(1)修改节点a的数据,mZxid、dataVersion、dataLength 存储信息发生变化

[zk: k8s-m1:2181(CONNECTED) 10] ls /
[bb0000000006, zookeeper]
[zk: k8s-m1:2181(CONNECTED) 12] create /aa "first zookeeper"
Created /aa
[zk: k8s-m1:2181(CONNECTED) 13] ls    /
[bb0000000006, aa, zookeeper]
[zk: k8s-m1:2181(CONNECTED) 14] set /aa 'aa'
cZxid = 0x200000019
ctime = Thu Aug 31 20:27:57 CST 2023
mZxid = 0x20000001a
mtime = Thu Aug 31 20:28:32 CST 2023
pZxid = 0x200000019
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
[zk: k8s-m1:2181(CONNECTED) 16] 

(2)创建新的节点bb,状态信息都会发生变化,zxid的事物ID也会增加

[zk: k8s-m1:2181(CONNECTED) 18] create /bb "second zookeeper"
Created /bb
[zk: k8s-m1:2181(CONNECTED) 19] stat /bb
cZxid = 0x20000001b
ctime = Thu Aug 31 20:31:06 CST 2023
mZxid = 0x20000001b
mtime = Thu Aug 31 20:31:06 CST 2023
pZxid = 0x20000001b
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 16
numChildren = 0

(3)在aa节点下面新增节点bb,pZxid、cversion、numChildren 发生改变

[zk: k8s-m1:2181(CONNECTED) 21] create /aa/bb 'aabb'
Created /aa/bb
[zk: k8s-m1:2181(CONNECTED) 22] stat /aa            
cZxid = 0x200000019
ctime = Thu Aug 31 20:27:57 CST 2023
mZxid = 0x20000001a
mtime = Thu Aug 31 20:28:32 CST 2023
pZxid = 0x20000001c
cversion = 1
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 1

(4)ephemeralOwner 持久性的节点信息是0x0临时的几点信息是本次会话的sessionid,如图
在这里插入图片描述
(5) 查看leader并将其干掉,此时将选择另一台机器成为leader,重新创建一个文件ff,此时发现czxid的前3位和之前发生变化,说明换了leader。其实前3位应该就是我们设置的serverid值。

#k8s-m2为leader
[root@k8s-m2 tmp]# /opt/apache-zookeeper-3.7.1-bin/bin/zkServer.sh  status
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Mode: leader
[root@k8s-m2 tmp]# /opt/apache-zookeeper-3.7.1-bin/bin/zkServer.sh  stop
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

#在原来的界面继续操作
[zk: k8s-m1:2181(CONNECTED) 2] create /f 'ff'                   
Created /f
[zk: k8s-m1:2181(CONNECTED) 3] stat /f
cZxid = 0x300000001
ctime = Thu Aug 31 20:40:25 CST 2023
mZxid = 0x300000001
mtime = Thu Aug 31 20:40:25 CST 2023
pZxid = 0x300000001
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
[zk: k8s-m1:2181(CONNECTED) 4] 

更多关于zookeeper的知识分享,请前往博客主页。编写过程中,能力有限难免出现差错,敬请指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/957644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Shell - 根据进程名过滤进程信息

文章目录 #/bin/bash #Function: 根据输入的程序的名字过滤出所对应的PID&#xff0c;并显示出详细信息&#xff0c;如果有几个PID&#xff0c;则全部显示 read -p "请输入要查询的进程名&#xff1a;" NAME Nps -aux | grep $NAME | grep -v grep | wc -l ##统计进程…

go学习part20(1)反射

283_尚硅谷_反射基本介绍和示意图_哔哩哔哩_bilibili 1.介绍 1&#xff09;基本数据类型的类型和类别一致&#xff0c;但是结构体等不一样。 2)反射的例子&#xff08;桥连接&#xff0c;序列化&#xff09; 序列化指定tag&#xff0c;会反射生成tag字符串 3&#xff09;refl…

【Alibaba中间件技术系列】「RocketMQ技术专题」RocketMQ消息发送的全部流程和落盘原理分析

RocketMQ目前在国内应该是比较流行的MQ 了&#xff0c;目前本人也在公司的项目中进行使用和研究&#xff0c;借着这个机会&#xff0c;分析一下RocketMQ 发送一条消息到存储一条消息的过程&#xff0c;这样会对以后大家分析和研究RocketMQ相关的问题有一定的帮助。 分析的总体…

如何增长LLM推理token,从直觉到数学

背景&#xff1a; 最近大模型输入上文长度增长技术点的研究很火。为何要增长token长度,为何大家如此热衷于增长输入token的长度呢&#xff1f;其实你如果是大模型比价频繁的使用者&#xff0c;这个问题应该不难回答。增长了输入token的长度&#xff0c;那需要多次出入才能得到…

【LeetCode】383. 赎金信 - hashmap/数组

这里写自定义目录标题 2023-8-28 22:54:39 383. 赎金信 2023-8-28 22:54:39 次数 ----> hashmap 和 数组来进行实现。 public class Solution {public boolean canConstruct(String ransomNote, String magazine) {// num 用于存储小写字母出现的次数int[] num new in…

vue报错RangeError: Maximum call stack size exceeded

这种情况&#xff0c;一般是跳转路由时发生此类错误&#xff0c;像我的就是如此。比如路由指向的vue文件里代码有错误&#xff0c;或者设置路由时重定向了路由自己&#xff0c;造成死循环。 1、首先检查自己跳转的路由地址的代码本身是否有语法错误之类的&#xff0c;造成错误…

如何实现的手机实景自动直播,都有哪些功能呢?

手机实景自动直播最近真的太火了&#xff0c;全程只需要一部手机&#xff0c;就能完成24小时直播带货&#xff0c;不需要真人出镜&#xff0c;不需要场地&#xff0c;不需要搭建直播间&#xff0c;只需要一部手机就可以了。真人语音讲解&#xff0c;真人智能回复&#xff0c;实…

「操作系统」1. 基础

前言&#xff1a;操作系统基础八股文 文章目录 一 、操作系统基础1.1 什么是操作系统&#xff1f;1.2 什么是系统调用1.3 什么是中断 &#x1f680; 作者简介&#xff1a;作为某云服务提供商的后端开发人员&#xff0c;我将在这里与大家简要分享一些实用的开发小技巧。在我的职…

腾讯云-对象存储服务(COS)的使用总结-JavaScript篇

简介 对象存储&#xff08;Cloud Object Storage&#xff0c;COS&#xff09;是腾讯云提供的一种存储海量文件的分布式存储服务&#xff0c;具有高扩展性、低成本、可靠安全等优点。通过控制台、API、SDK 和工具等多样化方式&#xff0c;用户可简单、快速地接入 COS&#xff0…

ChatGPT帮助高职院校学生实现个性化自适应学习与对话式学习

一、学习层面&#xff1a;ChatGPT帮助高职院校学生实现个性化自适应学习与对话式学习 1.帮助高职院校学生实现个性化自适应学习 数字技术的飞速发展引起了教育界和学术界对高职院校学生个性化自适应学习的更多关注和支持&#xff0c;其运作机制依赖于人工智能等技术&#xff0…

面经:微服务

文章目录 参考资料一. 微服务概述1. CAP理论2. BASE理论3. SpringBoot 与 SpringCloud对比 二. 服务注册&#xff1a;Zookeeper,Eureka,Nacos,Consul1. Nacos两种健康检查方式&#xff1f;2. nacos中负责负载均衡底层是如何实现的3. Nacos原理4. 临时实例和持久化(非临时)实例 …

微信小程序校园生活小助手+后台管理系统|前后分离VUE

《微信小程序校园生活小助手后台管理系统|前后分离VUE》该项目含有源码、文档等资料、配套开发软件、软件安装教程、项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统&#xff0c;该后台采用前后台前后分离的形式使用JavaVUE 微信小程序——前台涉及技术&#…

【RISC-V】RISC-V寄存器

一、通用寄存器 32位RISC-V体系结构提供32个32位的整型通用寄存器寄存器别名全称说明X0zero零寄存器可做源寄存器(rs)或目标寄存器(rd)X1ra链接寄存器保存函数返回地址X2sp栈指针寄存器指向栈的地址X3gp全局寄存器用于链接器松弛优化X4tp线程寄存器常用于在OS中保存指向进程控…

金融风控数据分析-信用评分卡建模(附数据集下载地址)

本文引用自&#xff1a; 金融风控&#xff1a;信用评分卡建模流程 - 知乎 (zhihu.com) 在原文的基础上加上了一部分自己的理解&#xff0c;转载在CSDN上作为保留记录。 本文涉及到的数据集可直接从天池上面下载&#xff1a; Give Me Some Credit给我一些荣誉_数据集-阿里云…

数字化新零售平台系统提供商,门店商品信息智慧管理-亿发进销存

传统的批发零售业务模式正面临着市场需求变化的冲击。用户日益注重个性化、便捷性和体验感&#xff0c;新兴的新零售模式迅速崛起&#xff0c;改变了传统的零售格局。如何在保持传统业务的基础上&#xff0c;变革发展&#xff0c;成为了业界亟需解决的问题。 在这一背景下&…

Abaqus三维随机多面体插件—AbyssFish – Random Polyhedron Aggregate

插件介绍 AbyssFish – Random Polyhedron Aggregate 插件可在Abaqus软件内批量生成随机分布的三维多面体骨料模型。插件可指定骨料分布的区域、三种尺寸的粒径分布范围、多面体面数、各尺寸骨料的数量等信息&#xff0c;同时可控制骨料间的最小间距及插件的运行时间控制。 使…

Linux常用工具(pidstat stress cgroup)

目录 1.pidstat 2.stress 3.cgroup 4.使用cgroup进行内存限制 5.使用cgroup进行cpu使用率控制 1.pidstat 安装和使用(centos): yum install sysstats yum remove sysstats pidstat -u&#xff08;默认&#xff09;&#xff0c;查看进程cpu使用情况&#xff1a; pidstat …

Spring MVC: 请求参数的获取

Spring MVC 前言通过 RequestParam 注解获取请求参数RequestParam用法 通过 ServletAPI 获取请求参数通过实体类对象获取请求参数附 前言 在 Spring MVC 介绍中&#xff0c;谈到前端控制器 DispatcherServlet 接收客户端请求&#xff0c;依据处理器映射 HandlerMapping 配置调…

解决 beego上传文件时 报http: no such file 错误

上传时文件上传失败: 关键报错的代码: //获得文件名filename := header.Filename//上传文件//注意,这里SaveToFile参数要跟传入的文件名的key一致,否则就会报http: no such fileerr = f.SaveToFile(filename, "./static/file/"+filename)if err != nil {logs.Error(e…

大数据课程K13——Spark的距离度量相似度度量

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 掌握Spark的距离度量和相似度度量; ⚪ 掌握Spark的欧氏距离; ⚪ 掌握Spark的曼哈顿距离; ⚪ 掌握Spark的切比雪夫距离; ⚪ 掌握Spark的最小二乘法; 一、距离度量和相似度度量 1. …