hive-jdbc-__-standalone.jar 的正确位置是啥?
Posted
技术标签:
【中文标题】hive-jdbc-__-standalone.jar 的正确位置是啥?【英文标题】:What is the proper location for hive-jdbc-__-standalone.jar?hive-jdbc-__-standalone.jar 的正确位置是什么? 【发布时间】:2016-02-15 02:15:33 【问题描述】:本指南设置 hive 0.14: http://www.ishaanguliani.com/content/hive-0140-setup-ubuntu
建议如果出现错误:
Logging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-0.14.0.jar!/hive-log4j.properties
SLF4J: Class path contains multiple SLF4J bindings.
遇到文件 hive-jdbc-0.14.0-standalone.jar 必须从 $HIVE_HOME/lib/ 中移出
但是当我运行beeline时,由于文件不存在而出错:
$ $HIVE_HOME/bin/beeline -u jdbc:hive2://localhost:10000
ls: cannot access /usr/local/hive/lib/hive-jdbc-*-standalone.jar: No such file or directory
什么是正确的做法?
【问题讨论】:
SLF4J 警告是一个小麻烦。现在每个 Java 混蛋(和他的狗)都想在他的 JAR 中捆绑实用程序类,以便您在 CLASSPATH 中获得所有内容的多个版本。只有 SLF4J 发出警告,其余的不关心,那场战斗早就输了,Maven 规则,所有 Hadoop 发行版都是一团糟。 底线:只需学会忽略multiple SLF4J bindings
消息,就像您忽略网页上的广告一样。
【参考方案1】:
您可以执行以下任何操作 执行以下任何操作
RCA:在 hive2.1 中,hive-jdbc-*-standalone.jar 文件在 $HIVE_LIB 中不存在,但在 $HIVE_HOME/jdbc 目录中。
** 系统规范 ** hive-2.1 二进制 java1.8 CentOS Linux release 7.1.1503 (Core)
可能的解决方案:
将 jar 文件复制到脚本预期的目录。 容易,但我不喜欢保留多个文件
bash# cp $HIVE_HOME/jdbc/hive-jdbc-2.1.0-standalone.jar $HIVE_HOME/lib/hive-jdbc-2.1.0-standalone.jar
或
创建指向 jar 文件的链接以指向脚本预期的目录
(我的首选方法)。
bash# ln -s $HIVE_HOME/jdbc/hive-jdbc-2.1.0-standalone.jar $HIVE_HOME/lib/hive-jdbc-2.1.0-standalone.jar
编辑文件 $HIVE_HOME/bin/ext/beeline.sh
bash# vi +27 $HIVE_HOME/bin/ext/beeline.sh
编辑行
jdbcStandaloneJarPath=`ls $HIVE_LIB/hive-jdbc-*-standalone.jar`
to
jdbcStandaloneJarPath=`ls $HIVE_HOME/jdbc/hive-jdbc-*-standalone.jar`
【讨论】:
以上是关于hive-jdbc-__-standalone.jar 的正确位置是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot 里面引入hive-jdbc包,依赖冲突,tomcat启动不了
使用HIVE-JDBC+TOMCAT-JDBC连接(CONNECTION)中断的处理过程