00:00
好,那集群规模,集群规模如何确定,那其实集群规模如何确定,肯定是根据什么确定啊。对,肯定是根据数据量确定啊,数量大集群大,数据量小集小,对吧,这个很好理解啊,那到底怎么去算呢?来我们看一下。嗯。啊,那如何确定集规模,那现在啊,咱们先假设一个情况啊,你的集群规模是不是肯定跟你集群的资源是有关系的呀,对不对,我我单台节点我配置特别高,嗯,那你是不是需要那个相对来说那个机器的数量也要少一些啊对吧?那咱咱们假定啊,假定一台服务器,咱们8T磁盘128G内存啊,咱们这么加点啊完事之后呢。假如说嗯,我们这个公司啊,咱们的业务系统每天日活用户100万啊,日活用户100万啊,然后假如说我们每人一条,呃,就是每人我们一天可能会呃去呃产生100条的这个用户行为日志,因为你这个日活用户是不需要去访问咱们的这个使用咱们APP啊,使用APP你会产生用户日志,那假如说每人一天平均100条啊,那这样一来的话,你算一下一天就是多少条啊。
01:10
100万乘100万等于1亿条,没错,算的很快啊,那咱们往下走啊,那假如说每条日志啊,它的这个呃,大小是1K左右,那其实我们一般情况下,一条运户型日志咱们的大是多少呢?一般情况下是0.5K啊,然后到2K吧,啊,差不多就是这个范围啊,就是这个范围,那假说咱们现在取一个中间值,我比如说是1K对吧?啊,假如每条日1K,那我每天移亿条这个日志,那就是多多大的数据量啊。啊,1K没错,那你得转换成G啊,转换成G,那相当于是咱们这是1K除以1024呢,得到的是呃,那个呃兆对吧,那再除以1024呢,得到的就是呃,G啊,那大大致多少呢?100个G,你消三个零呗,相当于三个零,再消三个零啊100个G啊,这是咱们相当于是一天的数据量是100个G对吧?啊,一天数据量100个G,好,那现在咱们往下走。
02:12
按照半年内不扩容服务器来算是这样的啊,我们的数据仓库大家要注意,我们有一个这样的特点,数仓它是会保留历史数据的。啊,这个是跟我们关系型数据库呃,很大的一个区别,你像咱们关键数据库my circle,我又选择买S,那你说MYSQ里边是不是只会存储咱们最新的各种数据啊,这个怎么理解啊,比如说我这儿有一张用户表,有张用户表,那用户表假如说用户我我信息是不是会修改呀,对不对,那比如说这个他的手机号变了,那要变了的话,那你说他之前那个手机号还还会存着吗?不会做,我直接改了对吧,之前那个就被相当于被覆盖掉了啊,但是在数仓里边它不一样,我们数仓会保留所有的历史数据啊,比如说我这个人也是也是以改改手机号这个为例啊,那假如我改之前是137的,那我改完之后呢,比如说是135的,诶,那137的我会保留下来,135的我也会留着,也是数仓里边我会保留历史数据的。
03:13
啊,保留史数据,那为什么要保留历史数据呢?其实这个大家可以思考一下,为什么要保留这数据啊。其实我保留下来历史数据之后呢,那相当于我数仓里边就多了一条分析数据的维度啊,什么维度,就是时间维度,因为你保留历史数据了,那我就可以呃去沿着这个时间去观察这个数据的变化了,对不对,如果你不保留,不保留历史,那你只能看到最新的。啊,所以说我们把这个数据能够哎得到多得到一条这个分析数据的维度,那我看到这个数据随时间的变化,比如说我看一看去年这个数据什么样的,然后我才知道今年咱们怎么做啊,是这样的啊,所以说会保历史数据,那一般情况下咱们数仓里边保留历史数据,保留多少天呢?一般情况就是至少半年啊,可能不同公司我这个不一样,可能有的公司保留一年的啊,有的公司一年半对吧,但是至少一般情况下都得保留半年啊,就是最近半年的数据我肯定得保留。
04:07
啊啊,那所以说咱们按照半年不扩容来算,就是保按照保留半年数据来算,那咱们这块需要多少台节点呢?需要一共有多少数据呢。是不是一天100G,你要保留180天,那你这半年的数据呢,就得18个T对吧?啊18个T,那18个T,那你说我需要啊,就按照这样的一台服务器的这个配置来说,我需要几台呢。嗯,差不多这个几台就够了,三台就够了,对吧?啊,但是你要你要注意考虑个问题,什么问题啊。我们数据仓库当中,我们数据都存在HFSHDFS呢,我们都有副本,那副本一般情况下咱们读几个,一般就是三个副本,那所以说在考虑副本的问题,那我们还得在是不是得乘个三呀,对吧,也就是半年我们数据量应该大概是54T,那54T我们需要多少台节点呢?
05:00
七万五十六对吧,差不多七台对吧,但其实这时候还没还没完啊,因为大家要知道啊,我们数整个集群当中,我不是说只存咱们这些数据吧,对不对,我还会去干什么呀,比如说去部署一些应用啊呃,当然还会有一些其他的应用也会使用磁盘,就比如说咱们集训堂直播有卡不卡。那卡法是不是也要占用磁盘空间呀,对不对,那这些东西都得占用空间,那所以说我们一般情况下还得再预留20%~30%的空间,那所以说54T呢,咱们再给他出一个0.7,哎,那大概是77T对吧,也就是说我半年我需要77T的数据,那算到这儿呢,我大概需要几台,需要十台服务器。啊,但是算到这真的就完了吗?没完没有,为什么没完呢?啊,你想一想啊,为什么没完。咱们现在算的仅仅是什么,仅仅是你这个数据发过来是不是就得就得发这么多呀,但我们收藏还得干啥?是不是还得处理,还得分层啊,对不对,那实际上咱们这算的仅仅是哪层呢。
06:03
仅仅是第一层,这后边还有五层对吧?当然后边五层数据量肯定没有第一层大,为什么?因为咱们数据的分析过程是一个什么过程啊,分析肯定是在进行聚合操作对吧?啊,肯定进行统计,统计是聚合,所以后边数据量会越来越少,但是即便它越来越少,它一定要占空间的,对吧,也占空间,那所以说呢,呃,你这个呃到这还远远不够,那考虑到负仓分层呢,一般情况下我们会再把这个集群的规模再扩容两到三倍。也就是说咱们现在需要多少台,差不多20~30台啊,但是呢,现在还没完,为什么没完啊,那咱们得考虑数据的压缩啊,咱们到了H大数据是不是肯定会压缩呀,对不对,那压缩的话呢,我我相当于这个空间是不是还能减少一些呀,对不对,那压缩我们,呃,有些数据压缩,有些不压缩,那所以说我们大概统计按照多少呢?按照50%这个压缩率去算啊,那所以最终算下来之后,那咱们这个数据量是多少啊,差不多就是十台到15台诶这个区间。
07:09
啊,咱们这个集群规模计算呢,你不可能就是精确的计算,我就需要12台啊,我需要13.5台,不可能啊,对吧,你就是肯定是一个范围啊啊,那咱们这个数据量差不多就是十到15台节点啊,十到15台节点啊,是这样的啊,那所以说咱们大致有一个这样的,现在有一个这样的一个初步的印象啊,什么印象,就是说我一天100G的数据量,那我的集群规模呢,差不多就是十到15台,十十五台,如果公司咱们钱多,那我肯定是大一些比较好。啊,为什么,因为你省的麻烦呀,对吧,你一开始选的小,后边不够了,还得扩容对吧,那就麻烦了啊,所以说如果不缺钱,那尽可能开始的时候就大一些啊,就大一些啊,这样十到15台,大家把这个关系呢,先给它差不多对应起来啊,就是100G每天100G差不多是十到15台就够了啊当然这个呃配置呢,得知道是8T,按8T去算的啊好了,那这就是咱们这个集群规模的这个计算方式啊。
08:07
好,那集群规模计算完之后呢,那咱们还得去做一个集群规划,还得去做一个集群规划啊,那做集群规划的话呢,我们假如说有十台节点对吧,那十台节点,那你说我们去规划的时候,那怎么规划呀。你别说,我不说,还多吧。啊,部署卡不卡。对不对,那部署HFA,这是不是都得去规划一下哪台街内,然后部署什么服务啊对不对?那假如说咱们以海度为例,海度为例呢,我们有那有那个hfs有雅安对吧?Name notde,我我选一台节点啊,那一般情况下咱们在双业地区我们会做这个HHA对吧?呃,再选一个name note啊,完了之后呢,呃,剩下就是data note啊note啊,每台节点都要有一个data note啊,然后result,那个雅安呢,我有result manner对吧?啊,然后选一台节点,当然不要跟name note重复啊,换一台节点尽量保证什么呀,这种主节点分散开对吧?啊完之后呢,这个note manager每台节点都要有啊,你需要这样一个一个去规划的。
09:04
啊,然后大家记住一个这样的原则就行,什么原则呀,就是两个原则,第一个啊,就是尽可能的让咱们这个每台节点的负载是均衡的,这是第一点,那第二个原则呢,就是有一些框架啊,实际上他们之间是有这个依赖关系的啊,你需要满足这个依赖关系,比如说谁。咱们前面比如给大家讲到过啊,讲到一个问题,什么问题呢?就是呃呃,那个h base h base部署的时候,咱们有个要求,就是说reason server必须得在node节点上,对吧?啊这个你是不是就得保证这个原则,哎,这是得注意的,那这得注意,那其次还有一些有这种依赖关系的啊,比如说什么呢?比如说咱们的调度框架啊,但阿斯卡班咱们没学对吧?但阿斯卡班没学,那阿斯卡班到时候咱们学的时候呢,你会发现它里边有俩角色,一个叫做web server,一个叫做ex server。呃,这个web server呢,是负责咱们调度的或者其他的一些工作,那ex serve干啥的呢?它就是专门用来干活的,因为调度,所谓调度是不是就是定时去执行一个一个一个任务啊,对不对啊,是这样的,那我们调度的任务有什么?咱们后期要调度任务可能有have啊,Have是不是比如有S啊,啊,那还有什么呢?还有比如说这个scoop啊,那既然我要用excuor去执行咱们的have任务,那你说他俩是不是就得有依赖关系啊,对不对,我是不是必须得保证ex所在的节点得有have才行?
10:29
如果它要是没有,那你能调到吗?你调不到啊,你知钓不到,那所以说就是对于这样的一些有依赖关系的框架,我必须得保证它在相同的节点啊,主要就是这俩原则来总结一下啊,一个原则就是保证,诶那多台节点的这个数据呢,大这个负载的大致是均衡的,第二一个呢,就是有依赖关系的这种服务呢,尽可能的控制在同一台节点啊,不是尽可能是必须布制在同一节点,要不然你调不到啊啊,那这就是咱们的两个原子。好,那现在给大家展示出来的一个是什么呢?是咱们呃一个测试集群的这个规划,咱们一般到公司之后呢,我们都会有一个生产集群,有一个测试集群,生产集群呢,一定要按照咱们刚才讲的那个,呃,那个配置那个计算去去进行规划,那测试集群呢,相对来说就比较随便了,一般测试集群呢,我们差不多呃配置呢,64G就够了啊,一般单台节点就是4G,完了之后呢,这个32其实也凑着能用,反正测试集群嘛,无所谓啊,完了之后呢,这个节点的个数也也比较随便,一般三台节点就够了啊,三台节点就够了,这是测试集群,那咱们这儿呢,给大家列出来的一个测试集群的一个规划,其实这个测试集群呢,就是呃,咱们现在这个我们自己用的这个虚拟机,咱们就按照这个播放啊,就跟咱们之前搭的一样啊,大家一样,所以这个呢,咱们就不再一点点去看了啊啊咱们后续随着我们一一点点搭建,那就能够看到整个集群的规划了啊好,那这块咱们就说完了,就这块大家记住俩原则就行了,一个是负载均衡,一个是有依赖的了,得在同一台节点啊。
11:58
好,我把视频录一下。
我来说两句