00:00
那接下来我们就要就要进入到下一步了,就是去配置咱们这个整个的集群,需要去修改三个配置文件,来来,咱们一个一个来啊,先从这个Co s开始来,Co s当中呢,我需要加上这么多的参数,然后给大家解释一下这几个参数啊。CTRLC配完了来,那我们来进到这个OPT Mo啊,然后海豆吧,3.1.3etc海当中,然后vim。呃,这里边儿目前是空的,那我们给它把配置文件给他加上啊。来摁一下这个,哎,好,这个还原量已经配完了,呃,不是还原量,是这个配置文件已经这个放进来了,那接下来咱们逐一的解释一下啊,来一个一个来,先从第一个开始。第一个来我们回顾一下啊,就咱回顾的呃,FS default FS,然后这边相当于是指明什么呀,指明咱们这个,呃,FS相当于是那个name node的这个,呃,这个路径对吧,访问name node那个路径啊,然后后边要注意啊,这个9820啊这是什么。
01:05
哎,对,这是它的那个,呃,端口号啊端口,那这个9820指的是什么的端口号呢。是他的网页的端口号吗?不是,这不是网页的号,这是什么端口号啊,这是他那个呃相当于是什么端口号,相当于是他那个呃,RPC端口号对不对啊,就是说我的note啊,或者说我的呃这个这个三个name notde等等跟他进行通讯的一个端口号,当然也是我们请求这个呃文件的一个端口号啊,是这样的,这是9820,然后大家之前这个端口号用的是多少8020对吧?啊像样呢,这块其实就是呃一个默认端口号的一个事儿,嗯给大家解释一下啊,其实这个海度这个端口号其实变了好多次了啊,在这个最开始的时候,海度卫一的时候,它这个端口号啊,就是咱们这个位置默认就是8020,然后到了海度二的时候呢,它给它变了,变成多少了呢。变成9000了啊,曾经是9000是9000,然后到了3.0的时候,它又变成8020了。
02:08
啊,又变成,哎不对啊,3.3.0的时候多少3.0的是9820啊对,3.0的时候是9820,到了3.1之后呢,又变成8020了啊它老变啊,它老变其实就是一个默认等口号的事儿,那所以这边呢,咱们文档上暂时给它配成了9820对吧,那我们这个还是给它改成8020了啊,因为咱们是3.1对吧,2.1咱们给他还用它自己默认的就行,哎八零哎二零啊那这个大家呃,按照自己习惯,你愿意配成多少就配成多少,但是你一定得切记啊,啊,你这配成多少,那你后续去访问HGDFS时候,是不是就得保证你是多少才行啊对不对,跟自己配的一致就行啊,一致就行啊,那我这还给它改成8020,好,那咱们接着往下走。下面这有一个这样的一个参数啊,叫什么看一下。指令这个海豆op的数据的存储目录啊,存储目录大家看一下这个参数啊,海do tmp DR,这很显然像是一个什么临时路径的这个意思对吧?啊,然后后边呢,我们指定一个路径,然后这个路径的我们又给它赋予了一个非常重要的一个职责啊,指定海度吧,数据存储目录。
03:16
啊,这个海杜的所谓的数据存储目录指的是什么呀?什么数据啊。指的是咱们的name node或者是data node存储数据的目录,对吧?大家想想啊,我name node下边有什么样的文件呀?什么文件有那个什么编辑日志和那个镜像文件,就ID和那个image,对不对啊,这是name note数据,那data note呢,它有什么数据啊。带什么数据啊,对啊,就是咱们,你你想想我们存到HDFS的数据,实际上存哪了呀?实际上是不是就是存在data node的这个节点上了呀,存在节点是哪个路径了呢?就是咱们这儿这个所谓的路径啊,实际上这样的,也就是咱们这实际上指定的这个路径呢?哎,我们就相当于是指定的是咱们的name notde或者是呃,Data notde存储数据路径,但其实啊,真正决定data notde和name node存储数据路径的参数呢,其实并不是这个。
04:14
并不是它啊啊,它其实有两个单独的参数,用来指明note的路径和name not的路径,那只不过是什么样什么什么情况呢,只不过是这两个参数,实际上它默认是什么呀,默认引用了这个参数了。它引用这个,所以说咱们把它配了,那是不是相当于就把那两个路径给他配了呀,啊是这样,到底是怎么一个引用关系啊,这个后续咱们再看啊,后边会看的行,那咱们就知道这个参数能够决定,哎,咱们data note和name notde存储数据的路径就行了啊啊那得往下走。下面这有个这样的东西啊,叫做配置hfs网页登录使用的这个静态用户啊,为这个艾特硅谷呃,给大家解释一下啊呃,我们在海doop这个这个三啊,海杜OP3啊,海陆三,海陆三之后呢,我们实际上打开那个HDFS的外B页面啊,你会发现你能够进行各种各样的操作了,你不仅只能查看了啊,你还能干什么,还能创建文件夹,还能上传文件,还能删除文件,删除文件夹对吧?哎,这么多操作都能做了。
05:18
但其实啊,其实在这个海doop呃三之前,海DOOP2啊,海DOOP2实际上没有这么多功能,海DOOP2呢,我们那个外B页面只能看别的什么操作都操作不了啊这样,然后大家想一想,既然我在海盗三之后,我在页面上能进行各种各样的操作了,那你想一想,是不是就得涉及到一个权限的问题了呀,对不对,因为HS上我也是有这个像咱们呃Linux这个文件系统当中的这个权限标识的啊,你这个文件属于哪个用户,属于哪个组,我用户对他有什么权限,我这个组对他有什么权限,是不是有这样的一些管理啊,对不对,那既然是这样的话,大家想想,就是我打开这个页面,如果说我要不属于任何一个用户的话,你那些操作能做吗?你做不了对不对,你要想在这个文件夹下边去创建一个文件,那你是不是必须得有权限才可以啊,对,不但你连你是哪个用户都不知道,那你能做操作吗?你肯定做不了啊,所以说如果说咱们要不配一下,哎,这个东西的话呢,你在页面上仍然是什么操作都做不了,仍然是只能看啊,仍然是只能看。
06:19
啊,然后咱们继续往下进行啊,实际上正常情况下,那我们这个参数啊,是际在生长下这个参数咱们其实也,哎不不需要去配的,也不需要去配的,那正常的情况应该是怎么样啊,应该是打开页面之后,我需要有一个什么的过程啊对,有一个类似于登录的一个过程,对不对,那那首首先假如说你是张三,那你就以张三的身份登录进来,那你是不是就能够做你张三他拥有权限的那些事儿了呀,对不对,张三我能读这个文件我就读,能写我就写,没有权限我就操作不了,是不是正常应该是这样的一个过程啊,那这样的一个过程呢,我们海杜需要借助于一个咱们的认证的一个工具,叫做cur。
07:00
啊ke啊beros就这个啊ke然后besco啊这个呢是我们呃海度当中诶用来做这个权限认证的这样的一个呃认证协议啊,这个协议呢,是由这个麻省理工哎,他们提供的MIT的啊这个大家就是说先了解一下就行,先了解一行,正常情况下应该是我们需要给海度去配置corvers,然后呢,打开页面之后呢啊,我们需要进行corros认证啊,其实所谓的认证呢,就是相当于登录输入用户名,输密码,然后呢,你就能做你自己诶力所能及的事了啊那当然咱们这儿因为没有配置这个客服热对吧?那所以说我们这儿呢,相当于是相当于是怎么样啊,我们是不是指定了一个固定的用户啊,不管谁打开这个页面,那都是谁啊。都让艾特硅谷处理啊,都让艾特硅谷处理是这样的啊,然后大家都知道艾特硅谷呢,实际上相当于是我们海度的什么用户啊。超级用户,它相当于是咱们海杜当中这个hfs的超级用户,为什么是是这样的呀。
08:07
哎,所谓HDFS的超级用户指的是什么呀?指的是启动HDFS这个进程的用户。啊,要注意了,我们一会儿咱们现在集群上是不是我这只有一个艾特硅谷用户啊,对不对,那我启动HTFS是不是肯定也是艾特硅谷用户啊,那谁启动HDFS,谁就是他的超级用户。啊,大家可能都觉得,诶,我root用户是不是咱们Linux里边的超级用户啊,那我用root我能去在HDFS上做任意的操作吗。还真不行啊,你在本地系统上中,你是超级用户,但你在HDFS你不是啊,因为HDFS是艾特硅谷启动的,谁启动谁就是超级用户,大家把这个记住,那我要张三启动呢,那张三就是超级用户,张三就有所有的这个权限啊,是这样的啊,因为我们后续我们会将这个hfs用艾特复股用户去启动,那所以咱们这儿呢,静态用户去配成艾特复股,那所以说你在页面上是不是就能靠能够查看所有文件,能够做所有的操作了呀,啊大家把这个理解了啊,好,那就在继续往下走。
09:10
那下边呢,我们有一大堆的东西啊,这一大堆东西都跟啥相关的,看一下。好像都是跟什么这个。代理相关的对不对?Proxy又是代理用户,这个代理用户又是干什么用的呢?什么叫代理?什么叫代理?代理,其实大家之前在学Java的时候应该提到过这个概念吧,啊这个什么静态代理,动态代理,这应该有有有相关的这个说明吧,有没有。忘了又忘了啊,人家是过目不忘,咱们呢是过目即忘啊,这个简单说一下,这个代理用户是干什么用的啊,代理用户首先大家知道这个参数是给谁配的吗?哎,对,有同学知道给have配的对吧,那给具体一点是给have的哪配的呀。是给哪配的呀?
10:01
具体一点。具体实际上啊,是给咱们那个have so to去配的。啊,是给have serve to匹配的啊,大家回忆一下啊,这个have serve to我们干什么用的,就就是通过咱们JDBC这种方式啊,去去访问这have的时候,是不是才需要写have so to啊对不对,那给大家想想一想啊,那实际上我们相当于正常情况下,咱们如果是普通的have客户端对不对?那普通have客户端的话,那咱想想你比如说我这写一个circle,写一个circle,正常写一个circle会转成mmr对吧?啊转成mmr,那转成MR是不是需要去跑这个任务啊对不对,你跑任务是不是肯定需要去从咱们hfs上边的某一个路径下面去读数据,因为你你假如写操个c select的什么什么辅让某张表,那你是不是需要去这张表的路径下边读文件呀,对不对,那你这样一来的话,你如果是普通的还有客户端,那你访问海子的集群,你这个用户就是谁呀。就是谁。还有客户端谁起的,那你访问海渡和集群的时候,那就是谁呗,对不对,我张三起的,那我访问海渡集群,我就是以张三的这个身份去访问的,对不对啊,那也就是说have客户端的,实际上就是谁起have客户端,那就是谁访问集群,这个没错,但是have so不一样了。
11:18
啊,那比如说这是海子北集群,那相当于我have server to,实际上是实际上是在这一个过程,我会单独起一个服务,叫做have server to,然后呢,再起一个比如说B浪客户端,然后去访问咱们这个,呃,Hi,或者访问集群,对吧,但是这时候呢,你就要知道了,你现在是启动hive客户端的人,直接去访问海多集群吗?不是的,你访问的是谁呀?你想一想,你在启动海有客户端的时候,你你指定指定的一个什么什么地址啊,是不是海so to的一个接DPC的地址啊,也就是实际上你这个B烂客户端访问的是谁?访问的是B赖呃,访访问的是那个have so to啊,那访问孩子会集群的是谁呢?对,实际上是have so have to,他帮助你去访问的啊,是这样的一个过程,那这时候可能就有问题了啊,什么问题,大家试想一下啊,我现在启动have serve to的人,假如说是A。
12:09
啊,然后呢,我启动谁呀,我启动咱们这个B端客户端的人,比如说是B。对不对啊,那然后呢,我现在B在B大客户端,我执行了一个circle啊,这个circle端要去读HTF的文件,对不对,那你说现在读文件的这个人是以呃是读文件这个这个这个操作是以哪个角色去做的呀。是B做的还是A做的呢?那实际上应该是谁呀?正常情况应该是谁?那肯定是A呀,对不就是have so to去访问的它,对吧?但是a fair都是谁启动的,是A启动的,A启动,那就以A的身份去访问集群。对不对,那这样一来会有什么问题啊。那问题可能大了去了,对不对,我可能我B啊,要访问的那个路径A是没有权限的。是不是有可能是没有权限的呀。
13:00
对不对啊,那这样一来的话,那那就不好使了。啊,这样应该就不好使了啊,为什么,因为我B本来我是能读那个文件的,我本来是能读的,但结果呢,结果呢,因为A它读不了,那所以说我这个B是不是就读到这个文件了呀。对不对,那所以说这个就会出现权限问题啊,那咱们这说的是一个方向,那换一个角度去说呢,假如说我B本来是没有权限,没有资格去读取这个文件的,假如说这个文件非常非常重要啊,涉及到很多隐私的信息,我B本来是没有权限去访问的,对不对啊,但是呢,诶,我这个A它是能访问的。啊,那这样一来,你B是不是通过f so two1提交这个请求,是不是也能访问到了呀,就那所以这个很显然是不太好的啊,是不太好的啊,也就是实际上你提交任务的用户跟你真正去访问集群的用户呢,其实可能不一致啊,那所以说呃,那这时候就需要用到咱们呃海豆当中这个代理用户的角色了。啊,就可以涉及到咱们这个代理用户的角色了啊,那这个代理用户到底是怎么去配的呢?大家可以看一看啊,先看一下咱们这个那个文件的这个这个属性的这个K啊,这都叫什么叫hi doop.pro user,点然后点它的硅谷点house。
14:19
啊,这个爱特硅谷相当于肯定是一个用户,对不对啊,那这个爱特股也是一个用户,他呢也是一个用户。啊,那大家想想,你说这个用户啊,啊,他指的应该是谁。当然咱们现在集群当中只有一个用户对吧,就就只有一个爱硅谷,所以说我启动它啊,和启动它都是爱硅谷对不对?那假如我现在分开啊,这个启动他是A,请他是B,那这时候假如我也要去配置代理用户,那你说咱们这儿这个东西应该写A还是应该写B?啊,大家觉得应该写谁呀?诶,没错,应该写A,写A才对啊,也就是说启动have serve po的用户应该放在咱们这个位置啊,那放在这个位置之后,那实际上能实现一个什么样的效果呢?就相当于是OK啊,大家听就相当于是我这个A,也就是启动have serve to的这个用户啊,它能够代理其他的用户。
15:15
啊,那这个几个属性分别指的是什么呢?也就是说OK,诶A用户我能够代理的节点是什么?耗嘛节点我这写的是啥?写的是星,那就是所有节点啊,那我A用户我能代理的。组是什么对不对,是不是也是形啊,那是所有组,那我A用户能代理的这个这有有点重了对吧,这个组这个相当于配的呃,两个groups对不对,那这个应该这应该是啥了呀。应该是users才对啊,Users这个应该是它有问题啊,咱们一会改一下应该是users,那所以这也是型对不对,那所以说你这么配下来,那就相当于是实验了一个什么样的效果呀,就是说艾特硅谷用户呢,是能够代理所有节点上面的所有组里边的所有用户的啊,所有用户的啊,这个大家呢,需要去呃了解一下,需要去了解一下啊,那这个所谓的这个代理的效果到底是什么样的呢?啊,所谓代理的效果,假如说我现在这个A用户是不是能代理所有用户啊,那A能不能代理B。
16:17
能不能能耐对吧,那所以说实验的效果就是这样的B,诶启动还客户端,然后呢,我提我启动B客户端,然后呢,我提交一个circleq,然后最终去hfs上读数据的用户是谁呀。就是B了。啊,这就是所谓的代理的这个效果。啊,所谓代理的效果啊,那如果说你不配这个代理用户,那实际上读读文件的应该是谁,是不是A对吧,但是我现在A能代理B了,那最终执行任务的就是B了。啊,那现在大家来体会一下这个代理的这个意味啊,这个代理什么叫代理啊。什么叫代理啊,所谓的代理呢,就是说你让他去帮你做一些无关紧要的这个,诶准备工作,或者是收尾工作,但是真正的核心的任务还是谁去做,还是咱们自己去做。
17:09
啊,那现在相当于A就是一个代理用户对不对,那这个真正的核心的任务指的是啥?是不是就是执行任务,这个就是核心的任务啊对不对,真正执行任务还是谁,还是B还是B,那接收请求提交任务是谁干的呢?诶实际上是由A帮你代理去做的,但是真正跑任务的还是我们自己。啊,这就是咱们这个代理的这个效果啊,那这样一来就能实现,哎客户端谁起到那最终执行任务的那就是谁,那就是B啊就是这样一个效果啊这样效果,那当然咱们这这么配的话呢,相当于是哎艾特Google用户能够代理所有的节点,哎所有的组,然后呢,所有的用户,那所有用户,那这个应该改成这个users啊,实际上如果说你要想代理所有users啊,其实这你这个参数不配也行。其实你那不配也行,为什么?因为我这儿是不是已经能代理所有节点所有组了呀,对不对,那你不指明你代理哪个用户,那是不是就是所有用户了呀,对不对,所以说这块呢,实际上最后一个参数你不配也行啊,不配也行,然后大家自己配的时候呢,要诶注意一下啊,注意一下行把它改成user词就行了,好了,那咱们现在这个参数呢,相当于就这个给大家介绍完毕了啊,就是代理用户这个角色,这个概念呢,咱们要知道要清楚才行啊,其实这个关于代理用户呢,不光咱们的have so to会用。
18:25
啊,其实呃,那个呃,是不是咱们之前讲过那个调度框架呀,调度框架咱们讲过有俩,一个是阿阿斯卡班,还有一个是乌ZZ对吧?啊乌ZZ其实也要用到这个代理用户的概念啊,也要用到啊咱们这个呃有几个框架呢,是需要用到这个代理用户的啊have就是其中之一啊行,他这个咱们讲完之后shift zz啊,点击这个保存啊,行,那这个文件相当于完成了,然后文档上呢,咱们这有一个小漏洞,咱们给它修改一下,改成诶,Users user。行了,那这个第一个文件咱们就搞定了啊。
我来说两句