Come posso installare il client hive beeline
senza dover installare tutto l'ecosistema hive / hadoop sul mio laptop?
Voglio usarlo per interrogare un database Hive remoto.
Come posso installare il client hive beeline
senza dover installare tutto l'ecosistema hive / hadoop sul mio laptop?
Voglio usarlo per interrogare un database Hive remoto.
Risposte:
Non è necessario installare beeline / hive. Tutto quello che devi fare è raccogliere i vasetti pertinenti dal tuo sistema e copiarli e posizionarli in una singola cartella.
Supponiamo di avere un sistema di origine in cui si trova beeline e un sistema di destinazione in cui si desidera eseguire beeline.
Sul sistema di origine raccogliere i vasetti pertinenti in una cartella. Il modo migliore che ho trovato per identificare i barattoli esatti coinvolti è usare l'opzione jvm:-verbose:class
Vale a dire, dovresti essere in grado di emettere un java
comando che replicherà una tipica chiamata di comando beeline sul sistema di origine.
Quindi copiare quei file in una cartella sul sistema di destinazione. cd
a quella cartella per rendere -classpath
semplice il riferimento in seguito.
Uso una distro Hortonworks HDP 2.5. Per me, la seguente chiamata sul sistema di destinazione funziona:
java -Xmx1024m -classpath apache-log4j-extras-1.2.17.jar:avatica-1.8.0.2.5.0.0-1245.jar:calcite-core-1.2.0.2.5.0.0-1245.jar:calcite-linq4j-1.2.0.2.5.0.0-1245.jar:commons-cli-1.2.jar:commons-codec-1.4.jar:commons-collections-3.2.2.jar:commons-configuration-1.6.jar:commons-lang-2.6.jar:commons-logging-1.1.3.jar:curator-client-2.6.0.jar:curator-framework-2.6.0.jar:derby-10.10.2.0.jar:guava-14.0.1.jar:hadoop-annotations-2.7.3.2.5.0.0-1245.jar:hadoop-auth-2.7.3.2.5.0.0-1245.jar:hadoop-common-2.7.3.2.5.0.0-1245.jar:hadoop-mapreduce-client-core-2.7.3.2.5.0.0-1245.jar:hive-beeline-1.2.1000.2.5.0.0-1245.jar:hive-exec-1.2.1000.2.5.0.0-1245.jar:hive-jdbc-1.2.1000.2.5.0.0-1245.jar:hive-jdbc-1.2.1000.2.5.0.0-1245-standalone.jar:jce.jar:jline-2.12.jar:jsse.jar:log4j-1.2.16.jar:rt.jar:slf4j-log4j12-1.7.10.jar:sunec.jar:sunjce_provider.jar:super-csv-2.2.0.jar:xercesImpl-2.9.1.jar -Dhdp.version=2.5.0.0-1245 -Djava.net.preferIPv4Stack=true -Dhdp.version=2.5.0.0-1245 -Dhadoop.log.dir=/home/userid -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/home/userid -Dhadoop.id.str=userid -Dhadoop.root.logger=INFO,console -Djava.library.path=:/home/userid -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Djava.util.logging.config.file=/home/userid/parquet-logging.properties -Dlog4j.configuration=beeline-log4j.properties -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar /home/userid/hive-beeline-1.2.1000.2.5.0.0-1245.jar org.apache.hive.beeline.BeeLine -n userid -p pass -u "jdbc:hive2://knox.company.com:8000/;ssl=true;transportMode=http;httpPath=gateway/tdcprd/hive"
Alcuni dei parametri probabilmente non sono necessari, ma li ho conservati perché è così che viene fatto sul sistema di origine. È necessario utilizzare l'invocazione Java del sistema di origine come modello di riferimento.