/ / Konfigurowanie Hive do działania w trybie lokalnym - hadoop, mapreduce, hive, hiveql

Konfigurowanie gałęzi do działania w trybie lokalnym - hadoop, mapreduce, hive, hiveql

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 № 1

Ja 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.

  1. iść do /etc/hive/conf & Przemianować hive-site.xml generowane przez cloudera.

  2. 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/

  3. 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"

  4. Utwórz tabelę:

    hive> Create table doc_one(text string) row format delimited fields terminated by "n" stored as textfile;

  5. Tabela została pomyślnie utworzona w /home/cloudera/hivelocal/