Je viens de commencer sur Apache Hive, et j'utilise ma boîte à Ubuntu locale 12.04, avec la ruche 0.10.0 et Hadoop 1.1.2.
10 Réponses :
Cela semble être un problème de permission. Avez-vous accès au dossier racine /? Essayez les options suivantes-
1. Run command as superuser OR 2.Create the warehouse in your home directory.
Oui, il s'avère être un simple problème d'autorisation, donc "sudo bin / hadoop fs -mkdir / utilisateur / ruche / entrepôt" a fait le tour. Merci!
S'il s'agit d'un simple problème d'autorisation qui a été résolu avec sudo dans mon commentaire ci-dessus, il y a quelques notes: p>
Créez-le dans le répertoire de domicile devrait également fonctionner, mais vous devrez peut-être mettre à jour le réglage de la ruche pour le chemin du métastore, que je pense que les valeurs par défaut / utilisateur / Hive / Warehouse P> L>
J'ai rencontré une autre erreur d'instruction de table Create avec Hive Shell, l'erreur était quelque chose comme ceci: p> li> ol>
ruche> créer des pkues de table (foo int, chaîne de bar); A échoué: erreur dans MetaData: MetaException (Message: obtention d'une exception: java.io.filenotfoundexception Fichier de fichier: / User / Hive / Warehouse / Pokes n'existe pas.) Échec de: Erreur d'exécution, code de retour 1 de org.apache.hadoop.hive.hive.hive.ql.exec.ddltask p>
Il se tourne comme un autre problème de permission, vous devez créer un groupe appelé "HIVE", puis ajouter l'utilisateur actuel à ce groupe et changer la propriété de / utilisateur / ruche / entrepôt à ce groupe. Après cela, ça marche. Les détails peuvent être trouvés à partir de ce lien ci-dessous: P>
Lorsque vous courez la ruche sur le système local, il suffit d'ajouter à ~ / .HIVERC: Vous pouvez spécifier n'importe quel dossier à utiliser comme entrepôt. Évidemment, tout autre Configuration de la ruche La méthode sera (Hive-Site.xml ou ruche -hiveconf, par exemple). P> C'est peut-être ce que Ambarish Hazarnis Strong> a gardé à l'esprit en disant "ou crée l'entrepôt dans votre annuaire de domicile". P> p>
Le mien a dû créer à l'intérieur de /usr/local/cellar/hive/2.3.1/libexec/conf code> sur MacOS (à l'aide de Homebrew comme gestionnaire de packages)
Si vous exécutez la vérification de Linux (dans Hadoop Core-Site-Site.xml) Répertoire de données et autorisation, il semble que vous avez conservé la valeur par défaut / DATA / TMP et IM La plupart des cas qui prendront la permission de racines. Changez le fichier de configuration XML, Supprimer / Data / TMP et exécuter FS FS Format (OC après avoir modifié la configuration XML CORE) P>
Presque tous les exemples de la documentation ont cette commande erronée. Juste comme Unix, vous aurez besoin du drapeau "-P" pour créer également les annuaires parents, à moins que vous ne les ayez déjà créé. Cette commande fonctionnera.
$HADOOP_HOME/bin/hadoop fs -mkdir -p /user/hive/warehouse
Je recommande d'utiliser des versions supérieures de Hive I.E. 1.1.0 Version, 0.10.0 est très buggy. p>
Lors du réglage des propriétés Hadoop dans la configuration Spark, préfixez-les avec Par conséquent, définissez P> Spark.hadoop Code>.
conf.set("spark.hadoop.hive.metastore.warehouse.dir","/new/location")
Ajout de réponse pour Ref to Des Cloudera CDH Utilisateurs qui voient ce même problème. P>
Si vous utilisez la distribution CLOUDERA CDH, assurez-vous d'avoir suivi ces étapes: p>
Cloudera a / dossier Utilisateur / Hive / Warehouse créé par défaut. C'est juste que le fil et les HDF ne soient peut-être pas opérationnels pour accéder à ce chemin. P>
J'utilise MacOS et Homebrew comme gestionnaire de paquets. Je devais définir la propriété dans Hive-Site.xml comme