00:00
好,接下来呢,我们开始写代码,去操作这个ADPS,相当于是我们现在在这里面去写代码,然后操作远程的服务器集群,那我们首先第一个案例呢,就是在集群上创建一个目录,对吧?哎,创建一个目录。那创建一个目录,其实写这种代码啊,是有成熟套路的,给大家说一下啊,什么套路呢。客户端。代码常用套路分这么几步啊,像写这种代码以后要记住哈第一步。获取一个客户端对象。也就说你要操作谁,那你得拿到对方的一个操作对象,允许你去操作对吧?嗯,第二步呢,就是执行相关的操作命令。就你要到底要干嘛干嘛对吧,操作命令这是第二步,第三步简单关闭资源就可以了。
01:04
就这么三步。那比较典型的这个代表哈,就是HTVS客户端操作,还有一个呢,就是主keep。哎,这两个框架呢,都是类似于这种方式的一个操作啊行,那下面呢,我们就按照这个套路啊啊去写写代码啊嗯,写一个创建。文件夹对吧。嗯,那就叫test make。DAR。写这么一个案例,那首先第一步呢,是获取一个客户端对象对吧,那同学获取,那我就new一个呗,New一个file。STEM。然后和他对象能不能行呢?不行啊,因为他是一个,哎,我这代码还。进不去啊,它其实是一个抽象的啊,啊抽象的那怎么办呢?哎,我们可以这样去获取啊,叫file。
02:00
system.get。哎,这样来获取一个客户端对象,那这里面有几个参数呢?呃,有多的有少的哈,我们选一个比较多的。还有呢,User啊,这么三个参数啊。那第一个需要一个UR,那就给他一个U,需要啥来啥。那这里面选择这个Java net啊,别导书包了。那想想这个uri怎么输入。金寨相当于啊,是我在这个Windows环境去远程访问这个集群。那我是不是得拿到它对应的name node主机地址?诶,为什么说是name not呢?因为客户端跟谁打交道啊,是不是跟name note进行打交道,说你有没有这个文件,允不允许我创建等等一切事物是不是由这个老板说了算啊哎。好,那这里面这个路径呢,就是ADS冒号斜杠斜杠。这是相当于是HS协议。然后后面主机HIOP102。
03:02
我要连接102,那102内部的通信端口还记得多少,不就是8020啊。对吧,哎,外部的这个页面呢,是这个9870,那其实我们要连的是它的8020。点Y啊,点Y呢,它有一个,它就能给你自动返回这个值哈,那这个Y呢是。我们讲SC的时候,后面另一种语言,它的一个方式啊,行,那你知道就行了,那把这个UI拿过来。那他需要。Out,加回车啊。抛个异常,OK,那下面呢,CTRL加P提示参数,下一个是con啊配置参数。那配置参数你有一个config。好,就他。OK。拿到,拿到它之后放进来。那我给大家演示一个,嗯,抛异常的情况啊。
04:01
呃,我先不给后面那个参数。备注一下。连接的集群。NN地址。对吧,哎,你要连接谁,你得给个地址,那下一个呢是配置文件。配准件给过去,给过去之后呢,这里面我先来一个错误的演示啊。FS。这样呢,我就拿到了一个客户端对象,比如说第一步获取到客户端对象。那再往下走,拿到对象之后,第二步什么执行相关命令操作。那我们执行什么操作,我们是创建一个文件夹这个操作,那好拿到FS点诶。哪一个,哎,就是这个make d。
05:01
好,那这里面需要传那个参数呢,我们直接传一个pass就行了。一个pass。我们要在这里面创建一个。嗯,根目录西游吧,嗯,西游下面有一个花果。三啊,花果山。OK,就创建这么一个目录,看能不能创建,然后第三步呢,就是关闭资源。这准确来说是第一步。第二步。第三步。f.close。哎,结束战斗,那结束战斗,我这里面是一个测试对吧,Out。嗯,就它解unit测试。那行,那现在这个代码呢,我们就写完了,写完之后呢,我们稍微执行一下,首先把这个首先啊,你要保证你这个集群也是OK的。我这个集群是。启动起来了啊。看一下你集群一定要保证启动。
06:01
OK,启动完之后呢,我们来看一下啊,我执行一下,看它抛什么异常。好,你发现说呃权限等等不对啊,为什么说抛一个权限不对呢。大家思考问题,为什么说权限不对呢?那你想我当前ADS是谁?所有者是不是当前这个用户是艾特硅谷啊?那你现在你这个。在客户端这个对象,你说在远程这个Windows里面,你是at硅谷吗。他说不是啊,哎,你没有传的话,他肯定他也不知道你的用户是谁啊,肯定不是爱的圭五啊,那他就没有权限去访问对应的ADS。那怎么办呢?那你就给他一个用户呗,哎,那这里面就是在我们这个file system第三个参数当中再来一个。你看CTRL加P,它会给你提供一个U啊试卷类型的。
07:01
那就是用户。等于。艾特硅谷。OK,那我们把这个user放进来。Ctrl alt加L啊全部格式化一下,然后抛个异常alt加回车。搞定搞定之后呢,现在呢,我们再来操作一下。走。看现在就成功了吗?哎,成功之后我们来看一下哈刷新,那这里面就多了一个西游花果山。哎,这是一个非常简单的一个案例啊,那这样就OK了,但是我后面啊,我们还会进行创建这个获取客户端,然后那个进行其他相关操作,然后关闭资源,你会发现这里面有大量的重复操作,尤其是在初始化和关闭资源这一块。都是一模一样的,那这种代码怎么办呢?哎,我们可以把它想办法封装一下。
08:02
那封装一下,封装一个初始化,首先呢,来一个public。Y的。然后再来一个方法,那就是public VO ID。Clothes。关闭资源,那关闭资源,我先把这个初始化拿过来啊。把它。剪切轴放到这里面。但是一放到这里面,首先把它抛异常抛出去对吧?哎,抛出去,然后呢,它这里面也有个异常再抛出去。那这个file system在这里面能不能用啊?好像现在用不了,那怎么办?我需要把这个FS升级为全局变量啊,也说这种静态属这个属性是吧,呃,CQ。Out。加F,看这里面说,哎,把它变成private,嗯,然后。F回车。那这样呢,这就把它变成它了。
09:02
啊变成属性OK,那下面就可以正常的一个使用,那同样道理,把它呢,CTRLS剪切到这。处理一下啊。OK,把它抛出去,二价回升。那现在这种情况,我去执行它能不能执行。我也改一个。啊,我改一个。能不能执行呢?不能执行对吧,因为你这是test的,那那会报什么异常呢。嗯,汇报一个。空指针异常。控制吗?为什么空啊,因为你这个对象FS在哪有的。是不是在全局有了一对象,但是有人给他复职吗?你说这不在这复职了吗?那引进的方法走了吗?是不是还没走呢?哎,那怎么想办法让他走呢,这样。Out。一份。那这个呢,Close呢,来一个alt。
10:02
啥意思啊?哎,什么含义啊。哎,也就是说这个代码它的执行顺序是这样的,首先呢,先执行before,执行完before后执行test test结束之后after。就是最后的意思哈,那这是呢,在你执行代码之前要做的初始化准备操作,那after呢,是你执行之后的一些关闭资源操作,那T呢,是真正的这种啊业务逻辑代码。这是这一块,这一块看一看它行不行啊,右键啊左键就行了啊。行。执行看一下。哥,俺没报错。是不是有了,哎,这个花果山一,我把它删掉啊。这样呢,就可以创建一个文件夹啊,非常轻松。
我来说两句