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

芒果2年前技术文章1104

本文主要解决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
解决 


相关文章

PromQL查询解析

一. 概述Prometheus除了存储数据外,还提供了一种强大的功能表达式语言 PromQL,允许用户实时选择和汇聚时间序列数据。表达式的结果可以在浏览器中显示为图形,也可以显示为表格数据,或者由外部...

查看 Redis 不过期 key

查看 Redis 不过期 key

一、使用 Rdbtools 工具包使用 Rdbtools 工具包通过分析备份 rdb 文件,可以查看期间大 key 情况及过期时间情况。输出 csv 文档列信息情况详见下方附件--安装 rdb 工具包...

MySQL优化器特性(一)IN和Exists(semijoin)子查询优化策略

这篇文章中的SQL和执行计划在mysql 8.0.31环境下进行测试。测试的表结构和数据:表结构mysql> show create table tp\G...

CDH实操--客户端安装

CDH实操--客户端安装

CDH客户端安装概述安装CDH客户端,主要是方便在CDH部署节点以外,通过客户端的方式连接CDH上的hdfs,hive和hbase服务1、安装jdk(适配CDH即可,一般1.8)2、获取安装包 3、部...

MySQL运维实战(2)MySQL用户和权限管理

MySQL用户管理基本命令创建用户使用create user命令创建用户create user 'username'@'host' ide...

Presto临时设置session超时时间

Presto临时设置session超时时间

全局默认超时时间为200s:测试语句:select    "t7"."__fcol_16" "__fcol_22",    date_trunc('month', "t7"."__fcol_21"...

发表评论    

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