Jak poznać wersje Hive i Hadoop z wiersza polecenia?


88

Jak mogę znaleźć używaną wersję programu Hive w wierszu polecenia. Poniżej znajdują się szczegóły-

Używam Putty do łączenia się z tabelą ula i uzyskiwania dostępu do rekordów w tabelach. Więc co zrobiłem - otworzyłem Putty i wpisałem nazwę hosta - leo-ingesting.vip.name.coma potem kliknąłem Open. Następnie wpisałem swoją nazwę użytkownika i hasło, a następnie kilka poleceń, aby dostać się do Hive sql. Poniżej znajduje się lista tego, co zrobiłem

$ bash
bash-3.00$ hive
Hive history file=/tmp/rkost/hive_job_log_rkost_201207010451_1212680168.txt
hive> set mapred.job.queue.name=hdmi-technology;
hive> select * from table LIMIT 1;

Czy jest jakiś sposób z wiersza polecenia, aby znaleźć używaną wersję gałęzi i wersję Hadoop?


1
Czy mogę zażądać, aby każdy pojedynczy CLI na świecie zaczął obsługiwać -v, --v, -version i --version jako aliasy dla siebie nawzajem, abyśmy wszyscy mogli po prostu żyć dalej.
jarmod

nie możesz: gnu getopt potraktowałoby -version jako -v -e -r -s -i -o -n, na przykład. Ponadto, właściwy CLI używa -v jako aliasu dla --verbose.
Konstantin Svintsov

Odpowiedzi:


35

Nie można pobrać wersji gałęzi z wiersza poleceń.

Możesz sprawdzić wersję hadoopa, o której wspomniał Dave.

Również jeśli używasz dystrybucji Cloudera, spójrz bezpośrednio na biblioteki:

ls / usr / lib / hive / lib / i sprawdź bibliotekę hive

hive-hwi-0.7.1-cdh3u3.jar

Możesz również sprawdzić kompatybilne wersje tutaj:

http://www.cloudera.com/content/cloudera/en/documentation/cdh5/v5-1-x/CDH-Version-and-Packaging-Information/CDH-Version-and-Packaging-Information.html


2
Czy na pewno ścieżka jest /usr/lib/hive/lib/?
arsenał

@RaihanJamal: Tak, jeśli używasz dystrybucji Cloudera. :)
pyfunc

1
tak, możesz go pobrać z linii poleceń: hive -e "set hive.hwi.war.file;" | grep hwi | cut -d'- '-f3
David

1
Otrzymuję informację „hive.hwi.war.file is undefined”
rajibdotnet

9
hive --version pokazuje wersję. [root@mysupercomputer ~]# hive --version Hive 1.2.1 Subversion git://localhost.localdomain/home/sush/dev/hive.git -r 243e7c1ac39cb7ac8b65c5bc6988f5cc3162f558 Compiled by sush on Fri Jun 19 02:03:48 PDT 2015 From source with checksum ab480aca41b24a9c3751b8c023338231
Sridhar

146
$ hive --version
Hive version 0.8.1.3

EDYCJA: dodano kolejny znak „-” przed wersją. Nie działa w nowszych wersjach. Mam nadzieję, że teraz to działa dla wszystkich.

Znany z pracy w następujących dystrybucjach:

  • Dystrybucja HortonWorks: $ hive --version Hive 0.14.0.2.2.0.0-2041
  • CDH 5.3

To nie działa:

  • CDH 4,3
  • HDinsight (Azure)

2
Nie mam pojęcia, dlaczego ktoś to zlekceważył, ale dla mnie to działa. Może jest specyficzny dla Amazon Elastic MapReduce (EMR) lub dla wersji Hive.
dfrankow

1
Mam Cloudera 5.11. Działało dobrze dla mnie
jony70

CDH 5.15, działał dla mnie. Java HotSpot (TM) 64-bitowy serwer VM Ostrzeżenie: ... Hive 1.1.0-cdh5.15.2 Nie wiem, dlaczego ta odpowiedź jest na drugiej, a nie pierwszej pozycji
statyczny lub

35
$ hadoop version
Hadoop 0.20.2-cdh3u4

Nie jestem jednak pewien, czy możesz pobrać wersję Hive z wiersza poleceń. Może jednak mógłbyś użyć czegoś takiego jak hive.hwi.war.filewłasność lub wyciągnąć ją ze ścieżki klas.


Dzięki Dave, zadziałało. Zadaję to pytanie, ponieważ próbuję uzyskać dostęp do metadanych Hive za pomocą klienta SQL. Ale jakoś nie jestem w stanie tego zrobić. Opublikowałem pytanie tutaj. Czy mógłbyś przyjrzeć się temu http://stackoverflow.com/questions/11278040/access-hive-tables-in-sqlclient-but-not-from-the-putty. Każda pomoc zostanie doceniona.
arsenał

