Como posso instalar o cliente hive beeline
sem ter que instalar todo o ecossistema hive / hadoop no meu laptop?
Eu quero usá-lo para consultar um banco de dados remoto do Hive.
Como posso instalar o cliente hive beeline
sem ter que instalar todo o ecossistema hive / hadoop no meu laptop?
Eu quero usá-lo para consultar um banco de dados remoto do Hive.
Respostas:
Não é necessário instalar o beeline / hive. Tudo o que você precisa fazer é coletar os frascos relevantes do seu sistema, copiá-los e colocá-los em uma única pasta.
Suponha que tenhamos um sistema de origem no qual você esteja em linha reta e um sistema de destino em que você deseja executá-la.
No sistema de origem, colete os frascos relevantes em uma pasta. A melhor maneira que encontrei para identificar os frascos exatos envolvidos é usar a opção jvm:-verbose:class
Ou seja, você poderá emitir um java
comando que replicará uma chamada típica de comando do beeline no sistema de origem.
Em seguida, copie esses arquivos em uma pasta no sistema de destino. cd
para essa pasta para -classpath
simplificar a referência posteriormente.
Eu uso uma distro HDP 2.5 Hortonworks. Para mim, a seguinte invocação no 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"
Alguns dos parâmetros provavelmente não são necessários, mas eu os mantive porque é assim que é feito no sistema de origem. Você deve usar a chamada java do sistema de origem como um padrão de referência.