Hive:用Java代码通过JDBC连接Hiveserver

Similar documents
Flume-ng与Mysql整合开发

Spark读取Hbase中的数据

使用MapReduce读取XML文件

Apache CarbonData集群模式使用指南

使用Cassandra和Spark 2.0实现Rest API服务

Guava学习之Resources

通过Hive将数据写入到ElasticSearch

使用Spark SQL读取Hive上的数据

在Spring中使用Kafka:Producer篇

三种方法实现Hadoop(MapReduce)全局排序(1)

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

Flink快速上手(QuickStart)

FileMaker 15 ODBC 和 JDBC 指南

FileMaker 16 ODBC 和 JDBC 指南


天津天狮学院关于修订2014级本科培养方案的指导意见

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

EJB-Programming-4-cn.doc

SparkR(R on Spark)编程指南

untitled

Kafka客户端是如何找到 leader 分区的

韶关:神奇丹霞

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

untitled

哼, 你 們 不 回 答 又 怎 麼 樣? 不 管 是 多 大 來 頭, 現 在 都 被 血 魔 吞 噬 無 蹤 了 你 們 幾 個 真 是 太 過 分, 我 不 犯 你 們, 你 們 卻 一 天 到 晚 來 挑 釁 我 教 尊 冷 笑 著 說 道 嗚, 大 人 土 地 大 姐 跪 下 來, 流 下

JavaIO.PDF

Hadoop元数据合并异常及解决方法

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

伊春:醉人林都

IoC容器和Dependency Injection模式.doc

《大话设计模式》第一章

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

关林:武圣陵寝

泰山:五岳独尊

“百企入校——广西青年企业家协会高校

Ubuntu和CentOS如何配置SSH使得无密码登陆

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

国内26省市新能源汽车推广规划已出台

教学〔2016〕120号

内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

Hive几种数据导入方式

北戴河:海阔天空

六种使用Linux命令发送带附件的邮件

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票


西岭雪山滑雪场

Microsoft Word 電腦軟體設計.doc

Java

Chapter 9: Objects and Classes

在Fedora上部署Hadoop2.2.0伪分布式平台

Spark作业代码(源码)IDE远程调试

EJB-Programming-3.PDF

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

2 Java 语 言 程 序 设 计 教 程 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

untitled

Java 1 Java String Date

電機工程系認可證照清單 /7/1

使用 XFire 与 Spring 开发 Web Service 2 实现功能与特点 基于 J2EE 平台的 Web Service 服务 开发方便, 配置简单 设计接口 实现服务 配置暴露接口 XFire 将自动生成对应的 wsdl 支持高级详细配置 与 Spring 无缝集成 运行环境 JDK

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

chp6.ppt

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

Microsoft Word - 安徽商贸职业技术学院高等职业教育质量年度报告(2015).doc

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Microsoft Word - 01.DOC

Java ¿ª·¢ 2.0: Óà Hadoop MapReduce ½øÐдóÊý¾Ý·ÖÎö

TopTest_Adminstrator.doc

江门:中国第一侨乡

大连软~1

Hadoop 2.2.0安装和配置lzo

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->








1

是 喔, 就 是 那 個 在 BBS 醫 療 版 跟 你 嗆 聲, 自 稱 有 三 十 多 年 推 拿 經 驗 的 大 叔 嗎? 一 個 看 來 頗 為 清 秀 的 女 生 問 道, 她 語 氣 中 略 感 訝 異 是 啊, 什 麼 推 拿 按 摩 有 多 好, 還 要 人 生 病 盡 量 不 要

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

<4D F736F F D A617661B7C3CECA53514C BEDDBFE2B5C4C9E8BCC6D3EBCAB5CFD62E646F63>

( 总 第 1073 期 ) 浙 江 省 人 民 政 府 主 办 2015 年 3 月 17 日 出 版 省 政 府 令 省 政 府 文 件 目 录 浙 江 省 大 型 群 众 性 活 动 安 全 管 理 办 法 ( 浙 江 省 人 民 政 府 令 第 333 号 ) (3) 浙 江 省 人 民 政

Flink快速上手之Scala API使用

BPS6.0 Web服务集成和短流程功能使用手册

教育扩张能改善收入分配差距吗?——来自CHNS2006年数据的证据

山水文化,市井人家——以湖州邱城小镇的概念性规划为例

untitled

