hive2 java连接_用Java代码通过JDBC连接Hiveserver2

1.在终端启动hiveserver2

#hiveserver2

2.使用beeline连接hive

另外打开一个终端,输入如下命令(xavierdb必须是已经存在的数据库)

#beeline -u jdbc:hive2://localhost:10000/xavierdb -n hive -p hive

3.添加maven依赖

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

org.apache.hive

hive-jdbc

1.1.0

junit

junit

4.9

org.apache.hadoop

hadoop-common

2.6.0

org.apache.hadoop

hadoop-client

2.6.0

org.apache.hive

hive-metastore

1.1.0

org.apache.hive

hive-exec

1.1.0

maven依赖

出现过的错误: Error: Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000/default

解决办法:检查发现运行beeline时Driver版本Driver: Hive JDBC (version 1.1.0-cdh5.16.1)比maven依赖中的Driver版本低,将maven版本调至1.1.0问题解决

Java API测试:

注意:这里的url必须是beeline值中使用的url

package TestOption;

import org.junit.Test;

import org.junit.After;

import org.junit.Before;

import java.sql.*;

/**

* @Author:Xavier

* @Data:2019-02-18 11:43

**/

public class HiveOption {

private static String driverName = "org.apache.hive.jdbc.HiveDriver";

private static String url = "jdbc:hive2://172.19.224.213:10000/xavierdb";

private static Connection con = null;

private static Statement state = null;

private static ResultSet res = null;

//加载驱动,创建连接

@Before

public void init() throws ClassNotFoundException, SQLException {

Class.forName(driverName);

con = DriverManager.getConnection(url, "hive", "hive");

state = con.createStatement();

}

//创建数据库

@Test

public void CreateDb() throws SQLException {

state.execute("create database xavierdb1");

}

// 查询所有数据库

@Test

public void selectDb() throws SQLException {

res = state.executeQuery("show databases");

while (res.next()) {

System.out.println(res.getString(1));

}

}

// 删除数据库

@Test

public void dropDb() throws SQLException {

state.execute("drop database if exists xavierdb1");

}

// 创建表

@Test

public void createTab() throws SQLException {

state.execute("create table if not exists student ( " +

"name string , " +

"age int , " +

"agent string ," +

"adress struct) " +

"row format delimited " +

"fields terminated by ',' " +//字段与字段之间的分隔符

"collection items terminated by ':'"+//一个字段各个item的分隔符

"lines terminated by '\n' ");//行分隔符

}

// 查询所有表

@Test

public void selectTab() throws SQLException {

res=state.executeQuery("show tables");

while(res.next()){

System.out.println(res.getString(1));

}

}

// 查看表结构

@Test

public void descTab() throws SQLException {

res=state.executeQuery("desc student");

while(res.next()){

System.out.println(res.getString(1)+"\t"+res.getString(2));

}

}

// 加载数据(本地加载)

@Test

public void loadData() throws SQLException {

String infile=" '/root/studentData' ";

state.execute("load data local inpath "+infile+"overwrite into table student");

}

// 查询数据

@Test

public void selectTab() throws SQLException {

res=state.executeQuery("select * from student");

while(res.next()){

System.out.println(

res.getString(1)+"-"+

res.getString(2)+"-"+

res.getString(3)+"-"+

res.getString(4));

}

}

// 统计查询(会运行mapreduce作业,资源开销较大)

@Test

public void countData() throws SQLException {

res=state.executeQuery("select count(1) from student");

while(res.next()){

System.out.println(res.getInt(1));

}

}

// 删除表

@Test

public void dropTab() throws SQLException {

state.execute("drop table student1");

}

@After

public void destory() throws SQLException {

if (res != null) state.close();

if (state != null) state.close();

if (con != null) con.close();

}

}

标签:JDBC,Java,res,void,hive,throws,Hiveserver2,state,public

来源: https://www.cnblogs.com/xavier-xd/p/10399581.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA通过SSL证书创建MS AD账户及设置密码

近期由于工作需要整理一下自动化的东西,因为公司去年上线了OA,所以公司的入职系统会提交用户的信息到IT部门,最早的做法是入职到了,IT部门收集用户信息在AD中创建对应的用户信息,所以为了提高管理员的工作效率&#xf…

01电话拨号器

实例非常简单,意在体验Android的Intent,用户权限。 Intent 见 http://blog.csdn.net/zengmingen/article/details/49586045 用户权限 见 http://blog.csdn.net/zengmingen/article/details/49586569 --------------------------------------------------…

02发送短信

使用SmsManager发送短信java.lang.Object ↳android.telephony.SmsManagerManages SMS operations such as sending data, text, and pdu SMS messages. Get this object by calling the static method SmsManager.getDefault().管理短信操作,如发送数据&#xff…

Java应用一般架构

原文链接:http://www.iteye.com/news/31115 当我们架设一个系统的时候通常需要考虑到如何与其他系统交互,所以我们首先需要知道各种系统之间是如何交互的,使用何种技术实现。 1. 不同系统不同语言之间的交互 现在我们常见的不同系统不同语…

Mac MongoDB未正常关闭导致重启失败

你可以删除掉mongod.lock文件,然后重新启动,如果还是不可以,你可以查看一下进程,然后杀掉: ps -aef | grep mongo sudo kill 1076 再重启数据库即可。

