您的当前位置:首页正文

hadoop调度docker启动用户设置

来源:图艺博知识网

1,启动

hadoop调度docker时,docker容器的启动通过hadoop执行指定的shell命令完成,通常,我们的hadoop都是由hadoop用户启动,那么由hadoop启动的nodeManager也只有hadoop用户具有的权限,而docker容器的启动,通常需要root权限,如果hadoop没有root权限,启动docker时则会报权限不足的错误。

这里的解决方式是给hadoop用户加上sudo权限。appMaster启动docker时,执行shell语句如下:

其中'Tudou=123'是hadoop的密码,应该由前台动态传输。

2,停止:

启动问题解决了,不过如果当客户端关掉某应用,release已分配的相关的container时,又会有新的问题,hadoop的NodeManager关掉container是通过kill container相关联的进程,来给予终止,这里相关联的进程即是docker容器,如果docker容器是sudo的方式启动的,那么,nodeManager将无法kill。

这里采用的方式是,hadoop进程resourceManager,nodeManager也是同样以sudo的方式启动,这样同样拥有管理员权限的nodeManager即可对docker容器进行停止操作。

3,扩容操作关键指令

综合1,2对裸机物理节点进行扩容时,需要注意以下几个要点:

1,创建hadoop用户时,需给予hadoop配置sudo权限,由于docker容器由hadoop启动,所以,还需给sudo配置免通道执行

2,hadoop进程启动时采用sudo的方式启动:

这里是把hadoop节点启动的命令写在脚本内,以sudo的方式启动脚本。

3,appMaster启动docker容器时,采用sudo的方式启动

Top