Como saber as versões do Hive e do Hadoop no prompt de comando?


89

Como posso descobrir qual versão do Hive estou usando no prompt de comando. Abaixo estão os detalhes-

Estou usando o Putty para me conectar à tabela hive e acessar os registros nas tabelas. Então o que eu fiz foi - abri o Putty e digitei no nome do host - leo-ingesting.vip.name.come então cliquei Open. E então eu digitei meu nome de usuário e senha e, em seguida, alguns comandos para chegar ao Hive sql. Abaixo está a lista do que eu fiz

$ 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;

Então, há alguma maneira no prompt de comando de encontrar qual versão do hive estou usando e a versão do Hadoop também?


1
Posso fazer uma solicitação para que cada CLI no mundo comece a suportar -v, --v, -version e --version como aliases uns para os outros para que possamos seguir em frente com nossas vidas.
jarmod

você não pode: gnu getopt consideraria -version como -v -e -r -s -i -o -n, por exemplo. Além disso, a CLI apropriada usa -v como apelido para --verbose.
Konstantin Svintsov

Respostas:


34

Você não pode obter a versão do hive na linha de comando.

Você pode verificar a versão do hadoop, conforme mencionado por Dave.

Além disso, se você estiver usando a distribuição cloudera, examine diretamente as bibliotecas:

ls / usr / lib / hive / lib / e verifique a biblioteca do hive

hive-hwi-0.7.1-cdh3u3.jar

Você também pode verificar as versões compatíveis aqui:

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


2
Tem certeza que o caminho é /usr/lib/hive/lib/?
arsenal de

@RaihanJamal: Sim, se você estiver usando a distribuição cloudera. :)
pyfunc

1
sim, você pode obtê-lo na linha de comando: hive -e "set hive.hwi.war.file;" | grep hwi | cut -d'- '-f3
David

1
Estou recebendo "hive.hwi.war.file is undefined"
rajibdotnet