Partition Key: 字 符 串 类 型, 表 示 当 前 Entity 的 分 区 信 息 这 个 Property 对 于 Table Service 自 动 纵 向 和 横 向 扩 展 至 关 重 要 Row Key: 字 符 串 类 型, 在 给 定 Partition Key 的

11 天 山 区 区 环 卫 清 运 队 机 械 工 程 师 4011 C 1 不 限 不 限 机 电 具 有 两 以 工 作 经 12 天 山 区 乌 鲁 木 齐 市 第 15 小 会 计 4012 C 1 不 限 不 限 会 计 财 会 财 电 算 化 临 床 医 预 防 医 公 共 卫 生 与

untitled

目 录 1 爱 游 戏 业 务 及 游 戏 大 厅 ( 客 户 端 ) 简 介 什 么 是 爱 游 戏 业 务 什 么 是 游 戏 大 厅 ( 客 户 端 ) 游 戏 大 厅 ( 客 户 端 ) 主 要 功 能 游 戏 大 厅

行 业 市 场 研 究 属 于 企 业 战 略 研 究 范 畴, 作 为 当 前 应 用 最 为 广 泛 的 咨 询 服 务, 其 研 究 报 告 形 式 呈 现, 通 常 包 含 以 下 内 容 : 一 份 专 业 的 行 业 研 究 报 告, 注 重 指 导 企 业 或 投 资 者 了 解 该

三种方法实现Hadoop(MapReduce)全局排序(2)

计 算 机 系 统 应 用 年 第 25 卷 第 4 期 线 程 的 复 用 [2,3]. 通 常 情 况 下, 服 务 器 端 程 序 在 启 动 时 创 建 若 干 数 量 的 线 程 对 象 并 缓 存 起 来, 此 时 它 们 处 于

HBase 中加盐(Salting)之后的表如何读取:协处理器篇

基于CDIO一体化理念的课程教学大纲设计

1. 访 问 最 新 发 行 公 告 信 息 jconnect for JDBC 访 问 最 新 发 行 公 告 信 息 最 新 版 本 的 发 行 公 告 可 以 从 网 上 获 得 若 要 查 找 在 本 产 品 发 布 后 增 加 的 重 要 产 品 或 文 档 信 息, 请 访

基于ECO的UML模型驱动的数据库应用开发1.doc