@RaihanJamal Nie mam pojęcia; Nigdy nie próbowałem używać czegoś takiego z Hive.
Dave Newton,


14

Możesz pobrać wersję z wiersza poleceń.

hive> select version();
OK
1.1.0-cdh5.12.0 rUnknown
Time taken: 2.815 seconds, Fetched: 1 row(s)
hive>


10

Poniższe działa na Hadoop 2.7.2

hive --version

hadoop version

pig --version

sqoop version

oozie version

9

Z problemu z powłoką ula „set system.sun.java.command” Wersja hive-cli.jar jest wersją gałęzi.

<code>
hive> set system:sun.java.command;
system:sun.java.command=org.apache.hadoop.util.RunJar /opt/cloudera/parcels/CDH-4.2.2-1.cdh4.2.2.p0.10/bin/../lib/hive/lib/hive-cli-**0.10.0**-cdh**4.2.2**.jar org.apache.hadoop.hive.cli.CliDriver
hive> 
</code>

Powyższy przykład przedstawia Hive w wersji 0.10.0 dla CDH w wersji 4.2.2


Jai, czy możesz powiedzieć, co to robi !!
YouAreAwesome

System.sun.java.command zostanie już ustawiony przez gałąź i nic nie robi. To jedyny sposób, aby dowiedzieć się, jaka jest wersja ula.
Jai Prakash


8

Użyj flagi wersji z CLI

[hadoop@usernode~]$ hadoop version
Hadoop 2.7.3-amzn-1
Subversion git@aws157git.com:/pkg/Aws157BigTop -r d94115f47e58e29d8113a887a1f5c9960c61ab83
Compiled by ec2-user on 2017-01-31T19:18Z
Compiled with protoc 2.5.0
From source with checksum 1833aada17b94cfb94ad40ccd02d3df8
This command was run using /usr/lib/hadoop/hadoop-common-2.7.3-amzn-1.jar


[hadoop@usernode ~]$ hive --version
Hive 1.0.0-amzn-8
Subversion git://ip-20-69-181-31/workspace/workspace/bigtop.release-rpm-4.8.4/build/hive/rpm/BUILD/apache-hive-1.0.0-amzn-8-src -r d94115f47e58e29d8113a887a1f5c9960c61ab83
Compiled by ec2-user on Tue Jan 31 19:51:34 UTC 2017
From source with checksum 298304aab1c4240a868146213f9ce15f

7

Możemy znaleźć wersję ula wg

  • w powłoce systemu Linux: „hive --version”
  • w powłoce ula: "! hive --version;"

powyżej cmds działa na ulu 0.13 i nowszych.

Ustaw system: sun.java.command;
podaje wersję gałęzi z edytora hue hive. podaje nazwę jar zawierającą wersję.


5

Poniższe polecenie działa, próbowałem tego i otrzymałem aktualną wersję jako

/usr/bin/hive --version

Cześć Shikhar, która wersja Hadoop, którą próbujesz, zadziałała dla mnie na Cloudera CDH 5
Navneet Kumar

4

Jeśli używasz beelinedo łączenia się z gałęzią, !dbinfopoda wszystkie szczegóły podstawowej bazy danych i dane wyjściowegetDatabaseProductVersion będą miały wersję bazy danych gałęzi.

Przykładowe dane wyjściowe: getDatabaseProductVersion 1.2.1000.2.4.3.0-227


3

Jeśli używasz dystrybucji hortonworks, za pomocą CLI możesz pobrać wersję za pomocą polecenia:

hive --version

Przykładowe dane wyjściowe


2

Wersję możemy również pobrać, patrząc na wersję pliku jar hive-metastore.

Na przykład:

$ ls /usr/lib/hive/lib/ | grep metastore
hive-metastore-0.13.1.jar

2

Możesz pobrać wersję Hive

hive --version

jeśli chcesz poznać wersję gałęzi i powiązane wersje pakietów.

rpm -qa|grep hive

Wynik będzie taki jak poniżej.

libarchive2-2.5.5-5.19
hive-0.13.0.2.1.2.2-516
perl-Archive-Zip-1.24-2.7
hive-jdbc-0.13.0.2.1.2.2-516
webhcat-tar-hive-0.13.0.2.1.2.2_516-2
hive-webhcat-0.13.0.2.1.2.2-516
hive-hcatalog-0.13.0.2.1.2.2-516

Ta ostatnia daje lepsze zrozumienie ula i jego zależnych. Niemniej jednak rpm musi być obecny.



