00:00
啊,到时候那个会告诉大家如何把它放到好的,但是我习惯上呢,还是呃就放在这,因为第一方面可以直接快速的看到日志,看到日志第二个关的时候也挺方便的。啊,关的时候也挺方便的,就不用敲命令了啊,不用敲命令了,是这样的啊,多个来是这样的,OK,然后我们想用的话,我一般都是再开一个这个窗口啊,再开一个这个窗口,就是那个,呃,这个窗口呢,就直接就是当做卡不卡那个窗口啊,就在那放着,然后我们看一下卡不卡。他这个进程叫那个康康。啊,叫这个卡不卡,是不是有时候你们会遇到什么run炸。或者说不stop等等,它有很多的一个进程都是同一个名字啊,对吧,那有一个方法,你们用GPS的时候有没有试过。杠L就是当前这个晋茶,它的主类全类名。给你表示出来了,给你表示出来了,那你想想看,有的虽然都叫装栅,但是不同框架的一个装栅,它前面那个东西。
01:05
它所属的包的一个情况不一样吧,整个的包的结构是不一样的,是不一样的啊,那这块可以方便呢。但是有的东西它装账呢,好几个装账完全都一样。那像这种东西怎么办呢?你每次企业进程之后啊,你最好把它那个什么。把这个东西记到一个文档里边啊,记到一个文档里边,因为你到时候某一个进程出问题,或者说你的某一个框架要把它停掉,做一个什么修整的时候,那这个时候你可能它不好有有的有的框架是没有那个什么关闭钉钉的,你只能跳了。或者说那个进常出异常了,正常的你用正常的方式关闭不掉了,你只能通过Q吧。那你如果说很多个装栅在这儿摆着,然后你通过GDS-L呢,看出来的所有的路径都一样。那这个时候你挑哪个呢?
02:01
你就不知道挑哪个了,因为生产集群当中不光你一个人在用这个集群啊,就还有很多其他的一个任务也提到,在上面说这个事干什么呢?就说你在公司当中几个进程,你自己进程之后,你要形成自己的一个文档。形成自己一个文档,将这个什么进程ID跟你的一个进程名,哎给他记录下来,给他记录下来,到时候你就知道,哎该删死哪个进程,哪个进程具体是干什么用的啊,干什么用的,OK,是这样的,那我们卡夫卡呢,它虽然实例叫,而且配置文件里边写的也是博,但是它的一个进程就是它启动的一个类,还是卡卡这个类吧,哎,这个是全类名啊,你看着。对吧,啊,这是全类名,就是主类啊,就是我们之前所讲的那个主类,OK OBD model卡不卡。接下来我们就是呃,创建一个topic,然后往这个topic写数据,然后从那个topic消费数据,对吧,就做这个事,好之前提过这个关于topic。
03:02
所有的命令应该用的是。卡普卡topic斯吧,哎,卡普卡topic斯topic,那这样这个首先卡普卡集群我们知道它是依赖于数K的配置文件里面都写了,对吧,依赖我们自己写到K,那这个topics它也一样,他要将它这个数据信息啊,也要写到那个K里边,所以说你这个地方要跟很多倍根参数,首先是一个create。就表明你当年要创建一个topic对吧,哎,创建,然后接下来。2181的口。2181端口啊,卢K是2181端口对吧?哎,连到卢K吧,因为我们是要将这个topic的信息啊写到卢里边了。好,呃,之前在那个讲那个卡夫卡详细架构的时候,说topic它有。有分区机制,有副本机制了,所以说呢,你在创建topic的时候,是不是要把分区副本。
04:05
给它定下来啊,你要分几个区,你要副本数要几个对吧?啊是这样的,那partition。注意这个地方是PARTITION4啊,那假如说我分两个区吧,啊,分两个区,然后还有一个副本对不对,副本replication c。啊,我把它副本数设为二。副本书射标可以吧,三个节点两个副本,两个副本OK,然后最后还有一个什么东西啊。你这个topic叫什么名字,你得告诉他吧,啊叫topic叫什么名字?2SD啊,我们叫first,第一个走。好,它这边显示什么,创建成功了一个first first。接下来我想查看一下什么呢,这个first到底有没有创建成功,我想或者说我想看一下我这个卡化集群里边有多少个topic,哎,它的一个命令呢,它也还是同样的关于谁啊。
05:10
的对不对,哎,关于topic的那卡不卡。然后杠杠这次就不是什么create了吧,我们要查看就是list列出来杠杠。诶。哈,多宝102冒号2181。那什么分区副本,还有什么topic名需要传吗?就不需要了吧,来走一下。只有一个吧,啊,因为我们刚搭建的卡卡集群只创建了这个啊,只创建first,只有一个啊,只有一个好。呃,来,我们看一下这个分区和副本啊,这个东西它也在,这就是说我们创建的这个topic,我们之前提过是不是实际的数据存在topic。
06:02
对吧,它的目录之间创建这个log斯的时候就提了一下。这个log不光是存日志的,对不对。实际的数据也存在,这来我们进来看一下CD。你看首先它里面有很多的一个什么logo对吧?啊,正常的一些logo日志在这啊,什么搜点logo啊等等啊,这些都有,那你看到这两个东西。这什么first是不是我们刚才创建的一个什么topic吧?To,那零一猜一下它是什么的分区,这是分区哦,这是分区,副本不可能放在一台机器嘛,对吧,这是分区,好,然后我们还有副本是两个吧。那你想想看,肯定在其他机器了吧,来看一下啊。C do OBD model卡不卡,然后这个log斯LL,哎,这个地方有一个fo的一号分区,那零号分区不用讲,肯定在这个104了吧,对吧?CD model卡不卡,Block斯l l f fo0在这,FO0在这,那其实它的一个分区跟have一样,分的是一个什么。
07:11
文件夹你看见没?它是一个什么?文件夹吧,哎,它的分区呢,也是分的文件夹啊,一个区一个文件夹。啊是这个大家要注意一下啊,它这个地方也存了一个实际的数据,OK。好,然后我要讲一个什么事情呢,大家应该知道HDFS这个东西啊。呃,你只有三台集群,就是三个节点,但是呢,你副本数设为十个是不是可以啊。不报错吧,其实那个地方HDFS它指的是什么意思呢?就是说你最大,你在外面指定的是最大,当你集群如果能不断的往上增,哎,增到十个的时候,它就有十个副本了,诶当你增到11个的时候,它不会是一个副本还是十个副本,是这个意思吧。什么呢?怎么办?那你你副本设置的就最大了,我现在要做一个对比什么呢?刚才我是不是副本数创建这个什么。
08:08
创建这个first的时候,我把它的一个副本数设为二,对吧。那我们有三个节点设置为二,那我要是一个什么呢?来,大家应该猜到我的我要是什么了吧。四。对他会不会呢?不会吗?那不会,我说这个点干什么呢,还也是对吧,我就要做对比,这个地方肯定会报错的,来看一下。错了对吧,他说什么看这一块。说副本这块错了吗?他说四是大于什么?可用的我们可用的我们只有三个节点对吧?哎,只有三个是这样的,所以说呢,HDF那边你指定那个副本数啊,指的是最大,但是卡普卡这边它不是指的最大,他就是说实际我就要存多少个,如果你的节点达不到那么多个就不行。
09:04
这不行啊,要做一个对比,要知道的这个东西啊,这个东西啊。这是要注意的一个点啊,接下来我们来测一下这个什么生产,还有一个消费对吧,生产消费那这一块来看一下。命令行,呃,首先刚才我做的操作呢,这个文档当中都有,文档当中都有,所有的一个命令都非常详细啊,什么杠杠list呀,而且呃,像这种的就是说前面有个什么参数,后面有值的,你可以调换位置,你你发现刚才我刚刚list是不是写在前面。对吧,这个位置可以换的啊,这个位置可以换的,你要注意一下啊,不是说这个位置咱们固定写死的,你随便可以换,随便可以换啊,然后刚继续。删除topic,我们等会再删吧,我们先测试一下数据,最后把这个删了可以吧,啊就省得然后测试完了之后又又给他找回来,对吧,给他找回来,那发送消息和消费消息呢,其实命令我们也知道。
10:04
是什么?一个是producer,一个是。Producer一个是啊,生产的消费者,那你看它里面的东西啊。生产者连的是谁?Brook list的是我们刚才提到的卡夫卡集群的一个节点吧,哎,他连的是卡夫卡集群消费者呢。我们之前是不是提过消费者会将自己的一个保存在呀,所以消费者他连的是吧,哎,他连的是K这块稍微要注意一下啊,稍微注意一下,OK,那我们起一下。在这B卡夫卡conso con of council,然后掀起生产者对吧,Producer,然后它连的是什么?
11:01
Broke list,然后哈102,刚才大家看到那个端口号是。啊吗,是9092。是他默认的一个端口号,我们并没有改啊,默认的一个端口号9092啊,像这些端口号大家要记得,我也给大家在那个群里发了那个什么,发了一个那个一个图表是吧?啊那个东西呢,就是常用的一些端口号,就是外网端口啊,服务端口啊,稍微记一下啊,这些东西都要记一记的,面试当中有可能会问,会被问到的啊,这东西正好要记得,要记得住的,因为这个还有什么好处呢?不光你面试的时候会不会问。就是你看异常信息的时候,你是不是经常能看见什么连接不上,连接不上这种啊,什么拒绝连接啊,你一定要找到它是什么东西,是哪个端口号拒绝连接的,它肯定是有一个端口号直接连接的。所以说你要根据这个端口快速的定位到那个服务,你先看一下那个服务有没有挂,对吧,你先看一下那个服务进常在不在,如果不在,你就看一下什么,或者说他还在,他连不上,你去看一下当前那个服务的一个具体的一个日志,你才能一步一步的找到错误。
12:13
要不然你看到端口号你都不敏感,这是这是不行的,你就定位不到错误了啊OK,那这个地方是90929092。然后你要往哪个topic发送,你要告诉他吧。对吧,哎,写数据是要写到topic的,OK,刚刚。我们只有一个。First对吧,哎,只有一个first OK,走一下啊,这边出现了一个什么切符号啊,你就可以输了。然后什么还照硅谷对吧,那这一块我们当前生产者生产的时候,有消费者在那边获取数据吗?没有吧,哎,当年是没有的,OK,那我们可以起一个这什么。消费者,这个消费者既然是一个集群,我在103起可不可以,可以吧,啊,这是肯定可以的,因为他们是一个集群,是一个集群,那当然你再开一个什么102的窗口,在102起,这也是可以的B。
13:11
卡夫卡这块我们要连什么?对吧,那个端口是。2181对吧,哎,卡普卡的端口是9092,它是2181,对,那你消费消费每个topic你是不是也要告诉他呀,对吧,可。S啊,对了吧,走。放我这个。啊哈,多102。对吧,102楼了,就是当前那个他没找到这个就可以了,对吧,这个就可以了,刚才那个写错了啊,102楼了,那这一块刚才之前说了,呃,你是一不通心啊,你那边发送的我我可以不在线啊,为什么这边没有呢?
14:07
没有获取到数据吧,刚才我不是在那个生产者那边,不是发送了一个什么hello爱硅谷吗。是这样的,这个cons cons就是控制台的一个消费者,它是这样的,它是获取到最新的数据,来,我再打一个哈。收到了吧,然后再来一个,再来一个什么哈,对。说到了说到了什么叫登录以后才能对这是控制台的一个消费者,他默认的就是获取最新的,从最大的那个的。最新的开始读,那如果说你要想在控制台消费者将这四条数据都消费到,你们可以加一个这个参数。杠杠from就是从开始开始消费就指定一下。
15:04
能懂这个意思吧,走一下。四条数据都有了吧,如果你不加这个从开始读,他就是从最大的位置读,这是这个控制台的一个消费者啊,这是控制台的消费者。啊,你要注意一下OK,然后看一下他每次我每次启动的时候,他都报了一个什么。一个警告一个警告,他说让你干什么事?他说你用那个to so来代替。OK。代替一组K,那这个就是我之前给大家提到的,就说新版本啊,高版本之后呢,它是将这个奥赛维护在哪。维护在本地,就是维护在卡夫卡的一个本地,他不交给从开维护,那这有什么好处呢?是这样的,消费者之间提到的,他是从topic一个一个主题里面获取数据,对吧,他是要找leader去获取啊。
16:00
那既然找leader获取它这个consumer跟leader是不是要建立正常的一个通信呢?对吧,它要建立正常的一个通信,好正常的你数据呢是独立的呢,但是你拿过来数据,每一条数据它有一个off set,你要把off set给谁。给ZK,你又要维护一个跟ZK的一个。一个通信对吧,要跟CK的一个通信,那卡不卡集群他就不乐意了,你这样就是太浪费效,就是效率不高吧,你本身跟我进行交互就够了,你为什么又要开一个线程跟VK进行交互,就太麻烦了啊,效率很低,然后呢,卡普卡的往高往。版本越来越高的时候,他就直接设计成什么样呢?哎,这个东西啊。我就你不是读数去找leader吗?我将这个也维护在你的这个leader这啊维护在你,你用那个卡普卡集群帮我保存一下。我要用一个通信就解决了这两个问题吧,就不要用两个了啊,提高了他的一个效率,效率这个在面试题当中是会被问到的。
17:05
他他会问什么呢?他说为什么那个最新的版本当中说那个off维护在本地就是为了提高效率,为了提高效率它本身呢,就要跟leader进行通信,然后如果说你把off set存在了people当中。存在图K当中,那他又要从找图K进行通信嘛,啊就效率比较低啊效率比较低,那我们试一下用这个参数对吧?来看一下它能不能获取到数据,来获取到数据,OK,还是这条命令,那就把这个look keep这个参数改成什么。To so对吧,哎,杠杠to so用它这个来代替,然后to so呢是我们卡普卡集群,那它这个端口号是。9092102又漏了是吧,等会又又找不到了是吧?OK,那我们再消费一下,看能不能消费到。
18:01
也能消费到,而且没有了那个什么。没有了警告了,没有了警告了啊,这是老版本的一个A,老版本的时候要连OK吧,就是你写API的时候,你要给他传参数吧,你想想看,你启启动生产者啊,你要传参数,那老版本的话是连得数K宝啊这两个东西,现在呢,连锁K这种方式呢,已经被标记为过时的了,就是你你如果导的依赖是最新的依赖的话,当然你如果导0.8的依赖,那它还没有过时对吧,那那你你这个还没有呢。啊没有呢,这个意思,所以说两个大家都要知道啊,都要知道这两个东西啊,就是一个是连组K,一个是连集群,然后联通开播的时候呢,他新版本的时候,他说这个东西是一个老的什么消费者已经被什么迪克的吧,诶已经被标记为过时的了,标记为过时的了,你要注意一下,就新版本呢,它是存在这个本地的啊存在本地的OK,那我还要告诉大家存在本地的啊对吧。
19:04
我们之前提过卡卡存数据存在哪。不是存的,是是存在哪topic吧topic,那我们这有一个first,来看一下我们来干什么呢?此时再来查看一下谁啊。有多少个逃病?卡不卡?然后呢,杠杠list。鲁宝好多宝102冒号2181,注意这一块你是不是看to。对吧,Topic这个东西的这个信息还是写在总开的,因为它属于谁啊,属于卡夫卡broke里边的一个东西,对吧?啊,他不是你消费者的东西吧,OK,走一下。还有吧,多了一个什么。Consumer of consumer of,这是它系统的一个什么?
20:02
To啊,他自己创建的,就是因为你刚才启动了一个消费者连的是。卡不卡提群,所以说他要把你。写下来吧,要保存出来呀,它保存在哪呢?它同样的也是保存在一个topic里面的。保存在里面了,是这样的。啊,所以说卡不卡,它保存的所有的数据呢,都是通过这个topic来保存的啊,都是通过这个topic来保存的啊这块要大家注意一下,注意一下就是支持新版本才有的一个东西,才有的一个东西,OK,然后这是深圳的消费者,而且控制台的一个消费者如何获取到一个全量的数据,加一个这个参数就够了吧,啊加一个参数就够了,OK,把这个关掉。还有两个命令没讲。第一个来。删除,我们最后删,最后再删,还有一个查看topic的一个详情。
21:00
详情就是来操作一下。B,卡夫卡啊,只要是跟topic有关的都是这个比例,然后还是连什么。好,都把102括号2181281OK,然后我们要DEC describe对吧?哎,描述一个人呀。Foster。走。好,出现了一堆,来看一下,首先第一行这个东西呢,它是topic叫什么对吧,Topic名字,然后是。分居数。副本数,然后这个是其他的一些什么配置对吧?好,我们一个一个看一下配置,这个配置呢,是根据。你看它两条配置。是吧,两个分区一行一个分区吧,啊,这个分区是属于force的这个topic的,OK,那这leader指的是什么?
22:07
确实是。是不是离的不是?就是这个partition,我们不是有两个副本吗?他的leader在哪,是哪个机器?是不?不是零,当然我们看到了这个上面是什么零一对吧,这个上面是一,这个上面是零。还有印象吗?就是分区啊,对吧,当然看到文件夹分区是这样的,OK,那这样它帕是零,是不是存在零二啊。零一个二一个吧,哎,它中间呢,有一个leader,有一个是副本follow,那它leader是零,你看这边。副本在哪吧,零二上,那这个东西,哎,SR又是一个什么呢。副诶有同学发现了,跟那个副本完全一样,对吧,跟副本完全一样,它其实跟那个副本确实是完全一样的,它是一个什么东西呢?是选举要用到的。
23:08
选举要用吗?就是说如果列挂了,假如说列挂了,他在这个里边活着的,如果列挂了,是不是这个零也没了呀,他在里边选一个,如果说我们三个副本,这这地方可能还有一个一啊。对吧,那二一他怎么选呢,他这样的,他这个选举机制啊,是啊,就是说他这个leader是我们那个什么。生产者往里面写的数据对不对,对吧,那副本生产者不会往里写吧,他是怎么来的呢?副本里面数据是主动从一的,他自己去拉的。他自己获取的好,那这一台假如说零,这是0123台机器,零是leader,你生产者往leader写数据的时候,你有一二自己主动的过来获取吧,那既然两台机器主主动的获取,是不是你两个人的获取的一个速度或者一个进度?
24:05
有可能不一样吗?有可能不一样OK,那这里面这个顺序怎么排的呢?就是说谁。就是这两个副本后面要真离用对吧,谁跟这个里边的一个数据最相近,就是说差异最小,谁就往前排,谁就往前排。最快带你。啊,就是说好这样就第一次。如果说三个副本0123个副本对吧。三个副本。听我说,听我说,然后这样。三个副本就第一次启动的时候,它是不是任一一条数据都没有啊,就不可能采用什么差异性,对吧,他随便选一个能力的。随机选一个,随机选一个,那以后呢,它是怎么来啊,那假如说这个地方选了零和1LI了吧,那以后写数据是不是先找零啊,先先找零零没挂都找零零挂了之后这个一二谁当leader的问题,就是说谁的一个跟它数据最相近,谁当leader。
25:13
那个意思,他他是他在这个地方就已经把顺序排好了,他排顺序也是按照这个规则来的。就是说真的当leader,虽然我们讲的是谁先谁,谁最接近谁当leader,对吧,但是真的leader挂掉了之后,他可以迅速的把它当leader,因为他把这个事情提前做了,能懂这个意思吧,就是说它放在这个sisr里面存储的时候,就是按照。最接近的那个顺序排到就已经排好序了啊,就已经排好序了,是这样的啊,整个的过程是这样的,那就要知道这个isr是干什么用的,就是为了你挂了之后要选举作用的啊,选举用的。啊,全用的,那整个的这个topic里边分区副本有这些东西吧,哎,相应的都有,应该有OK,那最后就差一个什么了。
26:02
删除这个topic了吧,删除topic b。我有两个问题啊,就是这个副本的。副本这对,这个leader不是零,然后副本是零二对,就说换一个副本是保和leader是保一起的。不是不是,呃,这个副本指的是这个数据就是数据它就存两份嘛,这个副本数指的是那你你是leader,你照样也也能提供那个副本的一个作用啊,对吧,那个零二前面后面那个零。就是一样的,就是不他俩都是不对,就是102他台机器。能懂吧,啊就是指的是这一台机器,因为我们副本数不是设置为二吗?这个副本数是立加followlo在一块的一个数量啊,在一块这个副本数不是说follow才是副本。
27:00
能懂这个意思吧,啊是这个意思,也就是说后面的话就是指。对对,不就是这个4104这两个东西呢,在这个地方之前不大家看了吗?下这个什么,那克斯就这个地方有一个零对吧,哎,零,然后104上有一个什么。一个零就这个意思啊,就这个意思,然后接下来我们测试一下删除对吧,删除卡夫卡topic,然后杠杠delete。然后杠杠,那删除的时候你也不用管它什么副本什么分区了吧,直接告诉他你要删哪个topic就行了。走一下。嗯,啊,这个没写啊。啊,告诉如K你要进行数据更新了,对吧,好多102冒号2181走一下。
28:04
好,来看一下,这是它显示的一个bug啊。他这个地方说什么,他说已经被标记删除了,他让你把这个东西干什么。设置为出吧,我们是不是已经设置为出了,哎,你这块要注意啊,这就显示的bug,那我们把这个first一再重新first再重新创建一下,看能不能创建吧,来B。卡不卡,Topic杠杠。刚刚这是他显示的一个八道冒号,2181,然后杠杠。那个partition对吧。然后杠杠。Replication。然后啊,Reation reation,然后杠。Factor factor,然后说啊,这个地方要指定一下,还是两个分区,两个副本,或者说我改为。
29:02
一个分区可以吧,两个副本我跟刚才不一样,跟刚才不一样,或者说改成三个吧,完全两个数字都不一样可以吧,之前是二二对吧,然后杠杠。First。走。能创建成功吗?哎,能创建成功的,那你再看一下L下这个斯只有零了吧,哎,三个同样的都只有,因为我们只有一个分区了呀,哎完全就变了,完全就变了,然后来下这个LOG4,这里面有,因为我们是三个副本啊,三个副本这个东西就是它删除的日这的时候一个显示的一个bug,显示的一个bug啊这块。
我来说两句