liunx系统使用Hive-JDBC连接hive一直等待

现象:在本地测试hive-jdbc 可以正常访问,但是打包发布liunx系统中,jdbc连接hive 一直卡住,日志无报错

排查过程:

首先 排查网络是否 telnet ip port 是通的

第二 怀疑是依赖hive-jdbc <exclude> 排包问题,去除排除的包,重新发布,还是依然无法连接

第三  使用arthas 跟踪创建连接方法,但是依然没有报错

第四  终极办法 使用远程debug,发现创建连接的时候 报 notFoundClassError异常 ,org/apache/hadoop/conf/Configuration,它是hadoop-common 包中的类,在lib文件间中未找到,但是项目中pom.xml 已经依赖,查看 assembly.xml 打包控制文件,发现 hadoop相关的类在打包 时排除了!

放开限制后,重新打包,发布到服务器时,创建连接成功!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤在Linux上连接Hive数据库: 1. 安装HadoopHive 2. 确保HadoopHive的环境变量已经设置好 3. 使用JDBC连接Hive数据库 具体步骤如下: 1. 安装HadoopHive 首先,需要在Linux上安装Apache Hadoop和Apache Hive。安装过程不在本文讨论范围内,可以在官方网站上查找相应的文档。 2. 确保HadoopHive的环境变量已经设置好 在连接Hive之前,需要确保HadoopHive的环境变量已经设置好。可以通过运行以下命令检查: ``` echo $HADOOP_HOME echo $HIVE_HOME ``` 如果输出了这两个变量的路径,则表示环境变量已经设置好。 3. 使用JDBC连接Hive数据库 使用JDBC连接Hive数据库需要以下几个步骤: 1. 下载JDBC驱动程序 在Hive安装包中,可以找到JDBC驱动程序的jar文件。将其复制到本地。 2. 创建一个Java项目 在Eclipse或IntelliJ IDEA等集成开发环境中,创建一个Java项目。 3. 导入JDBC驱动程序 将JDBC驱动程序的jar文件导入到Java项目中。 4. 编写Java代码 在Java项目中,编写以下代码: ``` import java.sql.*; public class HiveConnectionTest { private static String driverName = "org.apache.hive.jdbc.HiveDriver"; public static void main(String[] args) throws SQLException, ClassNotFoundException { Class.forName(driverName); Connection connection = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "", ""); Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM my_table"); while (resultSet.next()) { System.out.println(resultSet.getString(1)); } resultSet.close(); statement.close(); connection.close(); } } ``` 在上述代码中,需要将“localhost”替换为Hive服务器的IP地址或主机名。需要设置正确的端口号(通常为10000)。同时,需要替换“my_table”为实际的表名。 5. 运行Java程序 运行Java程序,即可连接Hive数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值