00:00
好,那刚才呢,我们已经讨论了各种各样的一个选型问题,当我们把这一切都已经敲定之后,我们就需要考虑一个问题。啊,考虑什么呢?考虑我们到底需要几台服务器来作为我们开发环境了,对吧?一般这个点呢,我们是根据数据量来做计算的,OK,那我们来看一下啊,呃,首先我们肯定是根据数据量,假如说每台服务器是8G的磁盘,呃,128G的内存啊以这个为例,当然磁盘呢可以呃略高一些,因为一般现在的服务器呢,可以自己选择,特别云主机的话,那我们可以自己选择,自己定义一个磁盘选择多大,而且呢,当你把这个磁盘的大小调大的时候,它其实整个的价格并不会有很大的变化啊,并不像内存,因为我们知道内存要比磁盘贵很多,对吧?好,那假设我们一个中小型公司每天的日活呢,在百万每人平均一天100条数据,那么一天下来呢,就是1亿条啊,大家来看算数据量,每条的数据呢。
01:13
在1K左右,举个例子,那么每天呢,就是100G的基础数据量,那如果按照这样的一个情况来算,我们应该需要多少台服务器呢?对吧,那半年内不扩容。那就是18T的数据,我们要存在这个。磁盘当中对吧,那三个副本,因为我们数据虽然我们做的是实时数仓,但是在生产环境当中,我们肯定会要把这数据保存下来。对吧,所以呢,我们要用HDFS做数据的一个存储,那么半年呢,就是54T啊,三个副本,呃,一般来说呢,我们会预留20%~30%左右啊,并不会说把整个机型的磁盘全部灌满,对吧,我们再考虑到这个问题啊,同时呢,我们需要十台服务器左右就够了。
02:03
对吧,啊,但是呢,嗯,我们在考虑数仓的分层呢。如果说我们要做这个分层啊,要不要采用压缩啊,整个的我们可能未来要重新做计算对吧,其实这样算下来啊,由于我们有压缩,然后呢,分层,其实十台服务器左右也足够我们存储这些个数据了啊,同时呢,我们有十台服务器,有128G内存,一台服务器的话,那对于我们的计算资源来说,相应的也是足够的。OK吧啊,其实我们同时考虑分层,同时考虑压缩的情况下,那对于我们实时而言呢,如果说你不想把这个数据落盘保存下来,那我们其实只需要考虑内存就够了啊,主要看在高峰期到来的时候,我们数据我们的任务能否扛得住这个高峰期数据的一个压力,那就够了啊储从内存,也就是说实时其实跟离线,它跟侧重点呢,还是有所差异的,对吧,那总归总之来说呢,我们十台服务器,十台左右的服务器已经足够我们去生产环境当中更多的去开发了,对吧?好,那最后我们再总结一下,就是说将我们上面这些规划选型全部搞定之后,就我们就搭建这个集群,一般在生产环境当中呢,我们会有两套集群,一般有一套生产集群,一套测试集群,呃,测试集群呢,就前期我们准备代码测试啊,对吧,编写和测试都用到测试集群,那我们需要把生产环境的集群的。
03:37
数据呢,拉取到我们测试集群当中做测试就好了啊,那么在生产环境当中呢,我们需要注意的一个点就是来这。客户端尽量放到一两台服务器上面,以便外部访问啊,那这个客户端呢,比如说像提交任务对吧,类似于这样的,或者说呢,像买circle号类似于这样的内容。
04:03
我们需要外部去访问的,那我们建议大家在腾讯云上面放到master节点上。因为腾讯云里边呢,我们只提供了一个master的外网啊,只有master提供了。外网的地址,其他的并没有提供,是果直接访问还比较困难,嗯,要不然你就打包,要不然做跳板机就比较麻烦这件事儿对吧,无论哪种情况,那如果说呢,我们把客户端放到了master上面,我们可以在本地有时候远程连接,直接做测试比较方便啊,那另外一个点呢,就是将有依赖关系的尽量放在同一台服务器,比如说像我们机器当中有这个。啊,学习过的同学应该知道,哎,这真正存储数据呢,是在我们的data notde上面,所以它会平时跟对的进行一个打交道,或者说它们俩之间呢,有这个依赖关系,那么这个时候呢,我们将data node以及h base它的reading server节点放到一起。
05:04
减少网络IO对吧,如果说我挨着被子放这三台,然后呢,Data not放这三台,那任何一条数据都需要网络传输才可以拿得到,对吧,那这注意这个点就好了啊,其他的呢,就是说呃,把内存使用量比较高的,类似于这种情况呢,我们可以给他单独放。OK吧,这是注意事项啊,当然你真的搭建的时候其实可以随便,因为它可以通过网络去交互,但是呢,为了未来减少网络IO,我们可以做到将有依赖关系的放在同一台服务器上,对吧?
我来说两句