00:00
好,接下来我们来看一下第一张HTFS的一个核心参数配置,那像这个第一章当中涉及到的这个参数呢?啊,属于你在搭建HTFS集群的时候啊,属于必须要参考的一些参数,你要考虑要不要配,要改成多大比较合适。那首先来看第一个就是它的name node,在生产环境下我配置。是吧,这个非常重要。首先来看,说那么多的内存,那怎么计算呢?说我这一个节点需要多少内存。那首先每一个文件块,记住哈,是以块为单位,它大概会占用150个字节。那假如说我的一个name node内存是128G。对吧,这也是在企业里面通常啊比较多的这种主流的哈,啊内存,那它到底能存储多少文件块。比较关心吧,好,那算啊,这能算我们是128G,好,那我乘以一个1024,是不是变成1020兆。我再乘以一个1024变成KB,再乘以1024变成直接。
01:05
那我一个文件框占用150个是集,那我除以它。那约等于多少呢?约等于9.1亿个文件框。也是最多我能存储这些。其实还是很多的哈,就是通常情况下在这个呃企业里面就够用了。除了一种情况,就是说你这个APS啊,呃,发生了异常,产生了大量的这个小文件,属于你对程序啊处理的不够好啊,发生了这个故障,那这时候呢,那不够,那不够的话,小文件我们有专门的一个呃处理方案啊,不用着急。那行,那除了这个方面之外,那下面再思考一个问题,那我这个还多这个128G的内存,那怎么来的,那是不是我自己他。我这个服务器128G内存。那我内部note就一定是128G呢。对吧,大家有这个思考吧。那首先来看这里面分2.x系列和3.2系列啊,它俩还不太一样啊。
02:03
还2.x系列呢,配置这个内内存的时候,它的默认值是。2000兆。啊,2000兆,那如果是2000兆是一个固定值的话。那在生产环境下是不是就一定得配置,那比如说我们这台服务器。是多少了?打开。任何一个节点是不是44G内存呢。打开4G内存,那如果你是4G内存,它默认是2000兆,比如说2G左右。啊,2G左右,那怎么调啊。那我是不是得,哎,跟我这个内存尽量匹配啊。那是不是我把所有的内存,这个4G内存都给你这个name note呢?生产文件是这样吗?不是。啊,为什么不是啊,因为你这个102上啊,除了有这个name note之外,是不是还有其他节点。还有date弄的。对吧,还有no这个no manager。
03:00
哎,也许102上你还运行着什么这个have啊,RA啊,ES啊哎等等其他主线,那么他们也需要内存,那你不能把所有的内存都给内note。那这里面,哎,我只给他3G。看3G,那具体在哪里面去修改这个内存呢?哎,你可以在hidoop inv.SH里面,你可以配置一个这个参数。啊,叫hiop name node OBS,然后把它写上,这是3G。这能懂吧,这是2.s系列哈,你可以去修改,它默认是2000兆。OK,那3.s系列它的name note内存怎么配呢?哎,那我们把这个打开集群打开啊,3.s。嗯。CD BT model道开。行到这儿,到这里面呢,Vm hi杜Inv.SH进来进来之后啊,你往下看啊,看这里面的一些描述啊。这里面大量的是这个注释掉了。
04:01
往下涨。好看这块。看到这了吗?说the maximum,这个mass amount of he,也就说对内称大小,To use Java这个啊,If no built is,比如说没有进行设置,那it will be convert to zo,壁啊,对吧,转换成zo啊,然后这个守护进城的will啊,Prefer啊,Any这个嗯,Set there option啊,Valuable there is no default,比如说没有默认这个值,那这个j v m will自动,对吧,Based upon me memory内存啥意思啊?比说这句话的含义啊,如果你没有设置这个参数定的值。那它会自动的按照你的服务器的内存配置进行一个复制。能懂吗?那下面这是最大值,那当然了,最小值它也遵循这个,你看在gpm will自动base upon啊,这个你的机器的内存。那他是不是这样呢?那我们来验证一个事儿哈。
05:02
那把这个打开。复制一个。复制一个之后呢,我们来开启一下这个集群啊。叫嗯,买。还多。把机器打开。看看他现在这个内存是多少。那怎么查看内存呢?查看内存可以用这个命令啊,叫嗯,Jma-hit,然后对应的你这个进程号就可以查看了,那我们先查看一下name node,再查看一下date note内存哈。把它打开。GPS2。OK,那查看完之后呢,我这里面执行一下,呃,对应的内蒙内存六七。八八对吧,整。查看一下值。在这个位置叫啊max大小多少,984兆左右。
06:01
哎,这是内noe占用的内存,比如说它通过你的机器获取的,它一共获取来这么多,那同学说不对呀,海哥,你这是4G内存的,它怎么就获取来这个一兆左右呢。诶,这是它也是会腾掉这个Linux系统本身需要的必须的内存,对吧,Linu系统你这个33S7.5,它不得需要内存吗?对吧,那你除了它之外还有别的啊,系统资源需要内存,所以说它只获取来了984兆,那也许你的能获取来这个两两兆,那这个呃1G这个2G内存也有可能啊,因为我的这个同事啊,他就获取的就是2G。好,这是它的内存,那我们接下来再看啊。那我们再来查看一下data note,它占用多少内存?Date note6956。这是这个进程的6956。往这儿看。对吧,也是984兆币。
07:03
这是对应的date note进程。你会发现data note和name note获取到的是同样的这个资源。那这是有问题吗?你觉得有问题还是没问题?他俩获取的一样,那你说有硬件资源能够获取多少,那他俩获取都一样,你内部note获取这些,那data note也获取这些。对吧,那我总总共能够得到的也就是984,那他能获取它也能获取,那如果说他俩同时都达到上限,说我都需要用到984,他也需要用到984,会出现什么情况?那是内存就不够了,但是你还告诉我有,那是不是他要抢占这个Linux系统的对应的内存,哎,导致意想不到的系统崩溃了。OK,所以说这种事情呢,非常危险啊,这个是不是合理的。哎,自动的这些东西啊,都不合理,那往往呢,我们需要自己去设置,那自己设置呢,这里面有一个cloud公司,比如说CDH。他对这些参数啊,给出了一个官方经验值,因为那是收费的嘛,对吧,还收费的,目前还没收费的啊到这个呃,1月31号啊,就准备了大量收费的。
08:10
那他怎么给的值呢?看这块儿。把这网打开吧。这比较慢啊,跟他开着吧,嗯,开着那来看啊,这是它内部的一个表格的值,这右边是这个值啊,这呢是内data note对应的这个值,那什么含义啊看。说内no最小值呢,是一个G,也就最小,你得给内蒙noe分配一个G,那这一个G呢,你再往上每增加100万个文件块,我得需要增加1G内存。记好了啊,每增加100万块啊,那这个block,那我就增加1G内存,这好记吧,那note呢,Date note的最小值是四个G。最小试剂。然后块大小或者你的负,嗯,这个块数或者副本数升高,那你对应的这个值还应该调高。
09:07
那调高多少?怎么调?你一个date note上的副本总数低于它,那就调为四,4G,超过这个值每增加100万个,也是增加1G。那你看啊,这边呢,是增加100万个块,我要增加一内存,Data note呢是增加100万个。副本数,那我要增加1G内存。能理解吧,嗯,好,还有一点。注意啊,Name到的呢是集群。你看这是内部note,你这下面是DN。点。也就是说我这个内内到对应的集群上,每增加100万个文件块,我增加一内群,那我这个DN呢,是表示我这里面增加100万个。副本对吧,那我要增加1G内存。能懂这个关系吗?
10:00
是这样一个关系哈。那这是经验值。那往下来,那当然这个默认这个4G啊,我们服务器总共大小是不是也没有四个G啊,对吧?哎,那我不可能给他分四个G啊,哎,人家说这四个G能能对应多少,是不是能对应400万个文件块呢?啊或者是400万个这个副本呢?啊,我这里可以调小一些啊。那往下,那我们如何来改这个hidoop inv对应的配置呢?是可以调的。哎,我这里面看一下这个参数啊,在这里面往下找。你往下找。Hideop。往下。当然,你可以泛着查找哈,泛着查找。饭的查找。查找吧,嗯。Name node。好吧,哎,聊到这儿,聊到这个位置,你会发现这个name node对应的内存的一个配置参数,看到了吗。
11:01
它给了你四种配置,这个HDFS内noe了,哎,就不叫hi do内noe了哈,叫HDS,按照一个JVM参数的一个这种场景,你可以按照这个配啊,按照这个配,按照这个配,那你看最后一个。最后一个呢,是this is the default,默认的一个配置信息,对吧,默认配置是这样。那如果说你在这个后面加上配置信息。或者说我对这个值进行赋值,我想赋值为,呃,一个G的内存怎么配?我是直接把这个变量,把1G的内存的变量付给他吗?如果你直接付给他的话,是不是这个值就被覆盖掉了。那我想保留的话怎么办?咱们是不是配置过那个EQ环境变量啊,就是那个Dollar pass。还记得吗?啊,到了帕子是不是后面进行一个拼接,哎,那你看他怎么拼接的,你看所有的拼接中间是不是都是这个空格啊,人都教你了嘛,对吧,你看都是空格,空格拼接吗。哎,那我们这里面就这么拼的。是把原来的这个保留,然后加上一个杠啊SMX对吧,然后104啊1024兆。
12:04
啊,这是name no内存,那对应的data no内存呢也一样啊,对no的内存你看一下。As。看这块儿。对吧,这是它default默认的内存,那这个参数呢,也是在后面拼接上它对应的内存就可以了啊,那这面我就直接放到这个文件的末尾吧。I'm。O插入进来,插入进来之后,我把这个参数转过来。这俩参数。修改完毕,SSYNC拍do inv、点分发。这样就分发完毕了,分发完毕之后我重启一下集群啊。Stop。这是我们通过这个手动的方式进行设置啊,你不手动方式设置呢,这个3.2系列,它直接就这个,呃。按照这个硬件的条件啊,给你分。
13:02
给你了,My head open start。起。对吧,哎,启动之后呢,那下面呢,我们来呃,查看一下这个对应的这个。内不能内存。八五。8599。走。看一下。这位子。对吧,哎,现在就已经变成了1024,由原来的894吧,嗯,变成它了哈,现那下面我们再查看一下这个date note哈。就这。Data note是8768。好8768,然后你看一下这个值。这是多少,是不是1024啊,哎,通过这种方式呢,就能够对内的内存进行一个设置,那在生产环境下,这个配置呢,是非常重要的哈,那你一定要根据你当前服务器的内存的大小,哎,然后来重新配置这里面对应的值。
我来说两句