2

Od połączenia SSH do węzła brzegowego możesz po prostu wpisać

hive --version

Hive 1.2.1000.x.x.x.x-xx

Spowoduje to zwrócenie wersji Hive dla Twojej dystrybucji Hadoop. Innym podejściem jest to, że jeśli wejdziesz beeline, możesz od razu znaleźć wersję.

beeline
Beeline version 1.2.1000.x.x.x.x-xx by Apache Hive

1

Innym sposobem jest wywołanie REST, jeśli masz zainstalowany WebHCat (część projektu Hive)

curl -i http://172.22.123.63:50111/templeton/v1/version/hive?user.name=foo

który wróci z JSON jak

{"module": "hive", "version": "1.2.1.2.3.0.0-2458"}

Dokumentacja WebHCat zawiera kilka szczegółów


1

Tak, możesz pobrać wersję swojego ula za pomocą „polecenia hive”:

hive --service version

Listę dostępnych nazw usług można uzyskać, używając następującego „polecenia hive”:

hive --service help

0

możesz szukać pliku jar zaraz po zalogowaniu się do ula

jar:file:/opt/mapr/hive/hive-0.12/lib/hive-common-0.12-mapr-1401-140130.jar!/hive-log4j.properties

0

/ usr / bin / hive --version działało dla mnie.

[qa@ip-10-241-1-222 ~]$ /usr/bin/hive --version
Hive 0.13.1-cdh5.3.1
Subversion file:///data/1/jenkins/workspace/generic-package-rhel64-6-0/topdir/BUILD/hive-0.13.1-cdh5.3.1 -r Unknown
Compiled by jenkins on Tue Jan 27 16:38:55 PST 2015
From source with checksum 1bb86e4899928ce29cbcaec8cf43c9b6
[qa@ip-10-241-1-222 ~]$

0

W usłudze HDInsight wypróbowałem gałąź - wersja, ale nie rozpoznała opcji ani nie wspomniała o niej w pomocy.

D:\Users\admin1>%hive_home%/bin/hive --version
Unrecognized option: --version
usage: hive
 -d,--define <key=value>          Variable subsitution to apply to hive
                                  commands. e.g. -d A=B or --define A=B
    --database <databasename>     Specify the database to use
 -e <quoted-query-string>         SQL from command line
 -f <filename>                    SQL from files
 -H,--help                        Print help information
 -h <hostname>                    connecting to Hive Server on remote host
    --hiveconf <property=value>   Use value for given property
    --hivevar <key=value>         Variable subsitution to apply to hive
                                  commands. e.g. --hivevar A=B
 -i <filename>                    Initialization SQL file
 -p <port>                        connecting to Hive Server on port number
 -S,--silent                      Silent mode in interactive shell
 -v,--verbose                     Verbose mode (echo executed SQL to the
                                  console)

Jednak kiedy logujesz się do węzła głównego i uruchamiasz konsolę gałęzi, wyświetla kilka pomocnych informacji konfiguracyjnych, z których można odczytać wersję:

D:\Users\admin1>%hive_home%/bin/hive 
Logging initialized using configuration in file:/C:/apps/dist/hive-0.13.0.2.1.11.0-2316/conf/hive-log4j.properties
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/apps/dist/hadoop-2.4.0.2.1.11.0-2316/share/hadoop/common/lib/slf4j-log4j12-1.7.5.j
ar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/apps/dist/hbase-0.98.0.2.1.11.0-2316-hadoop2/lib/slf4j-log4j12-1.6.4.jar!/org/slf4
j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
hive> quit;

Na tej podstawie powiedziałbym, że mam wdrożoną wersję Hive 0.13, co jest zgodne z listą wersji https://hive.apache.org/downloads.html


0

Udało mi się uzyskać wersję zainstalowanego Hadoop 3.0.3 za pomocą następującego polecenia
$ HADOOP_HOME / bin $ ./hadoop version,
które dało mi następujące dane wyjściowe


Repozytorium kodu źródłowego Hadoop 3.0.3 https: //yjzhangal@git-wip-us.apache.org/repos/asf/hadoop.git -r 37fd7d752db73d984dc31e0cdfd590d252f5e075
Skompilowane przez yzhang w dniu 2018-05-31T17: 12Z
Skompilowane z protokołem 2018-05-31T17: 12Z
Ze źródła z sumą kontrolną 736cdcefa911261ad56d2d120bf1fa
To polecenie zostało uruchomione za pomocą /usr/local/hadoop/share/hadoop/common/hadoop-common-3.0.3.jar


0

do identyfikacji wersji gałęzi w przypadku użycia instancji EC2

hive --version
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.