查看Hadoop运行状态

这是一个意外,这也是一个非常赞的方法。

运行hadoop的时候,我们需要看它的机群运行状态,于是一般可以通过localhost:50030(在浏览器中输入即可)来查看,但是由于我们运行的任务是在机群上面的,机群上没有浏览器甚至没有图形界面,而自己只是这个机群的一个普通用户(所以没办法安装系统软件)。运行hadoop的master节点只是这个机群中的一个普通节点而已,我们访问这个节点需要通过机群中的根节点机器(其具有外网IP),然后才能到这个机器。这个时候怎么检测机群的运行状态呢?

一开始我也不知道,于是抱着试试的态度问问博后,居然获得了解决。原理是这样的,就是先通过本机ssh连接到机群的根节点机器,然后通过它作为代理将http请求转送到master机器。说白了就是一个代理机制。

具体操作如下:

在自己的本机上,ssh -f -N -D 8000myuser@remote_ssh_server 。其中的8000是端口号,可以自己设置。这里面的remote_ssh_server是机群的根节点机器。

将本机上的浏览器(火狐、chrome都可以啦)的代理设置一下,这里以火狐为例:首先按照下图设置代理,其中的端口号8000就是在第一步设置的端口号。

最后就是到hadoop master机器上,查看它的IP,这里我的ip是192.168.22.0(这是局域网IP,也是可以的啦),然后如果你的hadoop程序正在跑,你就可以通过本机的浏览器访问啦。

这还没完,因为访问集群状态的时候往往需要看看datanode节点的信息,但是只做完上面的话是不够的,我们还需要将这个远处的机器作为DNS代理,怎么做呢?在火狐中输入about:config,然后将参数network.proxy.socks_remote_dns设置为true.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.