java JDBC 链接hive 操作实例

标签: java jdbc 链接 | 发表时间:2014-12-08 03:18 | 作者:u011561690
出处:http://blog.csdn.net

1.在eclipse下面 导入包,简便方式 new ->mapred project -> 右键 ->选择“Properties”->Java Build Path->Library->Add External Jars 将/usr/hive/lib的所有jar包 添加上。(因为之前的配置 所有jar包 已经包括 java链接mysql的包)。

2. 开启服务接口:

hive --service hiveserver >/dev/null 2>/dev/null & 

        或者:hive --service hiveservice

3. 编写测试代码:

package hive;

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

public class hiveTest {
	/**
	 * @XD
	 */
	private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";
	private static String sql = "";
	private static ResultSet res;
	public static void main(String[] args) throws SQLException {
		// TODO Auto-generated method stub
		try{
			Class.forName(driverName);
		}catch(ClassNotFoundException  e){
			e.printStackTrace();
			System.exit(1);
		}
		Connection conn = DriverManager.getConnection("jdbc:hive://localhost:10000/default", "", "");
		Statement stmt = conn.createStatement();
		//创建的表名
		String tablename = "test";
		
		//stmt.executeQuery(sql)和res = stmt.executeQuery(sql); 成对出现 一面出错
		/**
		 * Tips :sql语句的 注意事项  和hive shell 里面的一致 
		 * 	sql = " drop table " 注意空格的要求 不能紧挨着书写 会出现错误
		 * 
		 * */
		sql = " drop table "+tablename;
		stmt.executeQuery(sql);
		res = stmt.executeQuery(sql);
		
		sql = " create table "+tablename+"(key int,value string)";
		sql += "row format delimited fields terminated by '\t'";
		res = stmt.executeQuery(sql);
		
		/**
		 * test.txt:(分隔符\t)
		 * 1			xd
		 * 2			xd
		 * 3			xd
		 * 
		 * */
		String filepath = "/home/hadoop/桌面/test.txt";
		sql = " load data local inpath '"+filepath+"' overwrite into table "+tablename;
		stmt.executeQuery(sql);
		res = stmt.executeQuery(sql);
		
		sql = "select * from "+tablename ;
		res = stmt.executeQuery(sql);
		while(res.next()){
			System.out.println(res.getInt(1)+"\t"+res.getString(2));
		}
		
		sql = "select * from userinfo" ;
		res = stmt.executeQuery(sql);
		while(res.next()){
			System.out.println(res.getString(1));
		}
		
		//虽然hive创建视图的时候 在hive数据仓库目里显示不出来 但是api链接的是hive数据库 可以将视图显示出来
		sql = "show tables";
		res = stmt.executeQuery(sql);
		while(res.next()){
			System.out.println(res.getString(1));
		}
	}
}
结果如下:

1	xd
2	xd
3	xd

1
2
3

btest
choice
classino
name_classnum //视图名
ptest
t1
test
userinfo



作者:u011561690 发表于2014-12-7 19:18:33 原文链接
阅读:25 评论:0 查看评论

相关 [java jdbc 链接] 推荐:

java JDBC 链接hive 操作实例

- - CSDN博客云计算推荐文章
1.在eclipse下面 导入包,简便方式 new ->mapred project -> 右键 ->选择“Properties”->Java Build Path->Library->Add External Jars 将/usr/hive/lib的所有jar包 添加上. (因为之前的配置 所有jar包 已经包括 java链接mysql的包).

Java HIVE 使用Jdbc连接Hive

- - CSDN博客云计算推荐文章
1,使用Jdbc方式链接hive,首先需要启动hive的Thrift Server,否则会导致错误. hive --service hiveserver   是两”-“,. ----通过Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");加载hive驱动.

正确使用MySQL JDBC setFetchSize()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java hea

- - Java - 编程语言 - ITeye博客
昨天在项目中需要对日志的查询结果进行导出功能. 日志导出功能的实现是这样的,输入查询条件,然后对查询结果进行导出. 之前的解决方案都是多次查询,然后使用limit 限制每次查询的条数. 那么能不能一次查询就把所有结果倒出来了. 于是我就使用一次查询,不使用limit分页. 结果出现 java.lang.OutOfMemoryError: Java heap space问题.

HA-JDBC -

- -
The state manager component is responsible for storing the active status of each database in the cluster, as well as any durability state.

Java Jdbc减少与Oracle之间交互提升批量处理性能,到底该如何优化才好?

- - CSDN博客推荐文章
不拾掇Java有好几年了(N>3吧),之所以写这篇文章其实是纯粹是为了给开发人员一些好的使用jdbc真正去减少交互和提升批量处理batch update性能的例子;  如果你是DBA,那么工作之余你可以把这篇文章推荐给开发看一下, 也许这些例子他已经知道了, 倘若他不知道,那么也算一种福利了. 能考虑到在应用程序client和 数据库服务器DB server间减少交互时间,批量更新处理的绝对是有助于重构和优化代码的好同志;  但这种优化一定要注意方法,如果是自行去重新发明一种轮子的话, 效果往往是不如人意的.

[链接帖] 新的Java语言规范、Java虚拟机规范

- Wong - Script Ahead, Code Behind
随着7月28日,也就是Java SE 7预定的发布日期越来越近,相关的一些规范也已得到或即将得到批准. 这里主要关注的是下面几个规范:. Java语言规范,JSR 901的第三修订版(Maintenance Review 3)已经完成审核但尚未正式得到批准. Java虚拟机规范,JSR 924的第三修订版(Maintenance Review 3)在今年3月19日已经得到批准.

JDBC性能小贴

- - 开源软件 - ITeye博客
本文收集了一些用于提升JDBC性能的方法. Java应用或者JavaEE Web应用的性能是很重要的,尤其是数据库后端对应用的性能影响. 不知你是否经历过Java、JavaEE web应用非常慢的案例没有(处理一个简单的请求都要花上好几秒的时间用于数据库访问,分页、排序等). 下面这些贴士也许能提升Java应用的性能.

oracle的jdbc驱动

- - Oracle - 数据库 - ITeye博客
oracle的jdbc驱动主要有下面三类:.   1、JDBC OCI: oci是oracle call interface的缩写,此驱动类似于传统的ODBC 驱动. 因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件,其实主要是用到orcale客户端里以dll方式提供的oci和服务器配置.

jdbc日志,Log4jbdc-remix使用

- - 企业架构 - ITeye博客
   做项目的时候给jdbc做日志,只打印出代. 由是看看有没有给jdbc做日志的框架. 找到了log4jdbc,但是觉得还不是很理想,由是又看了看,还有一个护展插件log4jdbc-remix. 先不扯这么多,先来教大家怎么使用吧. 使用这个插件依赖4个类:log4j,slf4j-log4j,slf4j-api,log4j-remix.

JDBC事务控制管理

- - 编程语言 - ITeye博客
事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 例如:A——B转帐,对应于如下两条sql语句. 数据库默认事务是自动提交的,也就是发一条sql它就执行一条. 如果想多条sql放在一个事务中执行,则需要使用如下语句. 方式一:利用SQL语句管理事务. start transaction;--开启事务,这条语句之后的sql语句将处在一个事务当中,这些sql语句并不会立即执行.