Hadoop et Hive étant relativement nouveaux, cette question est peut-être très stupide et pourtant, je ne passais que la majeure partie de la journée à chercher une réponse. Je dois trouver le mappage entre les tables Hive et les fichiers HDFS réels (ou plutôt les répertoires) qu'ils représentent. J'ai besoin d'accéder directement aux fichiers de la table. Aider quelqu'un?
Réponses
Trop de publicités?L'emplacement où elles sont stockées sur le HDFS est assez facile à comprendre une fois que vous savez où chercher. :)
Si vous allez à l' http://NAMENODE_MACHINE_NAME:50070/
dans votre navigateur, cela devrait vous amener à une page avec un Browse the filesystem
lien.
Dans l' $HIVE_HOME/conf
répertoire, il y est l' hive-default.xml
et/ou hive-site.xml
qui a hive.metastore.warehouse.dir
de la propriété. Cette valeur est l'endroit où vous souhaitez naviguer après avoir cliqué sur l' Browse the filesystem
lien.
Dans le mien, c'est /usr/hive/warehouse
. Une fois que je navigue à cet endroit, je vois le nom de mes tables. En cliquant sur un nom de table (qui est juste un dossier) exposera ensuite les partitions de la table. Dans mon cas, j'ai actuellement ne l'ai partitionné sur date
. Quand je clique sur le dossier à ce niveau, je vais donc voir les fichiers (plus de partitionnement aura plus de niveaux). Ces fichiers sont où les données sont enregistrées sur le HDFS.
Je n'ai pas tenté d'accéder à ces fichiers directement, je suis en supposant qu'il peut être fait. Je prendrais le plus GRAND soin, si vous envisagez de les éditer. :)
Pour moi, j'en avais trouver un moyen de faire ce dont j'ai besoin sans accès direct à la Ruche des données sur le disque. Si vous avez besoin d'accéder à des données brutes, vous pouvez utiliser une requête de la Ruche et afficher le résultat dans un fichier. Elles ont exactement la même structure (séparateur entre les colonnes, ect) que les fichiers sur l' HDFS
. Je ne requêtes comme ça tout le temps et les convertir en CSVs.
La section sur comment écrire des données à partir de requêtes sur le disque est http://wiki.apache.org/hadoop/Hive/LanguageManual/DML#Writing_data_into_filesystem_from_queries
HTH