Comment connaître les versions Hive et Hadoop à partir de l'invite de commande?


88

Comment puis-je trouver la version de Hive que j'utilise à partir de l'invite de commande. Voici les détails-

J'utilise Putty pour me connecter à la table de la ruche et accéder aux enregistrements dans les tables. Donc ce que j'ai fait c'est - j'ai ouvert Putty et dans le nom d'hôte j'ai tapé leo-ingesting.vip.name.com- puis je clique Open. Et puis j'ai entré mon nom d'utilisateur et mon mot de passe, puis quelques commandes pour accéder à Hive sql. Ci-dessous la liste de ce que j'ai fait

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

Alors, y a-t-il un moyen, à partir de l'invite de commande, de trouver la version de la ruche que j'utilise et la version de Hadoop également?


1
Puis-je demander que chaque CLI du monde commence à prendre en charge -v, --v, -version et --version en tant qu'alias les uns pour les autres afin que nous puissions tous continuer notre vie.
jarmod

vous ne pouvez pas: gnu getopt considérerait -version comme -v -e -r -s -i -o -n, par exemple. De plus, une CLI appropriée utilise -v comme alias pour --verbose.
Konstantin Svintsov

Réponses:


35

Vous ne pouvez pas obtenir la version de la ruche à partir de la ligne de commande.

Vous pouvez commander la version hadoop comme mentionné par Dave.

Aussi, si vous utilisez la distribution cloudera, regardez directement les bibliothèques:

ls / usr / lib / hive / lib / et vérifiez la bibliothèque hive

hive-hwi-0.7.1-cdh3u3.jar

Vous pouvez également vérifier les versions compatibles ici:

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


2
Etes-vous sûr que le chemin est /usr/lib/hive/lib/?
arsenal

@RaihanJamal: Oui si vous utilisez la distribution cloudera. :)
pyfunc

1
oui vous pouvez l'obtenir à partir de la ligne de commande: hive -e "set hive.hwi.war.file;" | grep hwi | cut -d'- '-f3
David

1
Je reçois "hive.hwi.war.file is undefined"
rajibdotnet

