00:00
好教同学,那接下来呢,我们进入到咱们下一个阶段啊,就是安全环境这个实操啊,或者叫安全环境实战啊,那在这个安全环境实战这一部分内容里边呢,我们主要主要要讲的就是这样的,呃,三个方面的内容,第一个啊就是如何在这个安全环境,我这儿提到的安全环境就是启用了科S用户认证的hi度集群啊,这就是安全环境能理解吧,啊安全环境下诶去跑全流程啊,如何在安全环境下去使用啊,如何在安全环境下是去使用这个麒麟啊,OK啊,那我们现在先看第一部分内容就是全流程啊,OK啊,那舒仓的全流程,那我们现在呃,直接去跑,原来那个全流程肯定是跑不通的,对吧,因为想想啊,咱们书仓的全流程里边,呃,是不是掉了一堆的脚本对吧,这脚本里边都有什么内容啊。都有啥,比如说有死库吧,是不是有死库吧,那还有啥。是不是还得有那个什么,呃,嗨杠一啊,对吧?啊,你像这些是不是都得跟这个hi doop htfs打交道,特不你只要跟他打交道,你只要跟他有交互,那是不是就得认证,所以咱们之前那些没有认证的脚本肯定都用不了了啊是这样的啊,那咱们需要做哪些操作呢?啊来我们来看一下,这儿其实有一个改动说明啊,改动说明什么改动说明呢,我们来看一下啊。
01:17
那大家都知道,肯定得在我们的每一步里边都得认证,对不对,那认证我们认证为谁呢?啊,那此处呢,我们统一将啊这个数仓的全部数据资源都设置为害用户。啊,都设置为汉用户啊,那啥意思呢?什么叫数仓,呃,全部这个数据资源都是谁呀,其实说白了就是,呃,比如说我们打开HS啊,啊,我这个得用火狐浏览器啊。稍微等一下好打开这个火狐浏览器,完了之后呢,访问一下我们那个HT的页面啊,来打开。稍微等一下啊。好完之后呢,来到这个位置,好,那现在我得登录对吧,那我现在呢,还用这个艾特硅谷,等一下吧,来艾特硅谷好,那点击OK。
02:03
好,登上了,那我们数仓全部的数据资源其实就是在哪个路径下,是不就在这个wherehouse家对吧?那当然除了这儿有啊,哪还会有一些呀,是不是这个origin data里边也可能会有一些,当然在origin data里边是什么呀?是是临时的对不对?因为我们那个采集,因为我们的采集项目会把我们采集的日志和业务数据是不是先暂时放到这个路径下,对吧?放下来之后呢,我们再给它漏到这里边,那所以说我们数仓全部的数据资源其实是不是就可能位于这样的两个路径下,对吧?那我们需要将这两个路径的所有者都设置为谁呢?都设置为have啊,那为什么要设置为have呢?哎,其实主要是为了方便我们进行认证啊,那由于假如说啊,我这个数数据资源不全是have的啊,可能有张三的,有李四的,有王五的,有赵六的,那这样一来,你后续去进行这个认证的时候,你是不是还得分别去认证为不同的用户啊,对吧?啊这个太麻烦了,那此时我们为了统一全部设为have用户啊,那这样一来的话呢,我们全后续的全流程。
03:04
的每一步操作是不是都认证为have用户就可以了啊,为什么要这样做啊,你想啊,这个文件的所有者是have,那我后续诶,我把这个谁我把这个呃,执行任务的人也是也认证为害,那这样一来是不是这个人他肯定是有权限去读取这个害物的数据资源的呀,对吧?啊主要是为了这样的一个目的啊,为了方便啊,OK啊,那接下来呢,我们就按照这个要求呢去呃落实一下,好,那接下来我往下走,那下面的2.2的一节就是我们这个改动的实操啊,那此处我们需要去做哪些工作呢?来我们看一下,首先我们需要先在各节点去创建一个have用户,那如果已存在就跳过,那我们刚才其实已经是不是创建了一个哈用户了,对吧?啊,是这样的啊,那此时我们就可以跳过了,那跳过完之后大家来注意观察一下啊,你此时我们又干啥。是不是又为have用户创建了一个S主体啊,对吧?诶有同学在这儿呢,可能就会呃迷糊了,诶刚才不是已经为have用户创建了主体了吧,那现在我为什么又要创建一个主体呢?
04:07
这个大家理解一下啊,刚才我们创建的那个haveve用户以及对应的客S主体是给谁创建的,是给have服务创建的,能理解吧?啊,那现在我创建的这个是谁?是为我们的一个用户创建的科主体啊,是这样的,OK,那刚才为hi服务创建的科普主体是干什么用的呀?是不是在我们启动have so two和启动masto的时候认证用的没错吧?那现在我们为这个用户创建的这个主体,这是干什么用的?是我们后续再去执行全流程当中的每一步的计算任务的时候,需要认证的那个,还有用户能能理解吧,啊是为我们后续跑每一步的时候认证用的啊,咱们这块呢,一定要区分一下,一个是相当于是一个是服务端的这个认证,一个是哪儿啊。一个是咱们客户端的认证,这个一定要注意一下啊好,那接下来我们就先把这一步给它准备一下,那首先我们先创建这个哈维用户,那刚才咱们应该都已经为每一台节点是不是都创建了我们需要的hive用户了,对吧?比如我们测一下啊,比如说ID hive,那他103是不是已经有这个hi用户了,对吧?那我们再来看一下这个104ID have是不是也有的对吧?Have系统用户我们创建一次就够了,那接下来我们去创建这个curs主体啊,那这个主体呢,大家来看一下我们这个主体名叫啥啊,咱们这儿的这个主体名是啥?
05:27
是不是have啊,对吧,那刚才我们为服务创建那个主体文件上是不是have,下这个斜线后边有一个hi度102啊,对吧?啊,这是不一样的啊,这是不一样的啊OK,大家要区分一下,有同学可能会搞混,有同学可能会认为啊,哎,Have。哎,完了之后呢,直接来一个艾特和have hive后边呢,再来一个什么hi do 102,后边再来一个艾特,有同学可能会觉得这是俩,呃,这这这是同一个主体,这是同一个主体吗?这不是他俩没有任何关系,能理解吧?啊在科S当中,只要这个主体名它不一样啊,只要有一点不一样,那他就是两个人能理解吧,那这显然是不是不一样啊,对吧?那所以他俩是两个啊,他俩不是一个,没有任何关系啊OK,那下来呢,我们为我们的用户去创建这个对应的课主体,好,那现在呢,我们执行一下这个创建主体的命令,来我们再在102执行一下,来来到102啊来咱们执行好,那现在呢,我回车,OK啊,那现在咱们这个have的主体是不是就已经创建出来了,这是一个普通用户的主体啊,好,那创建完之后呢,我们继续往下走,那它我们也要为其生成这个k ta文件,那为什么在这儿也要生成k ta文件呢?我们前面分析过啊,我们说对于普通用户的主体来说,我们去认证的时候通常使用什么认证方式?
06:44
密码认证对不对,诶,那你这个用户怎么也要生成密钥文件呢?哎,这个需要给大家解释一下啊,是上这个用户,他也不是一个我们要使用的用户,这是要给谁用的用户啊。是给我们那个全流程当中的脚本用的,对不对,那能理解吧,我是不是得在脚本上面进行认证,那你脚本认证的时候,它能交互的输入密码吧,是不是也不能,对不对,那所以说它是不是也得用这个密钥文件认证啊,对吧,那在这儿呢,我们把这个密钥文件给它生成来CTRLC来我们拿下来。
07:15
好,那我放在这个位置直接生成一下就行了,好,那这个密钥文件它生成哪呢?是不是还是在这个路径下,对不对,那现在呢,我们还是得进到这个路径去看一下,看它跟之前有啥区别啊来CD一下,来我回车L,大家注意观察啊,那现在have相关的密钥文件是不是有两个,一个是have service.kb一个是have.kb这俩是不一样的,对吧?啊,这个清楚了啊,完之后基础进行,我们需要去修改一下这个have和这个K文件的所有者和访问权限,好,那现在呢,我们去给它修改一下CC,那这个呢,咱们也拿过来这个CTRLC,来一块吧,来一块啊,来,我拿过来。啊,大家注意观察,那现在咱们已经给它改成啥了,是不是改成have的所有者海豆的所有组完了之后呢,权限是440对吧?那其实改成440或者660其实都是可以的啊440是不是就只有读权限呀,对吧?其实有毒是不是就够了啊,理论上你这个配这个密钥文件生成完之后还用往里边写东西吗?是不用写的,其实有毒就够了啊好,那现在这个权限和所有者咱们就改完了,那改完之后接下来继续往下走,大家来看这个位置咱们要干啥。
08:19
你看这这要干啥,是不是要分发这个K文件呀,对不对,那为什么要分发这个文件,大家想一想。为什么要分发这个文件?啊,这个是不是又跟咱们那个全流程调度相关对不对,我们前面提到过啊,就是全流程调度的时候,我们用的是阿斯卡班对不对,那阿斯卡班呢,我们用的是呃多ex模式对不对?那多ex模式的话,那那咱们去执行任务的时候有两种方式,一种是我们指定ex,一种呢是把我们的脚本分发到集群当中的每台节点,对不对,让他自己去选一个ex去执行,能理解吧,那两种方式,那如果说我们是把脚本分发到了这个集群当中,每一点没有指定ex,那是不是这个任务可能被会被分到任意一台节点对不对,那是不是只不管分到哪些节点,我这个脚本都得认证对不对?你只要认证是不是得需要用到这个k type文件呀,对吧?所以我们这儿呢,需要将其分发一下,好,那咱们给它分发啊,好,那当然啊,如果说大家像我之前上课的时候那样,我就指定102作为我执行任务的ex,那你说我这用分发吗?其实就不用了啊,这会儿大家自己搞清楚里边的逻辑就行了啊好,我这分发了,分完之后我们这个用户的准备工作就算是完成了,完之后我们。
09:30
继续往下走啊,那下边呢,我们就需要去从头开始去修改我们这个整个全流程了啊,那从头到尾咱们该改的地方都得改啊,那首先我们先从这个最开始,最开始的就是数据采集对不对?那数据采集我们是不是有两类数据,一类是日志,还有一类是啥?一类是业务数据对不对?那大家想想啊,那日志我们采用的是什么?是加卡不卡,加这个采集通道对不对?那日业务呢,是不是就是死库吧,对不对?那不管是谁,我们的最后一步都是干啥?是不是就是将数据写到HTS,那你想一想,在海杜启用客资认证之后,我们最后一步往HT写文件的时候就得干啥。
10:10
是不是就得认证是这个道理吧,啊,那所以说大家想一想,我们整个采集通道啊,日志也好,死库也好,我们哪需要去修改一下,我们先看日志吧。日志比较复杂,日志咱们是不是有卡夫卡对不对,那咱们需要修改哪。就是哪个是不是只需要修改最后一个就行了,我前面用改吗?前面不前面是不是没有跟我们这个high look进行这个交互啊,对吧?那所以我们只需要改最后一个就行了,最后一个在哪?是不是在104啊对吧?那scoop这边呢,SCO比较简单,Scoop是不是就一个环节,就是scoop这个脚本对吧?这是我们要改的是不是就是scoop脚本啊,主要是这样的两部分啊啊那现在呢,我们先去干,先去看这个用户行为日志啊啊那也是我们需要去找到104这台节点对不对?玩找到哪找他那个flow的配置文件对吧,Automo flow啊完之后呢,在哪?我这儿应该是在是在com里边啊,有同学可能在job里,对吧,找到自己那个配置文件啊,那完之后呢,应该是哪哪个呀,应该是卡夫卡到flu到HD fs.com对吧?啊,那现在咱们给打开啊,卡夫卡flu HS啊弄完之后大家想一想,你说我没要改应就改哪S用不用改。
11:19
用改吗?不用,你肯定改的是谁,肯定是改hdfs think对不对,那怎么改呀。那其实理论上啊,你这个应该去哪找,是不是应该去它的官网上找,来我们去找一下啊,来来打开官网,打开官网之后呢,我们去找到谁找到HD think对吧?咱们找到document user guide完之后呢,我们CTRLF来一个HDFS,来往下走,往下走好,那这是就是HZ y think的所有参数,对吧?来咱们往这边找,这里边有没有与认证相关的参数呢?来找一找啊,应该能看到啊,很明显能不能找找是不是找着了,来看这。啊,这是不是就两个与curs相关的参数对吧?分别是cur principle curs k type,这俩参数是不是一看就知道啥意思对吧?因为我们要往H面写数据,所以说你得认证成一个这个用户是不是能写没错吧?所以在这儿呢,我们需要写一个主体名,一个密码,当然不是密码,是密钥文件,对吧?大家想一想,我这应该写谁呀?
12:20
我这写谁是比较合适的呀?先这样。咱们写have其实是比较合适的,为啥啊,为啥写have?因为我们刚才说了啊,我们会把HDFS上边两个跟数仓相关的路径是不是都改为have的,呃,这个路径啊,对吧,所有者都改为have,那所以说我写的时候我认证为have是不是肯定能写进去,你认证其他用户是不是可能没权限啊,是这个道理吧,所以这块理解一下啊,在这儿呢,我们就给它认证为have就行了,OK,那hi,我们刚才是不是已经创建了一个主体,也创建了它的密钥文件了,对吧?所以我们把那个主体和密钥文件给它加是不就行?好,那大家来看一下这儿,我这两个参数已经写好了啊,咱们直接CTRLC复制过来就行,来放到我们这个hds thinkk里边就行了,好,我就放在这儿啊,这个没有问题吧,那这是我们创建的have主体,注意这个有那个have有那个嗨,图5102吗?后边没有对吧,就咱们那个用户的啊,那这个呢。
13:10
是不是这个用户的这个密钥文件呀,对吧?哎,这里边是没有那个什么have.service的啊好,那么就shift z好了,那现在呢,我们相当于就把哎这个是不是改完了呀,对吧?这其实很简单,那紧接着我们往下走,下午时不是还得改一下业务数据的同步脚本,也就是scoop同步脚本,对吧?那这个怎么改呀。其实很简单啊,我们只需要去找到scoop的这个,呃,同步脚本完了之后呢,在它的顶部加上一个认证语句就可以了啊,这个scoop呢?呃,没有这边,呃,这个对curs支持的好,是不是专门为curbers提供了一个参数啊,对吧?那scoop是没有这个参数的,没有参数的话,我们就在shell脚本当中去添加上这样的一个认证语句就可以了啊OK,那这样一来的话,当我们去执行这个shell脚本的时候,是不是会先进行认证,认证完之后是不是就能进行相应的操作了,对吧?那同样道理,你说我这认证认证为谁,是不是还是认证为high one对吧?OK,那看一下这个认证语就是怎么写的,K-KT这个指向的是谁?
14:10
密钥文件后边是我要认证的用户啊对吧?这个认证方式大家还记得吗?咱们之前讲过吧,是讲过的啊,我们说认证两种方式吗?这个是用密钥文件认证,好那肯定先拿过来,拿过来之后呢,放在哪?是不是放在我们死库同步脚本那个顶部就行了呀,对吧?死库同步脚本在哪?是不是在OPT model啊呃,不是在op model的应该在哪?应该在我们那个呃加爱Google的加目录里边的对吧,爱加目录,然后之后呢,里边有一个B啊BB完之后呢,我们找到找到应该是呃买circle to hdfs.sh应该是它对吧?好打开打开之后呢,我们在它的顶部加上这个命令啊,主要不不要加最上面应该加在这个呃颈纹它并带是下边才才对,能理解吧,OK,那就给它放上,完了之后shift接好了,那S库这个同步脚本我们也就搞定了,好,那现在我们继续往下走啊,那数据采集在是不是搞定了,那后续是不是要改的,就是我们数仓的整个的这个每一层的脚本啊,对吧,那数仓每一层脚本咱们都得干啥,是不是都得认证,那我们认证了。
15:11
方式都是啥呢?都是在这个脚本的顶部加上这个认证语句,都是在这个顶部加上认证语句啊,那OK,咱们脚本一共有几个脚本。呃,算上那个库同步胶本,当时咱们数的一共是有几个呀,一共有十个对吧,那当然咱们已经改完一个了,改完以后只是不是只剩下这这九个了呀,对吧?那九个我们你需要一个一个去加一个去加啊,那当然在这儿呢,大家也不用一个去改了,我这样呢,给大家提供好了一个统一的修改脚本,来咱们CTRLC拿过来,拿来之后呢,我给它处理一下啊,处理之后咱们统一执行就行了,CTRLV,好,那现在呢,我把这个拿下,拿下来我是用sed去修改的啊。哎,把前面去掉啊,去掉之后呢,来我们先统一的把这个命令呢执行一下,执行了之后呢,我再给大家去解释里边的这个呃含义啊OK,大家注意观察一下,呃,我这儿去改的时候呢,呃,我用的是什么路径啊,这是我后边要修改的那个文件,这是什么路径,这都是相对路径,相对路径啊,这都相对路径对吧?所以说我得在哪,我是不是得在这个海豆加目录的这个并幕里边去执行,对吧?得在这个路径下执行啊,一定要注意一下啊啊,那现在呢,我直接回车,然后回车啊OK,它里显示的有点乱啊,但是这个呢,是能够修改成功的啊,是这样的啊然后呢,现在呢,我们随便去修呃去查看一个文件,比如说随便打开啊呃ods到DWD,比如说来一个DB.sh大家看这是不是已经有这个K尼了,对不对,完之后呢,我们再随便看一个啊,比如说找到那个呃,Dwd to dw.SH打开这里面是不是也有这个K名了,全加上了啊OK,它怎么加上的呢?啊,其实很简单,咱们看一下这个命令,你就你就能看明白了啊,我下面是有解释的,我这是不是用的是sedd啊对吧?然后这块给大家解释说明下。
16:49
大家来看一下。呃,是不是这里边首先传了一个参数叫做杠杠,什么杠I,杠I后边是不是有一个feel对不对,那这里边相当于啥意思啊?杠I就是声明我要修改的内容来自于哪儿,来自于后边这个文件,对吧?修改完之后再怎么样呢?
17:07
给他写回去,相当于是不是就直接修改这个文件,就这个意思,如果不加杠A呢。不,将来他是不是从这个文件里边读内容,然后进行处理,处理完之后呢,是不是直接输出对不对,这个文件里边内容会变吗。是不会变的啊,这个要理解一下啊,OK,那这个刚才好理解,完了之后我们就重点看这里边啊,重点看这里边这个这个引号里边才是咱们的核心内容啊,对吧?核心逻辑这是啥呀?我写了一个一写了一个A,写了一个test对吧?你看我前面每个命令是不是都这么写的,1A后边是不是一段话对不对?我看它相当于啥啊,其实很简单,就是将诶这个test的内容,也就是这幅内容怎么样呢?诶给它加入到我后边这个文件当中的第一行之后,一就是一行对吧?A就是啥呀?啊,After对吧?啊,就是这样的一个意思啊OK,那这样一来呢,我们就能够把诶这个命令加到后边这个文件的每一行之后了,一一行a after,就这意思啊,当然了,我加到这个第二行之后行不行啊,是咱们怎么加是不是是不是写二就行了,对吧?啊,那我加在第一行之前行不行呢?啊也是可以的,那把这个A改一下就行了啊,应该是改成呃,没记错的应改成b before啊改成B了就行了啊就这个意思啊,OK啊,那这个呢,就是我们在这呃。
18:20
去呃,修改每层脚本的这样一个命令,OK啊,那到现在为止呢,我们整个数据仓库的呃,这个所有脚本是不是就都改好了呀,对吧?那改好之后呢,我们还需要去做一些操作啊,做哪些操作呢?那刚才我们说了,我们说需要将数据仓库的全部这个数据资源的所有者是不是都设为还啊,对吧,但是我们还没改吧,现在呢,我们去改一下来我们往下走啊,我们已经改到呃这个2.2.3已经完成了,我们看2.2.4,好,那现在呢,我们去修改一下,我们需要去修改那些路径啊,那你要想去修改HDFS的路径权限,你得干啥?是不是得先认证,你不认证能改吗?你是不是改不了对吧?那所以我现在需要认证一下,哎,可能谁咱们认证谁呢?是不是之前我们创建了一个hdfm hidoop这样的一个用户啊,对吧?它是不是就可以作为HDFS的超级用户,对吧?我认证一下啊,那k list现在是不是就是hfs了,对吧?那认证完之后呢,我们现在就可以去执行下边的修改命令了,那首先我们修改的是谁?
19:18
这是对,那这个CC我行,OK,那这个完之一个。是不是那个wehouse对不对,那这个是我们两个主要的路径对吧,已经改完了,那他来改完之后,你看我还改谁了,来看一下这个位置。这咱们改的是谁呀?是不是改了一个什么user have啊对吧,为什么要改它这块给大家说一下啊,那实际上呢,大家都知道HDFS这里边呢,它是有一个user路径的,这个路径不是我们创建的,是不是只要H咱们初始化之后,上面就有这个user路径了,对吧?那这个路径相当于就是啥。这个路径相当于就是我们三多S系统当中的这个什么目录啊,Home目录,哎,Home,那home里边会有啥,Home面是不是会每个用户都有一个自己的这样的一个加目录,对不对啊,那同理在HD这个userr下面呢,是不是也会有一个每个用户的一个目录,这个目录是不是就好比是他的加目录啊,对吧,那你想一想啊,你说have用户他的这个加目录,他的所有者应该是谁?
20:21
是是是不是就应该是嗨才对,而不应该是爱硅谷了吧,对不对,那所以在这儿呢,我们需要给他改正过来啊,那OK,那现在呢,我们去执行一下这个修改命令,将他的加目录哎,修改为他自己,OK,那现在呢,我给执行一下这个命令啊来走,那除了这个要改,那还有一个地方要改,大家看这个CTRLC我拿过来。大家还记得这个路径吗?Spark history还记得这个吗?这个呢,是之前我们在搭建have on Spark环境的时候,是不是为have on Spark,其实就是为谁呀,为s Spark对吧?为Spark创建了一个用来存储运行任务诶日志的这样一个路径,对吧?那想想我们后期去执行我们出仓任务的人都是谁,是不是害对不对?那所以说我往H写日志的时候,都是以谁的身份写,都是以的身份写,对吧?但是现在这个路径他的所属者是谁?
21:12
咱们找一下啊,那个Spark黑这是谁,是不是汉诶现在已经是还啊,我已经执行完了对吧,那在我执行完之后之前应该是谁啊,应该是爱硅谷对吧?那既然是爱硅谷的话,我是不是有可能会存在一些呃访问权限问题啊对吧?那所以在这儿呢,我们需要给它改正过来啊,是这样的啊,然后现在大家应该能够体会到啊,在开启科S用认证之前,咱们数据仓库所有的用户是不是都是一个人,不管是干啥都是谁,都是爱特硅谷对吧?所以说你根本就不会遇到这什么权权限问题,那但是现在呢,我们有非常多的用户,一个服务一个用户对不对,那所以说就可能会遇到各种各样的权限问题,这个呢是大家需要去注意的一个区别啊,啊,那现在我们这个路径也改完了,那都改完之后,我们的准备工作基本上也就完事了啊好,那现在我把视频停一下。
我来说两句