Î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!
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ă.
- 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.
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
- nu se instalează pur și simplu hadoop în 4 pași LOL – > .
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.
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
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ă.
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")