00:00
好,接下来呢,我们来看一下延的常用命令啊,呃,真正在企业开发的时候啊,这个延的常命令呢,还是我们也会经常使用啊,所以说这个地方呢,要认真听,呃,尤其在开发的时候啊。行,那下面我们来看一下啊,我们首先呢来执行一个word count案例,在执行的过程当中,我们可以去查看这个任务的运行情况,以及呢,它执行完毕之后,可以查看它运行的一个日志等等一些情况,那首先呢,我们把这个集群先起来啊。集群来到这儿。买黑毒。大启动。等待它启动啊。启动完之后呢,我们就执行一个word count。这个word count还熟悉吗?咱们在讲这个入门的时候就用到这个word count,一直到今天讲雅安啊,仍然会用这个word count。很神奇的一个案例哈。好,启动起来了,启动起来之后,我们来到集群上查看一下啊。HIDEOP102。
01:00
进来。看一下这个路径上都有哪些信息啊。呃,首先有input,有out put对吧,Out。行,那下面呢,我们来执行一下这个案例CD pd hadoop。是吧,嗯,然后呢,Hioop架。这个案例呢,在塞尔目录下,塞尔目录下呢,有一个嗨多方I下面有一个MAP6。然后hadoop一个脏丝对吧,然后下面的word count,然后input。嗯,OUTPUT1,刚才路路径上已经存在了一个output对吧,那这会儿呢,就用一个output一来执行,那执行它之前我们先把谁打开呢。这个地方也打开hi do1038088。这个页面就是查看任务整个运行情况的一个日志,对吧?哎,那这里面目前呢是没有数据好。执行。OK,它这边开启,然后你刷新这个页面对吧,以前我们是通过这个页面的形式去查看,嗯,这个应用的一个运用情况,那现在呢,我们也可以通过命令行的方式来查看,比如说第一个我们查看这个任务啊,Application list。
02:15
拿回来。嗯,我在创建一个窗口啊。复制绘画。三。哎,你发现这里面缩小一下啊。嗯,这里面呢,说运行这个嗨度和103啊,这里面如目前呢,这个任务数结束了,这么快吗?哎呀结束了啊。呃,没补知道哈,如果说这个任务运行的时间比较长,那么这块呢,你就能看到对应的这个APP,哎,对应的这个APPID啊啊,还有这个APP名称是什么啊,它的类型是哪一个用户执行的,还有这个队列,你看这一列跟谁类似。把它接出来啊。定出来。
03:00
钉出来之后,你跟上面这几个信息去比较一下。首先这里面呢是application ID,也是application这个名称对吧?啊application ID,然后呢,Application name,看application name,还有呢application type,这是application type啊,类型user啊,这是user啊,然后呢,队列名称是哪一个队列啊,然后以及它的状态相当于什么呀,也就是说你可以通过页面的方式去查看这个任务运行情况,同时呢,也可以通过命令的方式去查看某一个任务。能懂这意思吗?哎,也就是我这个命令啊,跟这个页面呢,其实是呃两套啊,但是都能实现同样的效果啊,那行,那知道这个事儿之后呢,下面我们继续往下看啊,虽然说我们这个任务执行了,但是给这个嗯,具体的命令给大家详细讲一下哈。首先下一个说application状态的一个过滤,哎,我们可以说执行雅n application,然后杠list啊,杠APP status一个状态,那状态能查看哪些状态呢?哎,你可以过滤出来,诶当前是属于O状态的,所有的属于O状态的这个任务,所有属于new的属于这个啊,Submitted accept running finished fail killed。
04:12
那以后如果你现在我们只进行一个任务哈,你体现不出来这个功能的强大,那如果说你运行的200个任务,我想查看其中哪些任务接触了。对吧?哎,我想查看哪些任务目前还在继续运行。还有哪些任务已经被kill掉了?那就可以通过这个命令进行一个过滤,那简单我们演示一下啊,雅n application-list APP是finished,相当于是查看已经结束的任务有哪些。OK。执行。对吧,哎,现在呢,你看他说了application啊,这个ID的任务已经结束了。哎,他森这个名称呢,叫word count。嗯,好,那看一下这个名称。
05:00
看到吗?对吧,161265977833420001是吧,跟这个ID是一样的哈,哎,其实再次证明这个页面和命令行它俩是两套啊,但是都能实现同样的效果。好,那下面这个这个命令呢,一定要会。叫Q啊,杀死某一个应用程序。说这个某一个在执行程序的时候啊,突然间某一个任务卡死了啊,已经卡了一天了。那这个任务还没有结束,那怎么办呢?哎,如果说你着急释放资源啊,我想重新去跑,那你就可以执行雅恩F3-Q,然后对加上对应的这个名称就可以了。哎,就这么简单。OK吧,行,那我们也执行一下哈。那杠Q这个ID这呢,虽然说他已经死了是吧?啊死了现在再来一次,相当于是鞭尸了啊。来,再来一下,看看他会报什么说啊,这个ID has already finished已经结束了,对吧?啊,已经结束了。
06:06
行,那这个放在这儿,那我们继续往下走啊,看看还有别的什么命令啊,呃,雅恩log斯查看日志,这个命令呢,非常重要啊,非常重要。呃,如果说你这个页面啊,这里面找不到相关的这个运行信息了啊,或者说没有配置历史服务器等等,那么我们就可以通过。这个命令来查看。雅恩斯杠安0ID后面跟上你要查看的ID。那我们看一下效果哈,嗯,雅安他。打开。然后呢,把后面这个FID拿下来。OK。好,直行。你看这就是整个雅安,哎,这个任务运行的日志信息,所有信息全打出来,如果有异常的话,直接就能看到啊,不需要在外B页面上去查看。这是这个命令啊,这个命令在生产环境下呢,用的是非常多的。
07:03
那你再往下走。下面说查询container的一个日志。你说刚才呢,你这个是一个应用程序,那一个应用程序下面给他画个画图吧。都拿过来啊。对吧,这是一套集群,那集群啊,呃,我们会发送过来一个是什么呢?叫。Application应用程序呗。叫M2吧,嗯。对吧,哎,翻回来一趟,那它这里面下面它有N多个子任务。T。对吧,嗯,一个task,然后再来一个task,那么我们这个task都是放在哪里面运行的,还记得不。我们这个task它是不是就是。先下一场。都是在一个叫容器里面运行啊。
08:02
这还没有了?算了吧,嗯呃,这这每一个test,包括这个F08,它都是在容器里面运行。是吧,那我们关注某一个容器它的运行情况,比如说你这里面这么多任务,这三个任务有可能是其中一个卡住了,导致整个任务没结束。对吧,那我想关注这一个container里面的详情信息,那怎么查看呢?哎,那这个命令就可以查看了。查看容器,哎,首先呢是雅logs,然后杠application ID,比如说哪一个应用程序的,然后下面的哪一个container ID。啊,那这个container ID怎么获取呢?啊,别着急,我们在这块的时候就能够查看容器的相关信息,好吧,哎,在这块查看的时候,回头过头来,我们再来查看这个命令。往下走。下面说雅an application attempt尝试运行的一个任务。啥叫尝试呢?相当于这个任务正在运行。
09:01
按正在运行的一个状态,你刚才那个FN,那有可能它结束了,对吧?啊有可能任务结束了,那现在呢,相当于是它正在运行的时候,它处于一个什么样的状态。那比如说第一个列出所有FKN尝试提交运行,也是正在尝试运行的列表,那把它拿过来。呃,这个ID。这个ID我要给他保留了啊,因为这个ID不好复制。好右键粘贴对吧,我就查看你这个走。那当前这情况是不是这个尝试提交的已经结束了,对吧?哎,结束了,但是你看这里面还有个谁容器,相当于我在执行这个任务的时候用到的是不是这个容器的container啊,哎,用到它,那用到它之后,那上一个命令就可以用了,叫雅恩log斯FID。好了啊。然后我后面跟上,跟上的是它我要运行的这个任务。
10:00
拿下。我运行的这个任务,那这个任务后面我再跟上一个container杠杠container ID。OK。那container ID呢,就是它。嗯,然后执行。哎,这里面就能查看这个应用下的某一个容器的运行情况。啊,这个命令也非常有用啊,呃,就说你任务在发生异常的时候,我们可以关注这个container,它到底发生了什么情况,那再往下走,下面呢是打印application,呃,尝试提交这个任务的一个状态。比如说看一下他当前这一时刻处于什么状态。那可以打开。那我上一个任务。看看啊,这个我把这个先列出来啊。A列出来之后,那下面我们执行这个杠杠是那尝试提交的这个ID在这呢。
11:01
这行。哎,当前一时刻什么状态,哎,属于fitness状态,那所有的状态上面有一个这个地方是不是已经列过。在所有状态对吧,哎,这么多状态,你想查看什么的都可以。行,那这个呢,是尝试提交任务的运行情况,那下面呢,我们来看一下哎,容器的一个查看,比如说雅安container list,比如说当前这一次课有多少个container。那列呗,那这个呢,查看的是application啊,Container容器啊,是必须得在运行的时候才能够查看到啊,你不运行的时候查看不到。因为容器一旦运行完毕之后,是不是它就释放了。所以这个地方要注意啊。OK中。对吧,哎,你现在呢,是查看不到任何信息的,因为这个容器一旦结束立即释放,那像这个查看容器啊,查看这个尝试提交的运行的这个任务啊,啊这些呢,都是属于它正在运行的时候,而且出现了异常情况,那我们更关注这种情况啊,用它去查看。
12:05
下面呢,这是雅安的container的一个状态,也是查看当前这个容器它处于一个什么状态啊。好,那状态的话,容器的ID。哎,不是容器ID吧,是APP是容器ID哈,拿过来。好,走。当前什么状态呢?呃,Container with ID啊,已经找不到了是吧?已经不存在了吗?我说了这个任务运行完毕之后就释放了,咱们在讲雅安工作机制的时候,是不是也这么讲的?你看只有在任务跑的过程当中可以去执行啊。下面再查看说查看你演n node节点的一个状态。也就是说note manager到底有几个?那他们目前处于什么样的状态?那雅not list or查看所有的。那我现在有几个note manager,是不是有三台啊?那三个note manager目前什么状态,是不是都是running状态啊,活的好好的哈。
13:00
好,这是这一块,那下面呢,说雅rmdmin相当于是这种管理者权限,嗯,它干啥呢,叫。Refresh队列,刷新队列相关的一些参数,如果说我们后面再改队列相关的配置信息的时候发生了变化,那么不需要重启雅恩,直接执行它就可以重新加载你修改之后的配置参数。那这个功能也很强大啊,相当于是动态的一个修改,哎不停那行,我们稍微了解一下哈。执行,因为我们后面会有一个案例就会用到这个情况命令,对吧,目前情况呢,没有任何反应,他就是重新读了一下配置文件。而且是队列相关的,记住哈,如果是你雅N相关的跟它没关系,它只是查看雅安下面的队列。啊,这是有局限性的啊。再一个呢,是雅恩队列状态的一个查看,那咱们这个呃,像。容量道器或者公平道器,它都有一个默认DEF方的队列。
14:02
那后面我们可以根据情况去增加对吧?那那那另说,那你想查看哪一个队列信息,那就是雅队列,然后状态那。然后加上队列的名称就可以。对吧,这是这个队列运行的状态,哎,目前正在运行容量的100%对吧?哎,当前容量呢,就是当前使用的容量是0%,也就说没有执行任务,那最大容量100%,那你除了从这看之外,你也可以来到这儿,对吧?调度器,调度器这时候是不有defat啊,你展开这里面也是这个队列的一个状态信息,哎,只不过呢,这个呢,会比命令行更全一些。这就是这个雅安相关的命令啊,非常重要啊,作为一个开发人员,那这些命令呢,是必须要会的。
我来说两句