La racine de zéro dir: /tmp/ruche sur HDFS doit être accessible en écriture. Autorisations en cours: rw-rw-rw- (sur Windows)
Je suis en cours d'exécution Étincelle sur Windows 7. Lorsque j'utilise la Ruche, je vois l'erreur suivante
The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rw-rw-rw-
Les autorisations sont définies comme suit
C:\tmp>ls -la
total 20
drwxr-xr-x 1 ADMIN Administ 0 Dec 10 13:06 .
drwxr-xr-x 1 ADMIN Administ 28672 Dec 10 09:53 ..
drwxr-xr-x 2 ADMIN Administ 0 Dec 10 12:22 hive
J'ai mis en "contrôle total" pour tous les utilisateurs de Windows->propriétés->sécurité>Avancé.
Mais je vois toujours la même erreur. Toute aide, s'il vous plaît?
J'ai vérifié un tas de liens, certains disent que c'est un bug sur la Spark 1.5. Est-ce vrai?
Merci
Aarthi
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, assurez-vous d'utiliser la bonne Winutils pour votre système d'exploitation. Alors la prochaine étape est d'autorisations.
Sur windows,vous devez exécuter la commande suivante sur cmd:
Espère que vous avez téléchargé winutils déjà n définir la HADOOP_HOME.
winutils ls
) mais seulement quand j'ai remplacé winutils.exe ca a fonctionné.hadoop\bin
des répertoires à l'intérieur extraites du répertoire. Mettre winutils.exe danshadoop\bin
. Couru python-spark exemple hello world et a obtenu cette erreur. Est le Point où est\tmp\hive
située \ configuré?Première chose, vérifiez d'abord votre ordinateur de domaine. Essayez
Si cette commande dit accès refusé ou FindFileOwnerAndPermission erreur (1789): La relation d'approbation entre cette station de travail et le domaine principal a échoué.
Cela signifie que votre ordinateur contrôleur de domaine n'est pas accessible , raison pourrait être que vous ne sont pas sur le même VPN comme votre système de contrôleur de domaine.Se connecter à un VPN et essayez à nouveau.
Maintenant, essayez la solution fournie par Viktor ou Nishu.
Solution suivante travaillé sur Windows pour moi:
C:\temp\hadoop\bin\winutils.exe chmod 777 \tmp\hive
\tmp\hive
n'est pas de répertoire localVous devez définir ce répertoire, les permissions sur HDFS, pas votre système de fichiers local.
/tmp
ne veut pas direC:\tmp
, sauf si vous définissezfs.defaultFs
dans core-site.xml pourfile://c:/
, ce qui est probablement une mauvaise idée.Le vérifier à l'aide de
Définir à l'aide de
Erreur lors du démarrage de l'étincelle-shell sur VM en cours d'exécution sur Windows:
Erreur msg: La racine de zéro dir: /tmp/ruche sur HDFS doit être accessible en écriture. Le refus d'une autorisation
Solution:
/tmp/la ruche est un répertoire temporaire. Seulement les fichiers temporaires sont maintenus dans cette
emplacement. Pas de problème, même si nous supprimer ce répertoire sera créé lors de la
nécessaire avec les autorisations appropriées.
L'étape 1) Dans hdfs, Supprimer le /tmp/ruche directory ==> "hdfs dfs -rm-r /tmp/ruche"
2) Au niveau de l'OS trop, supprimer le dossier /tmp/ruche ==> rm-rf /tmp/ruche
Après cela, allumé l'étincelle-shell et il a bien fonctionné..
C'est un simple en 4 étapes:
Pour Spark 2.0+:
Ajouter à votre code (avant SparkSession initialisation):
Ajouter à votre spark-session (Vous pouvez la modifier à
C:/Temp
au lieu du Bureau).Ouvrir cmd.exe et de lancer:
La raison principale est vous avez commencé l'étincelle au mauvais répertoire. merci de créer des dossiers dans D://tmp/hive (donner toutes les permissions et de commencer votre étincelle dans le lecteur D:
D:> spark-shell
maintenant, il va travailler.. 🙂
Il y a un bug dans Spark Jira pour la même chose. Ce problème a été résolu quelques jours en arrière. Voici le lien.
https://issues.apache.org/jira/browse/SPARK-10528
Commentaires ont toutes les options, mais pas de solution.
Problème résolu spark version 2.0.2 (14 Novembre 2016). Utiliser cette version .
La Version 2.1.0 Dec 28 2016 version a les mêmes problèmes.
J'ai aussi été confronté à ce problème. Cette question est liée à la réseau de. J'ai installé étincelle sur Windows 7 à l'aide d'un domaine en particulier.
Nom de domaine peut être vérifié
Quand je lance étincelle de commande shell, il fonctionne très bien sans aucune erreur.
Dans d'autres réseaux, j'ai reçu la permission d'écriture d'erreur.
Pour éviter cette erreur, exécutez étincelle de commande sur le Domaine spécifié dans au-dessus de chemin.
Peut s'il vous plaît essayez d'obtenir l'autorisation 777 sur le dossier /tmp/ruche, parce que ce que je pense, c'est que l'étincelle s'exécute en tant qu'utilisateur anonyme(qui entrera dans le autre catégorie d'utilisateur) et cette autorisation doit être récursive.
J'ai eu ce même problème avec la version 1.5.1 de l'étincelle de la ruche, et il a travaillé en donnant autorisation 777 utilisant la commande ci-dessous sur linux
Utiliser la dernière version de "winutils.exe" et d'essayer. https://github.com/steveloughran/winutils/blob/master/hadoop-2.7.1/bin/winutils.exe
À l'aide de la version correcte de winutils.exe a fait le tour pour moi. Le winutils devrait être à partir de la version d'Hadoop que l'Étincelle a été pré-construit pour.
Ensemble HADOOP_HOME variable d'environnement à l'emplacement de winutils.exe. Je l'ai stocké winutils.exe avec C:\Spark\bin les fichiers. Alors maintenant, mon SPARK_HOME et HADOOP_HOME point à l'emplacement même
C:\Spark
.Maintenant que winultils a été ajouté au path, accorder des autorisations pour la ruche dossier à l'aide de
winutils.exe chmod 777 C:\tmp\hive
J'avais la même erreur "à La racine de zéro dir: /tmp/ruche sur HDFS doit être accessible en écriture. Autorisations en cours: rw-rw-rw-" sur Windows 7. Voici ce que j'ai fait pour résoudre le problème:
(Vous pouvez en trouver sous le dossier bin c'est à dire, https://github.com/steveloughran/winutils/tree/master/hadoop-2.7.1/bin)
winutils.exe chmod 777 \tmp\ruche
Note: Avec une version précédente de winutils trop, la commande chmod a été l'établissement de l'autorisation nécessaire, en l'absence d'erreur, mais l'étincelle toujours plaint de ce que le /tmp/ruche dossier n'était pas accessible en écriture.
Je viens de résoudre ce problème dans mon Win7 environnement. J'ai modifié les paramètres DNS avec une adresse IP incorrecte. Il rend mon bureau échec de la connexion au contrôleur de domaine. Une fois que j'ai mis la bonne IP du serveur DNS, et de redémarrer la machine. Le problème est disparu. Je peux utiliser winutils à ls d'un répertoire.