powerdns与nginx结合实现以域名和IP方式访问web服务器80端口时分别跳转到不同页面...

1.powerdns设置 2.内部网站介绍 web服务器采用nginx,内网dns采用powerdns. 想实现的功能如下 通过ip访问时跳转到A页面,通过域名访问时,让其跳转到B页面。两种方式的端口均为80. 页面A对应的nginx配置 server { listen 80; …

java代码块是对象吗_面向对象(Java中普通代码块,构造代码块,静态代码块区别及代码示例)...

//静态代码块:在java中使用static关键字声明的代码块。静态块用于初始化类,为类的属性初始化。每个静态代码块只会执行一次。由于JVM在加载类时会执行静态代码块,所以静态代码块先于主方法执行。//如果类中包含多个静态代码块,那么将按照&quo…

Android app 应用签名

为什么要签名? 这个要从Android的系统设计来解释。 ---Android系统中的每个应用都是一个用户,应用的包名(清单文件中 package的值)就是用户名。 当一个已安装的应用A和一个正要安装的应用B,它们的包名相同&#xff…

[.Net线程处理系列]专题五:线程同步——事件构造

引言: 其实这部分内容应该是属于专题四,因为这篇也是讲关于线程同步的,但是由于考虑到用户的阅读习惯问题,因为文章太长了,很多人不是很愿意看包括我也是这样的,同时也有和我说可以把代码弄成折叠的&#x…

闪屏页面(Splash)开发

业余作品--365安全卫士 ------------------------------------------- 闪屏页面(Splash):app刚启动时的页面 作用: 1、展示公司品牌logo 2、应用初始化。如游戏app第一次启动初始化数据 3、检测新版本。 4、检测程序合法性。如 招商银行app在启动…

matlab2016b ubuntu命令行安装 + matconvnet的安装

0. 下载安装包 下载的文件有Matlab 2016b Linux64 Crack.rar,R2016b_glnxa64_dvd2.iso,R2016b_glnxa64_dvd1.iso。 1. 拷贝安装文件并上传服务器 在Windows下用虚拟光驱打开,并将R2016b_glnxa64_dvd1.iso和R2016b_glnxa64_dvd2.iso所有内容复…

java 责任链模式 链表_责任链模式的实现及源码中应用

01—责任链模式的实现假设一个出差任务的流程需要审批出差行程和出差报销金额。那么,对应两个部门的审核。我们先定义一个出差任务Task类:然后,我们定义一个抽象的处理类Handler,其中具体的处理方法Handle交给子类去实现。然后&am…

php setcookie 过期,php cookie怎么设置过期时间?

PHP中可以使用setcookie()函数设置cookie的过期时间。语法为“setcookie(name,value,expire,path,domain,secure)”;其中expire参数用于指定cookie的有效期,即过期时间戳。setcookie() 函数向客户端发送一个 HTTP cookie。cookie 是由服务器发送到浏览器…

jQuery Mobile动态刷新页面样式

见 百度经验 http://jingyan.baidu.com/article/7f766dafbc18f24101e1d014.html JQM里面当我们更新了某些页面标签(如: listview, radiobuttons, checkboxes, select menus)里的数据时,必须做refresh操作. 为什么必须做refresh操作操作呢?因为JQM在做页面渲染的时候,为了使样…

R-CNN论文翻译

R-CNN论文翻译Rich feature hierarchies for accurate object detection and semantic segmentation用于精确物体定位和语义分割的丰富特征层次结构2017-11-29摘要过去几年,在权威数据集PASCAL上,物体检测的效果已经达到一个稳定水平。效果最好的方法是融…

sass、gulp应用

Sass介绍n CSS 不是一个编程语言,可以用它来开发网页样式,但是没有办法用它进行编程。SASS 的出现,让 CSS 实现了通过代码编程来实现的方式。n SASS 是一种 CSS 开发工具,提供了许多便利的写法,让CSS 的处理实现了可编…

自定义控件SettingItemView

一、效果图 选中&#xff1a;显示自动更新开启不选择&#xff1a;显示自动更新关闭------------在布局文件中的使用方式和android自生的控件一样 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.andro…

php中如何存储多个文本框,php-如何将每个字符的文本框拆分为多个子文本框

我正在设计一个PHP表单,其中包含一些输入字段,如下图所示.如何将输入类型(文本框)拆分为单个字符子文本框,或将文本框拆分为给定字符串的每个字符的多列文本框.以及如何在其中插入数据| JOHN DOE |进入| J | O | H | N | | D | O | E |这样解决方法:的HTML的CSS#text{backgroun…

为什么会有 AOP

为什么80%的码农都做不了架构师&#xff1f;>>> AOP 面向切面的编程。 先上三张图片 三处对数据库进行操作&#xff0c; 但这三处有大量的重复的代码&#xff0c;每次都是获取session&#xff0c;获取mapper&#xff0c;执行&#xff0c; commit&#xff0c;close…

Android应用检查更新下载安装打开

一、效果 低版本1.02检测到新版本1.03 调用android的安装activity页面 安装完成 打开 1.03版本 二、注意 必须使用签名的应用。因为android不管是虚拟机还是真机安装应用都需要签名。 在开发时&#xff0c;我们运行程序时&#xff0c;开发环境ADT会自动给我们加入一个默认的…