Comment puis-je installer le client hive beeline
sans avoir à installer tout l'écosystème hive / hadoop sur mon ordinateur portable?
Je veux l'utiliser pour interroger une base de données Hive distante.
Comment puis-je installer le client hive beeline
sans avoir à installer tout l'écosystème hive / hadoop sur mon ordinateur portable?
Je veux l'utiliser pour interroger une base de données Hive distante.
Réponses:
Il n'est pas nécessaire d'installer beeline / hive. Tout ce que vous avez à faire est de collecter les pots appropriés de votre système et de les copier et de les placer dans un seul dossier.
Supposons que nous ayons un système source où vous avez beeline et un système cible où vous voulez exécuter beeline.
Sur le système source, collectez les fichiers JAR appropriés dans un dossier. La meilleure façon que j'ai trouvée pour identifier les pots exacts impliqués est d'utiliser l'option jvm:-verbose:class
C'est-à-dire que vous devriez pouvoir émettre une java
commande qui répliquera un appel de commande beeline typique sur le système source.
Copiez ensuite ces fichiers dans un dossier sur le système cible. cd
dans ce dossier pour -classpath
simplifier la référence ultérieurement.
J'utilise une distribution HDP 2.5 Hortonworks. Pour moi, l'invocation suivante sur le système cible fonctionne:
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"
Certains paramètres ne sont probablement pas nécessaires, mais je les ai conservés car c'est ainsi que cela se fait sur le système source. Vous devez utiliser l'invocation java du système source comme modèle de référence.