Hallo, ich versuche, Hive im lokalen Modus auszuführen, habe ich die Umgebungsvariable HIVE_OPTS festgelegt
export HIVE_OPTS="-hiveconf
mapred.job.tracker=local
-hiveconf fs.default.name=file:////<myhomedir>/hivelocal/tmp
-hiveconf hive.metastore.warehouse.dir=file:////<myhomedir>/hivelocal/warehouse
-hiveconf javax.jdo.option.ConnectionURL=jdbc:derby:;databaseName=/<myhomedir>/hivelocal/metastore_db;create=true"
und verbunden mit Bienenstock Verwendung hive
Klient
wenn ich die Tabelle (Name demo
), Ich sehe immer noch, dass der Tisch in der erstellt wird default
Datenbank in HDFS. Ich habe erwartet, dass die Tabelle im lokalen Dateisystem erstellt wird (file:///
) wie ich das Lager mit eingestellt habe hive.metastore.warehouse.dir=file:////<myhomedir>/hivelocal/warehouse
Fehle ich hier etwas?
PS: Ich benutze Cloudera Distribution
Antworten:
3 für die Antwort № 1Ich hatte auch das gleiche Problem. Unten sind die Schritte (mit Trial & Error), denen ich gefolgt war, um das gleiche zu beheben.
gehe zu
/etc/hive/conf
& umbenennenhive-site.xml
generiert von Cloudera.Überprüfen Sie die Berechtigung für die
/tmp/hive
und geben Sie entsprechende Erlaubnis. Für den Moment, nur um zu testen, hatte ich gegeben:[cloudera@quickstart ~]$ sudo chmod 777 /tmp/hive/
Konfigurieren Sie den lokalen Modus:
[cloudera@quickstart ~]$ export HIVE_OPTS="-hiveconf mapred.job.tracker=local -hiveconf fs.default.name=file:///home/cloudera/hivelocal/tmp -hiveconf hive.metastore.warehouse.dir=file:///home/cloudera/hivelocal/warehouse –hiveconf javax.jdo.option.ConnectionURL=jdbc:derby:;databaseName=/home/cloudera/hivelocal/metastore_db;create=true"
Tabelle erstellen:
hive> Create table doc_one(text string) row format delimited fields terminated by "n" stored as textfile;
Die Tabelle wurde erfolgreich in erstellt
/home/cloudera/hivelocal/