Hive n'a pas réussi à créer / utilisateur / ruche / entrepôt
Je viens de commencer sur Apache Hive, et je suis en utilisant mon local Ubuntu boîte 12.04, avec la Ruche 0.10.0 et Hadoop 1.1.2.
La suite de l'officiel "Prise En Main" guide sur le site web d'Apache, je suis maintenant bloqué à la commande Hadoop pour créer de la ruche metastore avec la commande dans le guide:
$ $HADOOP_HOME/bin/hadoop fs -mkdir /user/hive/warehouse
l'erreur a été mkdir: failed to create /user/hive/warehouse
Ne Ruche besoin hadoop dans un mode spécifique? Je sais que je n'ai pas eu à faire beaucoup pour mon installation de Hadoop autres que la mise à jour JAVA_HOME de sorte qu'il est en mode autonome. Je suis sûr que Hadoop elle-même travaille depuis que je suis exécutez la PI exemple qui vient avec l'installation de hadoop.
Aussi, l'autre commande pour créer /tmp
montre la /tmp
répertoire existe déjà, donc il n'a pas de recréer, et /bin/hadoop fs -ls
l'inscription sur une liste du répertoire en cours.
Alors, comment puis-je obtenir autour d'elle?
source d'informationauteur yutechnet | 2013-09-28
Vous devez vous connecter pour publier un commentaire.
Presque tous les exemples de la documentation ont cette commande de mal. Tout comme unix, vous aurez besoin de l'option "-p" drapeau de créer les répertoires parents en tant que bien, sauf si vous avez déjà créé. Cette commande fonctionne.
Lors de l'exécution de la ruche sur le système local, il suffit d'ajouter à ~/.hiverc:
Vous pouvez spécifier n'importe quel dossier à utiliser comme un entrepôt. Évidemment, tous les autres la ruche de configuration méthode n' (hive-site.xml ou la ruche -hiveconf, par exemple).
C'est éventuellement ce Ambarish Hazarnis gardé à l'esprit lorsque vous dites "ou de Créer de l'entrepôt dans votre home directory".
Cela semble être un problème de permission. Avez-vous accès à la racine du dossier /?
Essayez les options suivantes-
Laissez-nous savoir si cela aide. Bonne chance!
Lors de la configuration de hadoop propriétés dans l'étincelle de configuration, les préfixer avec
spark.hadoop
.Donc mis en
Cela fonctionne pour les versions plus anciennes d'Étincelle. La propriété a changé dans spark 2.0.0
Alors que c'est un simple problème d'autorisation qui a été résolu avec la commande sudo dans mon commentaire ci-dessus, il ya un couple de notes:
créer dans le répertoire d'accueil devrait fonctionner aussi bien, mais vous pouvez avoir besoin de mise à jour de la ruche de réglage pour le chemin de metastore, qui, je pense, par défaut /utilisateur/ruche/entrepôt
J'ai couru dans une autre erreur de l'instruction CREATE TABLE avec de la Ruche shell, l'erreur a été quelque chose comme ceci:
ruche> CREATE TABLE pokes (INT foo, bar STRING);
A ÉCHOUÉ: Erreur dans les métadonnées: MetaException(message:vous avez exception: java.io.FileNotFoundException File File:/utilisateur/ruche/entrepôt/pokes n'existe pas.)
A ÉCHOUÉ: Erreur d'Exécution, le code de retour 1 de org.apache.hadoop.de la ruche.ql.exec.DDLTask
Il s'avère être un autre problème d'autorisation, vous devez créer un groupe appelé "la ruche", puis ajouter l'utilisateur actuel du groupe et de modifier la propriété d' /utilisateur/ruche/entrepôt à ce groupe. Après, ça fonctionne. Les détails peuvent être trouvés à partir de ce lien ci-dessous:
http://mail-archives.apache.org/mod_mbox/hive-user/201104.mbox/%[email protected]%3E
si vous r sous linux vérifier (dans hadoop core-site.xml ) répertoire de données & autorisation, il semble que vous ve gardé la valeur par défaut qui est /data/tmp et im la plupart des cas, qui va prendre racine permission ..
modifier le fichier de configuration xml , supprimer /data/tmp et à l'exécution fs format (OC après que vous avez modifié le core xml de config)
Je recommande l'utilisation du haut des versions de la ruche c'est à dire 1.1.0 version 0.10.0 est très bogué.
hadoop fs -chmod -R 755 /utilisateur
L'ajout de réponse pour la réf pour Cloudera CDH utilisateurs qui voient cette même question.
Si vous utilisez Cloudera CDH de distribution, assurez-vous que vous avez suivi ces étapes:
Cloudera a /utilisateur/ruche/entrepôt dossier créé par défaut. Ses juste que les FILS et les HDFS pourrait ne pas être en place et en cours d'exécution pour accéder à ce chemin.