启动 Hadoop 报错 (Attempting to operate on yarn nodemanager as root)

img

提示很清楚了啊,
以root用户执行 yarn nodemanager 这种命令, 必须通过 YARN_NODEMANAGER_USER 环境变量 额外指定用户信息,类似的还有resourcemanager
也就是说,nodemanger、resourcemanager不能以root用户启动,即便命令是通过root用户启动的, 内部也会进行su,切换到指定的用户执行,具体切换到哪个用户就是 YARN_NODEMANAGER_USER来指定的
具体看hadoop-functions.sh 中的hadoop_uservar_su 函数