64 [ 46 ] (p297) 1924 :? [ 47 ] (p570) ; ; ; ; ; ; ; ; ; ; ; [ 11 ]; [ 35 ] [ 49 ] [ 32 ] ( ) [ 48 ] (p 425) [ 50 ] (p 670 6

"+handlermethod.getbean().getclass().getname()); public void aftercompletion(httpservletrequest req, HttpServletResponse resp, Object handler, Excepti

Transcription:

Hive: 用 Java 代码通过 JDBC 连接 Hiveserver 我们可以通过 CLI Client Web UI 等 Hive 提供的用户接口来和 Hive 通信, 但这三种方式最常用的是 CLI;Client 是 Hive 的客户端, 用户连接至 Hive Server 在启动 Client 模式的时候, 需要指出 Hive Server 所在节点, 并且在该节点启动 Hive Server WUI 是通过浏览器访问 Hive 今天我们来谈谈怎么通过 HiveServer 来操作 Hive Hive 提供了 jdbc 驱动, 使得我们可以用 Java 代码来连接 Hive 并进行一些类关系型数据库的 sql 语句查询等操作 同关系型数据库一样, 我们也需要将 Hive 的服务打开 ; 在 Hive 0.11.0 版本之前, 只有 HiveServer 服务可用, 你得在程序操作 Hive 之前, 必须在 Hive 安装的服务器上打开 HiveServer 服务, 如下 : [wyp@localhost /home/q/hive-0.11.0]$ bin/hive --service hiveserver -p 10002 Starting Hive Thrift Server 上面代表你已经成功的在端口为 10002( 默认的端口是 10000) 启动了 hiveserver 服务 这时候, 你就可以通过 Java 代码来连接 hiveserver, 代码如下 : package com.wyp; /** * User: 过往记忆 * Blog: https://www.iteblog.com/ * Date: 13-11-27 * Time: 下午 5:52 */ import java.sql.sqlexception; import java.sql.connection; import java.sql.resultset; import java.sql.statement; import java.sql.drivermanager; public class HiveJdbcTest { private static String drivername = "org.apache.hadoop.hive.jdbc.hivedriver"; public static void main(string[] args) throws SQLException { try { Class.forName(driverName); catch (ClassNotFoundException e) { 1 / 5

e.printstacktrace(); System.exit(1); Connection con = DriverManager.getConnection("jdbc:hive://localhost:10002/default", "w yp", ""); Statement stmt = con.createstatement(); String tablename = "wyphao"; stmt.execute("drop table if exists " + tablename); stmt.execute("create table " + tablename + " (key int, value string)"); System.out.println("Create table success!"); // show tables String sql = "show tables '" + tablename + "'"; ResultSet if (res.next()) { System.out.println(res.getString(1)); // describe table sql = "describe " + tablename; System.out.println(res.getString(1) + "\t" + res.getstring(2)); sql = "select * from " + tablename; System.out.println(String.valueOf(res.getInt(1)) + "\t" + res.getstring(2)); sql = "select count(1) from " + tablename; System.out.println(res.getString(1)); 2 / 5

编译上面的代码, 之后就可以运行 ( 我是在集成开发环境下面运行这个程序的 ), 结果如下 : Create table success! Running: show tables 'wyphao' wyphao Running: describe wyphao key int value string Running: select count(1) from wyphao 0 Process finished with exit code 0 如果你想在脚本里面运行, 请将上面的程序打包成 jar 文件, 并将上面的依赖库放在 /home/wyp/li b/( 这个根据你自己的情况弄 ) 中, 同时加入到运行的环境变量, 脚本如下 : #!/bin/bash HADOOP_HOME=/home/q/hadoop-2.2.0 HIVE_HOME=/home/q/hive-0.11.0-bin CLASSPATH=$CLASSPATH: for i in /home/wyp/lib/*.jar ; do CLASSPATH=$CLASSPATH:$i done echo $CLASSPATH /home/q/java/jdk1.6.0_20/bin/java -cp $CLASSPATH:/export1/tmp/iteblog/OutputText.jar co m.wyp.hivejdbctest 上面是用 Java 连接 HiveServer, 而 HiveServer 本身存在很多问题 ( 比如 : 安全性 并发性等 ); 针对这些问题,Hive0.11.0 版本提供了一个全新的服务 :HiveServer2, 这个很好的解决 HiveServer 存在的安全性 并发性等问题 这个服务启动程序在 ${HIVE_HOME/bin/hiveserver2 里面, 你可以通过下面的方式来启动 HiveServer2 服务 : $HIVE_HOME/bin/hiveserver2 3 / 5

也可以通过下面的方式启动 HiveServer2 $HIVE_HOME/bin/hive --service hiveserver2 两种方式效果都一样的 但是以前的程序需要修改两个地方, 如下所示 : private static String drivername = "org.apache.hadoop.hive.jdbc.hivedriver"; 改为 private static String drivername = "org.apache.hive.jdbc.hivedriver"; Connection con = DriverManager.getConnection("jdbc:hive://localhost:10002/default", "wyp", " "); 改为 Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10002/default", "wyp", ""); 其他的不变就可以了 这里顺便说说本程序所依赖的 jar 包, 一共有以下几个 : hadoop-2.2.0/share/hadoop/common/hadoop-common-2.2.0.jar $HIVE_HOME/lib/hive-exec-0.11.0.jar $HIVE_HOME/lib/hive-jdbc-0.11.0.jar $HIVE_HOME/lib/hive-metastore-0.11.0.jar $HIVE_HOME/lib/hive-service-0.11.0.jar $HIVE_HOME/lib/libfb303-0.9.0.jar $HIVE_HOME/lib/commons-logging-1.0.4.jar $HIVE_HOME/lib/slf4j-api-1.6.1.jar 如果你是用 Maven, 加入以下依赖 <dependency> <groupid>org.apache.hive</groupid> <artifactid>hive-jdbc</artifactid> <version>0.11.0</version> 4 / 5

Powered by TCPDF (www.tcpdf.org) Hive: 用 Java 代码通过 JDBC 连接 Hiveserver </dependency> <dependency> <groupid>org.apache.hadoop</groupid> <artifactid>hadoop-common</artifactid> <version>2.2.0</version> </dependency> 本博客文章除特别声明, 全部都是原创! 转载本文请加上 : 转载自过往记忆 (https://www.iteblog.com/) 本文链接 : () 5 / 5