¿Cómo puedo instalar el cliente beeline
Hive sin tener que instalar todo el ecosistema Hive / Hadoop en mi computadora portátil?
Quiero usarlo para consultar una base de datos remota de Hive.
¿Cómo puedo instalar el cliente beeline
Hive sin tener que instalar todo el ecosistema Hive / Hadoop en mi computadora portátil?
Quiero usarlo para consultar una base de datos remota de Hive.
Respuestas:
No es necesario instalar beeline / hive. Todo lo que tiene que hacer es recopilar los frascos relevantes de su sistema y copiarlos y colocarlos en una sola carpeta.
Supongamos que tenemos un sistema de origen donde tiene línea recta y un sistema de destino donde desea ejecutar línea recta.
En el sistema de origen, recopile los frascos relevantes en una carpeta. La mejor manera que he encontrado para identificar los frascos exactos involucrados es usar la opción jvm:-verbose:class
Es decir, debería poder emitir un java
comando que replicará una invocación típica de comando en línea recta en el sistema de origen.
Luego copie esos archivos en una carpeta en el sistema de destino. cd
a esa carpeta para simplificar la -classpath
referencia más tarde.
Yo uso una distribución HDP 2.5 Hortonworks. Para mí, la siguiente invocación en el sistema de destino funciona:
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"
Probablemente algunos de los parámetros no sean necesarios, pero los conservé porque así es como se hace en el sistema fuente. Debe usar la invocación de Java del sistema de origen como patrón de referencia.