java.net.ConnectException: Eroare de conexiune refuzată la rularea Hive (Programare, Hadoop, Hive)

ouonomos a intrebat.

Încerc să lucrez la un tutorial hive în care introduc următoarele:

load data local inpath '/usr/local/Cellar/hive/0.11.0/libexec/examples/files/kv1.txt' overwrite into table pokes;

Aceasta are ca rezultat următoarea eroare:

FAILED: RuntimeException java.net.ConnectException: Call to localhost/127.0.0.1:9000 failed on connection exception: java.net.ConnectException: Connection refused

Văd că există niște răspunsuri pe SA care au legătură cu configurarea adresei ip și a gazdei locale, dar nu sunt familiarizat cu conceptele din răspunsuri. Aș aprecia orice îmi puteți spune despre fundamentele care cauzează acest tip de răspuns și cum să îl remediez. Mulțumesc!

6 răspunsuri
vishnu viswanath

Acest lucru se datorează faptului că hive nu este capabil să contacteze dvs. namenode

Verificați dacă dvs. hadoop serviciile a pornit corect.

Rulați comanda jps pentru a vedea care sunt toate serviciile care rulează.

Comentarii

  • Vă mulțumim pentru răspunsul dumneavoastră. Din $jps primesc doar: „26349 Jps”. –  > Por ouonomos.
  • asta înseamnă că niciunul dintre serviciile hadoop nu rulează. ați configurat hadoop? –  > Por vishnu viswanath.
  • Mulțumesc. Cred că mi-am dat seama – când porniți hive, trebuie să rulați mai întâi scriptul start-all.sh, corect? După ce am făcut asta, am obținut lista completă a serviciilor jps și a dispărut ConnectException. Am interpretat greșit start-all.sh ca fiind ceva ce trebuie făcut doar o singură dată în timpul configurării inițiale. –  > Por ouonomos.
  • aveți dreptate 🙂 start-all va porni toate serviciile hadoop. V-aș sugera să porniți namenode și datanode separat și să rulați start-mapred.sh. În acest fel, puteți vedea cu ușurință ce se întâmplă în aceste noduri. Acest lucru vă va ajuta la depanare. –  > Por vishnu viswanath.
Haimei

Motivul pentru care primiți această eroare este că Hive are nevoie de hadoop ca bază. Deci, trebuie să porniți mai întâi Hadoop.

Iată câțiva pași.

Pasul 1: descărcați hadoop și descompuneți-l

Pasul 2: cd #your_hadoop_path

Pasul3: ./bin/hadoop namenode -format

Pasul 4: ./sbin/start-all.sh

Și apoi, întoarceți-vă la #your_hive_path și porniți din nou hive

Comentarii

  • nu se instalează pur și simplu hadoop în 4 pași LOL –  > Por Karavana.
Amey Jadiye

Modul ușor pe care l-am găsit pentru a edita fișierul /etc/hosts. în mod implicit arată astfel

127.0.0.1    localhost
127.0.1.1    user_user_name

editați și transformați 127.0.1.1 în 127.0.0.0.1 și gata, reporniți shell-ul și reporniți clusterul prin start-all.sh.

lukalau

aceeași întrebare la configurarea hive. rezolvat prin schimbarea /etc/hostname-ului meu

anterior este user_machine_name după ce l-am schimbat în localhost, apoi a mers bine

Cred că se datorează faptului că hadoop ar putea dori să vă rezolve numele de gazdă folosind acest fișier /etc/hostname, dar l-a direcționat către numele dvs. de utilizator_mașină în timp ce serviciul hadoop rulează pe localhost

Keshav Pradeep Ramanath

Am reușit să rezolv problema executând comanda de mai jos:

start-all.sh

Acest lucru ar asigura că serviciul Hive a pornit.

Apoi, pornirea Hive a fost simplă.

Vadim Zin4uk

Am avut o problemă similară cu un timeout al conexiunii:

WARN DFSClient: Failed to connect to /10.165.0.27:50010 for block, add to deadNodes and continue. java.net.ConnectException: Connection timed out: no further information

DFSClient rezolva nodurile prin IP intern. Iată soluția pentru aceasta:

.config("spark.hadoop.dfs.client.use.datanode.hostname", "true")

Tags:,