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

芒果1年前技术文章814

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


相关文章

Ansible部署和使用(sshpass)

Ansible部署和使用(sshpass)

简介Ansible默认通过 SSH 协议管理机器。安装Ansible之后,不需要启动或运行一个后台进程,或是添加一个数据库。只要在一台电脑(可以是一台笔记本)上安装好,就可以通过这台电脑管理一组远程的...

Linux】项目自动化构建工具-make/Makefile 详解

Linux】项目自动化构建工具-make/Makefile 详解

 在Linux及类Unix系统中,自动化构建项目是提高开发效率、减少重复劳动的关键环节。make工具及其配置文件Makefile是实现这一目标的重要工具组合。它们通过定义一系列规则和依赖关系,自动执行...

emr部署hive并适配达梦数据库

emr部署hive并适配达梦数据库

一、达梦 用户、数据库初始化1、创建hive的元数据库create tablespace hive_meta datafile '/dm8/data/DAMENG/hive_meta.dbf' siz...

Python Web 自动化测试工具 — Selenium

Selenium 是一个 Web 自动化测试工具,Selenium 通过非常简洁方便的 API,使用 Selenium WebDrivers(Selenium web 驱动器)像使用 Firefox,...

GTID 模式 - 通过跳过事务解决主从故障

一、前言很多场景下我们需要跳过一个事务来修复主从关系,例如主从事务不一致,或者对无主键表更新,导致较大延迟,操作过程在此记录。二、操作流程1. 获取最后一个 GTID 操作在 GTID 模式下,如果需...

MongoDB的索引(二)

四、Case Insesitive索引1、语法db.collection.createIndex(  { "key" : 1 }, { collation: {locale : <local...

发表评论    

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