java 操作hive通过jdbc

直接代码吧:记得要开启hive jdbc服务hive --service hiveserver

package hive;

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

public class HiveDemo {

	static{
		//注册jdbc驱动
		try {
			Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static void main(String[] args) throws Exception {
		//创建连接
		Connection conn = DriverManager.getConnection("jdbc:hive://hadoop:10000/default","","");
		//System.out.println(conn);
		Statement st = conn.createStatement();
		String tableName = "u1_data";
		//删除表
		st.executeQuery("drop table "+tableName);
		//创建表
		ResultSet rs = st.executeQuery("create table "+tableName+"("
				+ "userid int,"
				+ "movieid int,"
				+ "rating int,"
				+ "city string,"
				+ "viewTime string"
				+ ")"
				+ "row format delimited "
				+ "fields terminated by ‘\t‘ "
				+ "stored as textfile");
		//显示所有的表
		String sql = "show tables";
		System.out.println("running:"+sql);
		rs = st.executeQuery(sql);
		if(rs.next()){
			System.out.println(rs.getString(1));
		}
		//得到表信息
		sql = "describe "+tableName;
		System.out.println("running:"+sql);
		rs = st.executeQuery(sql);
		while(rs.next()){
			System.out.println(rs.getString(1)+"\t"+rs.getString(2));
		}
		//加载数据
		String filePath = "hdfs://hadoop:9000/input";
		sql = "load data inpath ‘"+filePath+"‘ overwrite into table "+tableName;
		System.out.println("running:"+sql);
		rs = st.executeQuery(sql);
		//查询数据
		sql = "select * from "+tableName+" limit 5";
		System.out.println("running:"+sql);
		rs = st.executeQuery(sql);
		while(rs.next()){
			System.out.println(rs.getString(3)+"\t"+rs.getString(4));
		}
		//查询数量
		sql = "select count(*) from "+tableName;
		System.out.println("running:"+sql);
		rs = st.executeQuery(sql);
		while(rs.next()){
			System.out.println(rs.getString(1));
		}
		//关闭资源
		rs.close();
		st.close();
		conn.close();
	}
}

java 操作hive通过jdbc

时间: 2024-10-11 10:04:03

java 操作hive通过jdbc的相关文章

【Hive】JDBC操作

1 package com.java.hadoop.hive; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 import java.sql.SQLException; 8 import java.sql.Statement; 9 10 import org.apache.had

JDBC——java操作数据库的一系列接口

一.JDBC概述(mysql) 1.Java DataBase Connective 1)概念:JDBC其实就是一套Java操作数据库的规范(接口); 2)数据库驱动: 各个数据库厂商要让java语言去操作数据库就必须实现这套接口,每个数据库都写有一套实现类叫数据库驱动. 3)使用: //导入mysql数据库jar包 //将jar放在lib目录下 右键add--->builderpath //加载驱动 Class.forName("com.mysql.jdbc.Driver");

java连接Hive的几种方式

测试环境 Hadoop 0.20.2版本.Hive-0.5.0版本.JDK1.6 1.一般来说我们对hive的操作都是通过cli来进行,也就是Linux的控制台,但是,这样做本质上是每个连接都存放一个元数据,各个之间都不相同,所以,对于这样的模式我建议是用来做一些测试比较合适,并不适合做产品的开发和应用. 2.JDBC连接的方式,当然还有其他的连接方式,比如ODBC等, 这种方式很常用,可以在网上随便找到,就不再累赘了. 不稳定,经常会被大数据量冲挂,不建议使用. 3.这种方式是直接利用Hive

Gradle实战:执行sql操作hive数据库

查看原文:http://blog.csdn.net/u010818425/article/details/52490628 Gradle实战系列文章: <Gradle基本知识点与常用配置> <Gradle实战:Android多渠道打包方案汇总> <Gradle实战:不同编译类型的包同设备共存> <Gradle实战:发布aar包到maven仓库> 本文将介绍使用groovy+sql的脚本,实现从hive抓取数据,为方便理解,重要语句有详细注释,关键处已标明“关

Hive中jdbc接口

1.hive开放jdbc接口,开发需要导入jar如下 commons-logging-1.0.4.jarhadoop-common-2.6.0.jarhive_exec.jarhive_jdbc.jarhive_metastore.jarhive_service.jarhttpclient-4.2.5.jarhttpcore-4.2.5.jarlibfb303.jarlog4j-1.2.16.jarslf4j-api-1.7.5.jarslf4j-log4j12-1.7.5.jar 2.开发的实

java 操作oracle 建表,更新记录

1.  建立表的类 import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.PreparedStatement; public class lx01{ public static void main(String[] args) throws SQLException, ClassNotFoundE

presto集群安装&整合hive|mysql|jdbc

Presto是一个运行在多台服务器上的分布式系统. 完整安装包括一个coordinator(调度节点)和多个worker. 由客户端提交查询,从Presto命令行CLI提交到coordinator. coordinator进行解析,分析并执行查询计划,然后分发处理队列到worker中. 目录: 搭建前环境准备 集群计划 连接器 安装步骤 配置文件 运行presto 整合hive测试 整合mysql测试 整合jdbc测试 1.搭建前环境准备 CentOS 6.7 java8 Python3.4.4

通过 Spark R 操作 Hive

作为数据工程师,我日常用的主力语言是R,HiveQL,Java与Scala.R是非常适合做数据清洗的脚本语言,并且有非常好用的服务端IDE--RStudio Server:而用户日志主要储存在hive中,因此用HiveQL写job也是日常工作之一:当然R的执行效率确实不靠谱,因此还需要Java(Elasticsearch,Hadoop的原生语言)与Scala(Spark的原生语言)的帮助. R和python一样也是一个很好的胶水语言,在搜索引擎的实战中,我就是用R来完成了ES集群索引的全量/增量

java操作office和pdf文件java读取word,excel和pdf文档内容

在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应用.如果想深入了解原理.请读者自行研究一些相关源码. 首先我们来认识一下读取相关文档的jar包: 1. 引用POI包读取word文档内容 poi.jar 下载地址 http://apache.freelamp.com/poi/release/bin/poi-bin-3.6-20091214.zip