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 向上抛异常_Java 异常的处理方式throws

在昨天的文章《Java 异常的分类与处理》中我们简单地了解了一下在方法声明的位置上使用throws关键字向上抛出异常,下面深入讲解异常的第一种处理方式throws。下面深入讲解异常的第一种处理方式throws。看以下例子:import java.io.*;public class Excepti…

Jquery mobile 解决IOS9selectli闪退问题

升级IOS9后&#xff0c;JQuery mobile 出现了个bug问题。<select>&#xff0c;<ul><li></li></ul> 出现闪退。 解决方法&#xff1a; 必须加在 jquery.js 和 jquerymobile.js 中间 <script src"......../...../jquery-2.0.0.min.js&qu…

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

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

java 实体类规范_实体类的规范

1.Boolean类型1.1.使用Boolean类型,而不是Byte类型1.2.数据库字段名使用is_开头1.3.实体类字段名不使用is开头例子/*** 是否为新消息*/Column(name "is_new_message", nullable false)private Boolean newMessage;2.Enum类型1.使用Convert注解, 并指定coverter类例…

01电话拨号器

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

微信小程序笔记六模块化 —— module.exports

微信小程序中所有 js 文件作用域皆为独立的&#xff0c;每一个 js 文件即为一个模块。模块与模块之间的引用通过 module.exports 或 exports 对外暴露接口。 注意&#xff1a; exports 是 module.exports 的一个引用&#xff0c;因此在模块里边随意更改 exports 的指向会造成未…

java常用的统计_(OJ)Java常用类-统计数字次数

统计数字次数Problem Description命令行输入一个由数字组成的任意字符串,统计出每个数字出现的次数。Input Description1239586838Output Description0 counts:01 counts:12 counts:13 counts:24 counts:05 counts:16 counts:17 counts:08 counts:39 counts:1解题代码import ja…

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().管理短信操作&#xff0c;如发送数据&#xff…

Python运行环境与异常处理

Python的命令格式&#xff1a; python [option] ... [-c cmd | -m mod | file | -] [arg] ... 选项描述-J 启动将从Python3中删除或更改某些功能的警告 -B阻止在导入时创建.pyc或.pyo文件-E忽略环境变量-h打印所有可用命令行选项的列表-i在程序执行后进入交互模式-m module以脚…

Java应用一般架构

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

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

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

微信企业号让IOS不要识别数字为电话号码的方法

最近在开发一个联系人查看功能时&#xff0c;发现IOS端把 8位&#xff0c;11位的数字识别为了 电话号码。 本来是黑色的样式&#xff0c;变成了蓝色的样式&#xff0c;还添加了下划线。点击一下&#xff0c;还可以拨打电话。 这个问题要改&#xff0c;解决方法很简单&#xf…

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

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

Installation error code: -103签名不一致错误

调用Android系统的PackageInstallerActivity进行app安装时&#xff0c;报Installation error code: -103 错误。 原因是&#xff1a;签名问题。 可能是 1、正安装的应用没用签名 2、正安装的应用与已安装的应用包相同&#xff0c;但签名不同。 解决方法&#xff1a; 1、给…

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

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

Android adb命令选择设备操作

当开了多个模拟器时&#xff0c;安装app需要指定虚拟机&#xff0c;否则会提示&#xff1a;error: more than one device and emulator 1、先adb devices 查看设备列表 List of devices attached emulator-5554 device emulator-5556 device 2、使用命令 adb -s emulat…

java 视图解析器_SpringMVC——视图和视图解析器

请求处理方法执行完成后&#xff0c;最终返回一个 ModelAndView对象。对于那些返回 String&#xff0c;View 或 ModeMap 等类型的处理方法&#xff0c;Spring MVC 也会在内部将它们装配成一个ModelAndView 对象&#xff0c;它包含了逻辑名和模型对象的视图Spring MVC 借助视图解…

Android app 应用签名

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

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

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

java redis set list_RedisTemplate的各种操作(set、hash、list、string)_lichuangcsdn的博客-CSDN博客...

注入以下RedisTemplateAutowiredprivate RedisTemplate redisTemplate;1、保存和读取Set&#xff1a;代码示例&#xff1a;SetOperations set redisTemplate.opsForSet(); set.add("set1","22"); set.add("set1","33"); set.add(&quo…