通过程序查询linux环境上的hive上的表数据

前提:

linux环境ip:192.168.9.228

已经在linux环境上部署好了hadoop+hive环境,具体介绍上一篇文章有相关介绍,可以参考下,此篇主要介绍如果在本机windows环境下通过eclipse写程序连接linux服务上的hive,并进行相关查询操作

1:首先在228的linux的hive的bin目录hive --service hiveserver 50031 & 启动hive的服务端环境;


2:然后打开本机windows环境打开eclipse,新建一个工程hive,并导入hive的lib目录下的jar和hadoop目录下的jar,然后新建一个classs类HiveTestCase,代码如下:

package com.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class HiveTestCase {

   public static void main(String[] args) throws Exception {
         Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
         
         String dropSQL="drop table javabloger";
         String createSQL="create table javabloger (key int, value string) row format delimited  fields terminated by '\t'";
        //hive插入数据支持两种方式一种:load文件,令一种为从另一个表中查询进行插入(感觉这是个鸡肋)

        //hive是不支持insert into...values(....)这种操作的

        String insterSQL="LOAD DATA LOCAL INPATH '/home/yf/files/kv1.txt' OVERWRITE INTO TABLE javabloger ";
         String querySQL="SELECT a.* FROM javabloger a";
         Connection con = DriverManager.getConnection("jdbc:hive://192.168.9.228:50031/default", "", "");
         Statement stmt = con.createStatement();
         stmt.executeQuery(dropSQL);  // 执行删除语句
         stmt.executeQuery(createSQL);  // 执行建表语句
         stmt.executeQuery(insterSQL);  // 执行插入语句
         ResultSet res = stmt.executeQuery(querySQL);   // 执行查询语句
         
           while (res.next()) {
             System.out.println("Result: key:"+res.getString(1) +"  –>  value:" +res.getString(2));
         }
    }
   
}

然后在228的linux服务器上创建/home/yf/files/kv1.txt文件,并填入如下内容:

1       a
2       b
3       c
4       d

注:1列与2列数据之间以tab键隔开,然后保存。


最后在HiveTestCase类中通过右键选Run As =》Application执行,输出如下内容说明连接hive成功,并成功查询相关数据结果!

Result: key:1  –>  value:a
Result: key:2  –>  value:b
Result: key:3  –>  value:c
Result: key:4  –>  value:d


实现相关数据的录入、查询、删除操作。


注意要导入hadoop的jar包,否则会报NoClassDefFoundError: org/apache/hadoop/io/Writable异常。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值