Hadoop 重新编译-解决root用户提交任务报错Running as root is not allowed

芒果2年前技术文章1202

本文主要解决Hadoop root用户无法提交问题
Running as root is not allowed

image.png

Linux架构:arm或者x86都可以
Jdk版本:jdk1.8
cmake版本:3.19
Hadoop版本:3.2.1
Maven版本:3.6.3
Protobuf版本:2.5
查看报错 是因为在源码中做出了限制
/Users/mac/Desktop/客户/源码/hadoop-3.2.1-src/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/ 

image.png

struct passwd* check_user(const char *user) {
//  if (strcmp(user, "root") == 0) {
//    fprintf(LOGFILE, "Running as root is not allowed\n");
//    fflush(LOGFILE);
//    return NULL;
//  }
开启cgroup和LinuxContainerExecutor后无法用root去提交
修改/opt/hadoop-3.2.1-src01/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/native/container-executor/impl/configuration.c
改成这个样子 

image.png

然后退到/opt/hadoop-3.2.1-src01/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager
开始编译
mvn package -Pdist,native -DskipTests -Dtar -Dcontainer-executor.conf.dir=/etc/hadoop
注意/etc/hadoop 是你以后container-executor.cfg文件的位置 


image.png

编译完成
最新文件:/opt/hadoop-3.2.1-src01/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/target/native/target/usr/local/bin
 
传到HADOOP_HOME/bin下就可以了
我们在用root提交个任务试试
/opt/dtstack/Spark/spark_pkg/bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --executor-cores 1 --queue default /opt/dtstack/Spark/spark_pkg/examples/jars/spark-examples_2.12-3.2.0.jar 10 


image.png

chown root:hadoop container-executor
Chmod 6050 container-executor
解决 


相关文章

es68 应用异常排查

es68 应用异常排查

问题描述es68应用拉取镜像缓慢问题解决直接从docker仓库拉取,配置了镜像加速。docker的阿里云镜像地址 (推荐使用)yum-config-manager \     --add-repo ...

oracle安装实例的响应文件模板解析

位置在:db解压目录下database/response/dbca.rsp###############################################################...

开启cgroup

开启cgroup

Control groups 是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的的物理资源的机制。Cgroup 子系统:blkio、CPU、cpuacct、cpuset、devices、...

PG的多版本并发控制(三)

三、多版本并发控制3.1 常见多版本并发的实现方式第一种方式是,数据库仅保存最新版本数据,将发生变更的旧行版本数据写到其他地方如undo,当需要读取旧版本数据时,通过undo重构。oracle和MyS...

mcasttest-tool组播检测工具

mcasttest-tool组播检测工具

检测组播mcasttest-tool是oracle组播检测工具,组播是oracle 11.2.0.2开始的新功能1、上传mcasttest工具解压并授权[root@rac1 soft]# cd /u0...

MySQL 自动化部署( 5.7 & 8.0版)

MySQL 自动化部署( 5.7 & 8.0版)

一、脚本环境说明系统:CentOSMySQL:仅支持 5.7 & 8.0脚本默认安装路径 /usr/local/mysql脚本默认数据路径 /data/mysql*(脚本会根据版本确定安装名...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。