복붙노트

[HADOOP] HDFS_NAMENODE_USER, HDFS_DATANODE_USER 및 HDFS_SECONDARYNAMENODE_USER이 (가) 정의되지 않았습니다.

HADOOP

HDFS_NAMENODE_USER, HDFS_DATANODE_USER 및 HDFS_SECONDARYNAMENODE_USER이 (가) 정의되지 않았습니다.

나는 새삼 스럽다. 내 랩톱에 가상 분산 모드에서 hadoop을 설치하려고합니다. 루트 사용자로 실행 중이지만 아래 오류가 발생합니다.

root@debdutta-Lenovo-G50-80:~# $HADOOP_PREFIX/sbin/start-dfs.sh
WARNING: HADOOP_PREFIX has been replaced by HADOOP_HOME. Using value of HADOOP_PREFIX.
Starting namenodes on [localhost]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. 
Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. 
Aborting operation.
Starting secondary namenodes [debdutta-Lenovo-G50-80]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
WARNING: HADOOP_PREFIX has been replaced by  HADOOP_HOME. Using value of HADOOP_PREFIX.

또한, 다른 사용자와 함께 ssh 서비스에 액세스 할 수 없으므로 root 사용자로 hadoop을 실행해야합니다. 같은 것을 고치는 방법?

해결법

  1. ==============================

    1.그냥 묻습니다.

    그냥 묻습니다.

    export HDFS_NAMENODE_USER="root"
    export HDFS_DATANODE_USER="root"
    export HDFS_SECONDARYNAMENODE_USER="root"
    export YARN_RESOURCEMANAGER_USER="root"
    export YARN_NODEMANAGER_USER="root"
    
  2. ==============================

    2.이 문제의 근본 원인은

    이 문제의 근본 원인은

    그러므로 우리는 그것을 교정하고 모든 장소에서 일관되게 할 필요가 있습니다. 따라서이 문제의 간단한 해결책은 hadoop-env.sh 파일을 편집하고 원사 서비스를 시작하려는 사용자 이름을 추가하는 것입니다. 그러니 다음 행을 추가하여 $ HADOOP_HOME / etc / hadoop / hadoop-env.sh를 편집하십시오.

    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root
    

    이제 원사, hdfs 서비스를 저장하고 시작하여 작동하는지 확인하십시오.

  3. ==============================

    3.첫 번째 경고 인 HADOOP_PREFIX에 기반하여 HADOOP_HOME을 올바르게 정의하지 않은 것 같습니다.

    첫 번째 경고 인 HADOOP_PREFIX에 기반하여 HADOOP_HOME을 올바르게 정의하지 않은 것 같습니다.

    이것은 /etc/profile.d에서 수행됩니다.

    hadoop-env.sh는 그 변수의 나머지가 정의되는 곳입니다.

    UNIX 쉘 가이드를 참조하십시오.

    이것은 Hadoop 자체와는 아무런 관련이 없습니다. 그것은 기본적인 SSH 계정 관리입니다. 너는 ~해야 해.

    분산 모드가 필요없고 로컬에서 Hadoop 만 사용하려는 경우 미니 클러스터를 사용할 수 있습니다.

    설명서에서는 의사 배포를 계속하기 전에 단일 노드 설치를 권장합니다

  4. ==============================

    4.Vim $ {HADOOP_HOME} sbin / start-dfs.sh & $ {HADOOP_HOME} sbin / stop-dfs.sh 다음을 추가하십시오.

    Vim $ {HADOOP_HOME} sbin / start-dfs.sh & $ {HADOOP_HOME} sbin / stop-dfs.sh 다음을 추가하십시오.

    HDFS_DATANODE_USER=root
    HADOOP_SECURE_DN_USER=hdfs 
    HDFS_NAMENODE_USER=root 
    HDFS_SECONDARYNAMENODE_USER=root 
    
  5. from https://stackoverflow.com/questions/48129029/hdfs-namenode-user-hdfs-datanode-user-hdfs-secondarynamenode-user-not-defined by cc-by-sa and MIT license