9
hive --version montre la version. [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

EDIT: ajouté un autre '-' avant la version. Ne fonctionne pas pour les versions plus récentes. J'espère que cela fonctionne pour tous maintenant.

Connu pour fonctionner dans les distributions suivantes:

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

Ça ne marche pas:

  • CDH 4.3
  • HDinsight (Azure)

2
Je n'ai aucune idée de la raison pour laquelle quelqu'un a refusé cela, mais cela fonctionne pour moi. Peut-être est-ce spécifique à Amazon Elastic MapReduce (EMR) ou à la version Hive.
dfrankow

1
J'ai cloudera 5.11. A bien fonctionné pour moi
jony70

CDH 5.15, a fonctionné pour moi. Avertissement de machine virtuelle Java HotSpot (TM) 64 bits: ... Hive 1.1.0-cdh5.15.2 Je ne sais pas pourquoi cette réponse est sur la deuxième, pas la première position
statique ou

35
$ hadoop version
Hadoop 0.20.2-cdh3u4

Vous n'êtes pas sûr de pouvoir obtenir la version Hive à partir de la ligne de commande. Vous pourriez peut-être utiliser quelque chose comme la hive.hwi.war.filepropriété ou la retirer du chemin de classe, cependant.


Merci Dave, cela a fonctionné. Je pose cette question car j'essaie d'accéder aux métadonnées Hive à l'aide du client SQL. Mais d'une manière ou d'une autre, je ne suis pas capable de le faire. J'ai posté la question ici. Pouvez-vous s'il vous plaît jeter un oeil à cela http://stackoverflow.com/questions/11278040/access-hive-tables-in-sqlclient-but-not-from-the-putty. Toute aide serait appréciée.
arsenal

@RaihanJamal Je n'ai aucune idée; Je n'ai jamais essayé d'utiliser quelque chose comme ça avec Hive.
Dave Newton


14

Vous POUVEZ obtenir la version à partir de la ligne de commande.

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

Ce qui suit fonctionne sur Hadoop 2.7.2

hive --version

hadoop version

pig --version

sqoop version

oozie version

9

À partir du problème du shell de la ruche 'set system.sun.java.command' La version hive-cli.jar est la version 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>

L'exemple ci-dessus montre Hive version 0.10.0 pour CDH version 4.2.2


Jai pouvez-vous dire ce qu'il fait !!
YouAreAwesome

system.sun.java.command sera déjà défini par hive et il ne fait rien. C'est une façon de découvrir la version ruche.
Jai Prakash


8

Utilisez l'indicateur de version de la 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

Nous pouvons trouver la version ruche par

  • sur le shell Linux: "hive --version"
  • sur la coquille de la ruche: "! hive --version;"

ci-dessus cmds fonctionne sur la ruche 0.13 et au-dessus.

Réglez le système: sun.java.command;
donne la version de la ruche de l'éditeur de la ruche hue, il donne le nom du pot qui inclut la version.


5

La commande ci-dessous fonctionne, j'ai essayé ceci et j'ai obtenu la version actuelle comme

/usr/bin/hive --version

Salut Shikhar, quelle version de Hadoop essayez-vous cela a fonctionné pour moi sur cloudera CDH 5
Navneet Kumar

4

Si vous utilisez beelinepour vous connecter à la ruche, vous !dbinfodonnera tous les détails de la base de données sous-jacente et dans la sortiegetDatabaseProductVersion aura la version de la base de données Hive.

Exemple de sortie: getDatabaseProductVersion 1.2.1000.2.4.3.0-227


3

Si vous utilisez la distribution hortonworks, vous pouvez obtenir la version en utilisant l'interface de ligne de commande avec la commande:

hive --version

Exemple de sortie


2

Nous pouvons également obtenir la version en regardant la version du fichier jar hive-metastore.

Par exemple:

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

2

Vous pouvez obtenir la version Hive

hive --version

si vous voulez connaître la version de la ruche et ses versions de package associées.

rpm -qa|grep hive

La sortie sera comme ci-dessous.

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

Ce dernier donne une meilleure compréhension de la ruche et de ses dépendants. Néanmoins, rpm doit être présent.


2

Utilisez la commande ci-dessous pour obtenir la version de la ruche

ruche - version de service


2

De votre connexion SSH au nœud de périphérie, vous pouvez simplement taper

hive --version

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

Cela renvoie la version Hive pour votre distribution de Hadoop. Une autre approche est que si vous entrez beeline, vous pouvez trouver la version immédiatement.

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

1

une autre façon est de faire un appel REST, si vous avez WebHCat (partie du projet Hive) installé, est

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

qui reviendra avec JSON comme

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

La documentation WebHCat contient quelques détails


1

Oui, vous pouvez obtenir la version de votre ruche en utilisant la "commande hive":

hive --service version

Vous pouvez obtenir une liste des noms de services disponibles en utilisant la "commande hive" suivante:

hive --service help

0

vous pouvez rechercher le fichier jar dès que vous vous connectez à la ruche

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 a fonctionné pour moi.

[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

Sur HDInsight, j'ai essayé la ruche --version, mais il n'a pas reconnu l'option ni ne l'a mentionnée dans l'aide.

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)

Cependant, lorsque vous vous connectez au nœud principal et que vous démarrez la console Hive, elle imprime des informations de configuration utiles à partir desquelles la version peut être lue:

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;

À partir de là, je dirais que j'ai déployé la version 0.13 de Hive, ce qui est cohérent avec cette liste de versions https://hive.apache.org/downloads.html


0

J'ai pu obtenir la version de Hadoop 3.0.3 installée par la commande suivante
$ HADOOP_HOME / bin $ ./hadoop version
qui m'a donné la sortie suivante

Dépôt de
code source Hadoop 3.0.3 https: //yjzhangal@git-wip-us.apache.org/repos/asf/hadoop.git -r 37fd7d752db73d984dc31e0cdfd590d252f5e075
Compilé par yzhang le 2018-05-31T17: 12.0Z
Compilé avec protoc
À partir de la source avec somme de contrôle 736cdcefa911261ad56d2d120bf1fa
Cette commande a été exécutée à l'aide de /usr/local/hadoop/share/hadoop/common/hadoop-common-3.0.3.jar


0

pour identifier la version de la ruche sur une instance EC2, utilisez

hive --version
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.