Je suis nouveau sur hadoop.
J'essaie d'installer hadoop sur mon ordinateur portable en mode pseudo-distribué.
Je l’utilise avec l’utilisateur root, mais je reçois l’erreur ci-dessous.
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.
De plus, je dois exécuter hadoop dans l'utilisateur root, étant donné que hadoop n'est pas en mesure d'accéder au service ssh avec un autre utilisateur.
Comment résoudre le même problème?
faites juste ce qu'il vous demande:
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"
Sur la base du premier avertissement, HADOOP_PREFIX
, on dirait que vous n'avez pas défini HADOOP_HOME
correctement.
Cela serait fait dans votre /etc/profile.d
.
hadoop-env.sh
est l'endroit où le reste de ces variables sont définies.
Veuillez vous référer au UNIX Shell Guide
hadoop n'est pas en mesure d'accéder au service ssh avec un autre utilisateur
Cela n'a rien à voir avec Hadoop lui-même. C'est la gestion de compte SSH de base. Tu dois
adduser
)ssh-copy-id hadoop@localhost
, par exempleSi vous n'avez pas besoin du mode distribué et souhaitez simplement utiliser Hadoop localement, vous pouvez utiliser un Mini Cluster .
La documentation recommande également de procéder à l’installation d’un seul nœud avant de continuer à utiliser pseudo-distribué.
La cause première de ce problème,
Nous devons donc le corriger et le rendre cohérent à chaque endroit. Une solution simple à ce problème consiste donc à modifier votre fichier hadoop-env.sh
et à ajouter le nom d'utilisateur pour lequel vous souhaitez démarrer le service de fil. Alors allez-y et éditez $HADOOP_HOME/etc/hadoop/hadoop-env.sh
en ajoutant les lignes suivantes
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
Maintenant, enregistrez et démarrez yarn, service hdfs et vérifiez que cela fonctionne.
Vim ${HADOOP_HOME}sbin/start-dfs.sh
& ${HADOOP_HOME}sbin/stop-dfs.sh
, puis ajoutez:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root