9
hive --version mostra a versão. [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,

148
$ hive --version
Hive version 0.8.1.3

EDITAR: adicionado outro '-' antes da versão. Não funciona para versões mais recentes. Espero que funcione para todos agora.

Funciona nas seguintes distribuições:

  • Distribuição HortonWorks: $ hive --version Hive 0.14.0.2.2.0.0-2041
  • CDH 5.3

Não funciona:

  • CDH 4.3
  • HDinsight (Azure)

2
Não tenho ideia de por que alguém votou contra isso, mas funciona para mim. Talvez seja específico para Amazon Elastic MapReduce (EMR) ou para a versão Hive.
dfrankow

1
Eu tenho cloudera 5.11. Funcionou bem para mim
jony70 de

CDH 5.15, funcionou para mim. Aviso de VM do servidor Java HotSpot (TM) de 64 bits: ... Hive 1.1.0-cdh5.15.2 Não sei por que esta resposta está na segunda, não na primeira posição
estática ou

37
$ hadoop version
Hadoop 0.20.2-cdh3u4

Não tenho certeza se você pode obter a versão do Hive na linha de comando. Talvez você possa usar algo como a hive.hwi.war.filepropriedade ou retirá-la do caminho de classe.


Obrigado Dave, funcionou. Estou fazendo esta pergunta porque estou tentando acessar os metadados do Hive usando o SQL Client. Mas de alguma forma não sou capaz de fazer isso. Eu postei a pergunta aqui. Você pode dar uma olhada nisso http://stackoverflow.com/questions/11278040/access-hive-tables-in-sqlclient-but-not-from-the-putty. Qualquer ajuda será apreciada.
arsenal de

@RaihanJamal Não tenho ideia; Nunca tentei usar algo assim com o Hive.
Dave Newton


14

Você pode obter a versão na linha de comando.

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

13
hive -e "set hive.hwi.war.file;" | cut -d'-' -f3

10

O seguinte funciona no Hadoop 2.7.2

hive --version

hadoop version

pig --version

sqoop version

oozie version

9

Use o sinalizador de versão do 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

9

Do problema do shell do hive 'set system.sun.java.command' A versão do hive-cli.jar é a versão do hive.

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

O exemplo acima mostra o Hive versão 0.10.0 para CDH versão 4.2.2


Jai você pode dizer o que isso faz !!
YouAreAwesome

system.sun.java.command já estará definido pelo hive e não fará nada. É uma maneira de descobrir a versão da colmeia.
Jai Prakash


7

Podemos encontrar a versão da colmeia por

  • no shell do Linux: "hive --version"
  • na casca da colmeia: "! hive --version;"

cmds acima funciona na colmeia 0,13 e acima.

Definir sistema: sun.java.command;
fornece a versão do hive do editor de hue hive fornece ao nome do jar que inclui a versão.


5

Abaixo o comando funciona, eu tentei isso e peguei a versão atual como

/usr/bin/hive --version

Olá Shikhar, qual versão do Hadoop você está tentando usar funcionou para mim no cloudera CDH 5
Navneet Kumar

4

Se você estiver usando beelinepara se conectar ao hive, então!dbinfo fornecerá todos os detalhes do banco de dados subjacente e na saída getDatabaseProductVersionterá a versão do banco de dados do hive.

Saída de amostra: getDatabaseProductVersion 1.2.1000.2.4.3.0-227


3

Se você estiver usando a distro do hortonworks, usando a CLI, você pode obter a versão com o comando:

hive --version

Saída de exemplo


3

para identificar a versão do hive em uma instância EC2, use

hive --version

2

Também podemos obter a versão examinando a versão do arquivo jar hive-metastore.

Por exemplo:

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

2

Você pode obter a versão Hive

hive --version

se você deseja saber a versão do hive e suas versões de pacote relacionadas.

rpm -qa|grep hive

A saída será como abaixo.

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

Este último oferece uma melhor compreensão da colmeia e de seus dependentes. No entanto, o rpm precisa estar presente.


2

Use o comando abaixo para obter a versão da colmeia

colmeia - versão do serviço


2

Da sua conexão SSH ao nó de extremidade, você pode simplesmente digitar

hive --version

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

Isso retorna a versão do Hive para sua distribuição do Hadoop. Outra abordagem é se você entrar em beeline, poderá encontrar a versão imediatamente.

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

1

outra maneira é fazer uma chamada REST, se você tiver WebHCat (parte do projeto Hive) instalado, é

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

que vai voltar com JSON como

{"módulo": "colmeia", "versão": "1.2.1.2.3.0.0-2458"}

WebHCat docs tem alguns detalhes


1

Sim, você pode obter a versão de sua colmeia usando o "comando hive":

hive --service version

Você pode obter uma lista de nomes de serviços disponíveis usando o seguinte "comando hive":

hive --service help

0

você pode procurar o arquivo jar assim que fizer login no hive

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 funcionou para mim.

[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

No HDInsight, tentei a colmeia --version, mas ela não reconheceu a opção ou a mencionou na ajuda.

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)

No entanto, quando você faz o login no nó principal e inicia o console do hive, ele imprime algumas informações de configuração úteis a partir das quais a versão pode ser lida:

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;

A partir disso, eu diria que tenho o Hive versão 0.13 implantado, o que é consistente com esta lista de versões https://hive.apache.org/downloads.html


0

Consegui obter a versão do Hadoop 3.0.3 instalado com o seguinte comando
$ HADOOP_HOME / bin $ ./hadoop version
que me deu a seguinte saída

Hadoop 3.0.3
Repositório de código-fonte https: //yjzhangal@git-wip-us.apache.org/repos/asf/hadoop.git -r 37fd7d752db73d984dc31e0cdfd590d252f5e075
Compilado por yzhang em 2018-05-31T17: 12Z
Compilado com protoc
Da fonte com checksum 736cdcefa911261ad56d2d120bf1fa
Este comando foi executado usando /usr/local/hadoop/share/hadoop/common/hadoop-common-3.0.3.jar

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.