Cześć Próbuję uruchomić Hive w trybie lokalnym, ustawiłem zmienną środowiskową HIVE_OPTS
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"
i podłączone do ula za pomocą hive
klient
kiedy tworzę stół (imię demo
), Nadal widzę, że stół jest tworzony w default
baza danych w HDFS. Spodziewałem się, że tabela zostanie utworzona w lokalnym systemie plików (file:///
), ponieważ mam zestaw za pomocą magazynu hive.metastore.warehouse.dir=file:////<myhomedir>/hivelocal/warehouse
Czy coś mi umyka?
PS: Używam dystrybucji Cloudera
Odpowiedzi:
3 dla odpowiedzi № 1Ja też zmagałem się z tym samym problemem. Poniżej znajdują się kroki (z próbą i błędem), które podjąłem, aby naprawić to samo.
iść do
/etc/hive/conf
& Przemianowaćhive-site.xml
generowane przez cloudera.sprawdź uprawnienia do pliku
/tmp/hive
i dać odpowiednie pozwolenie. Na razie, po prostu do przetestowania, dałem:[cloudera@quickstart ~]$ sudo chmod 777 /tmp/hive/
Skonfiguruj tryb lokalny:
[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"
Utwórz tabelę:
hive> Create table doc_one(text string) row format delimited fields terminated by "n" stored as textfile;
Tabela została pomyślnie utworzona w
/home/cloudera/hivelocal/