package cn.com.hivedemo.hivedemo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.hadoop.hive.jdbc.HiveDriver;
/**
* Hello world!
使用java操作hive,用maven进行管理依赖
使用java操作hive,用maven进行管理依赖
* hive --service hiveserver -p 50000 &
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>0.9.0</version>
<exclusions>
<exclusion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>0.20.2</version>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>0.8.0</version>
</dependency>
<dependency>
<groupId>javax.jdo</groupId>
<artifactId>jdo2-api</artifactId>
<version>2.3-eb</version>
</dependency>
</dependencies>
*/
public class App
{
public static void main( String[] args ) throws Exception
{
System.out.println( "Hello World!" );
// createTableDemo();
// insertTableDemo();
// selectDemo();
countDemo();
showTablesDemo();
}
private static final String URLHIVE = "jdbc:hive://hadoop0:50000/default";
private static Connection connection = null;
public static Connection getHiveConnection() {
if (null == connection) {
synchronized (HiveDriver.class) {
if (null == connection) {
try {
Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
connection = DriverManager.getConnection(URLHIVE, "", "");
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
}
return connection;
}
public static void createTableDemo() throws SQLException {
String tweetTableSql = "create TABLE IF not EXISTS student1(name String,age int)";
System.out.println("=====createTableDemo begin========");
Statement stmt = getHiveConnection().createStatement();
stmt.execute(tweetTableSql);
stmt.close();
System.out.println("=====createTableDemo end========");
}
public static void insertTableDemo() throws SQLException {
String tweetTableSql = "LOAD DATA LOCAL INPATH '/opt/stu.txt' OVERWRITE INTO TABLE student1";
System.out.println("=====insertTableDemo begin========");
Statement stmt = getHiveConnection().createStatement();
stmt.execute(tweetTableSql);
stmt.close();
System.out.println("=====insertTableDemo end========");
}
public static void selectDemo() throws SQLException {
String tweetTableSql = "select * from student1";
System.out.println("=====selectDemo begin========");
Statement stmt = getHiveConnection().createStatement();
ResultSet rs = stmt.executeQuery(tweetTableSql);
while(rs.next()){
System.out.println(rs.getString(1)+rs.getString(2));
}
System.out.println("=====selectDemo end========");
}
public static void selectDemo1() throws SQLException {
String tweetTableSql = "select * from student1 where name='MM'";
System.out.println("=====selectDemo begin========");
Statement stmt = getHiveConnection().createStatement();
ResultSet rs = stmt.executeQuery(tweetTableSql);
while(rs.next()){
System.out.println(rs.getString(1)+rs.getString(2));
}
System.out.println("=====selectDemo end========");
}
public static void countDemo() throws SQLException {
String tweetTableSql = " select count(*) from student1 ";
System.out.println("=====countDemo begin========");
Statement stmt = getHiveConnection().createStatement();
ResultSet rs = stmt.executeQuery(tweetTableSql);
while(rs.next()){
System.out.println(rs.getString(1));
}
System.out.println("=====countDemo end========");
}
public static void showTablesDemo() throws SQLException {
String tweetTableSql = " show tables ";
System.out.println("=====showTablesDemo begin========");
Statement stmt = getHiveConnection().createStatement();
ResultSet rs = stmt.executeQuery(tweetTableSql);
while(rs.next()){
System.out.println(rs.getString(1));
}
System.out.println("=====showTablesDemo end========");
}
/**
* JDK使用1.6.0.x
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/hadoop/hive/metastore/api/MetaException : Unsupported major.minor version 51.0
换成1.8就OK
*
*/
相关推荐
在Java代码中,我们可以通过`DriverManager.getConnection()`方法来实现。下面是一个基本的示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class...
2. **Java API for Hive**:Hive提供了Java API,允许开发者通过编写Java代码来连接、查询和操作Hive数据库。这个API包括Hive JDBC驱动和Hive Metastore服务客户端,使得Java应用程序能够与Hive Server交互。 3. **...
基于hadoop的Hive数据仓库JavaAPI简单调用的实例,关于Hive的简介在此不赘述。hive提供了三种用户接口:CLI,JDBC/ODBC和 WebUI CLI,即Shell命令行 ...这时候,你就可以通过Java代码来连接hiveserver,代码如下:
HiveJDBC是Hive提供的一种JDBC驱动,使得任何支持JDBC的应用程序,如Java,都能连接到Hive服务器,执行查询和操作Hive中的数据。在这个实例中,我们将使用它来连接到运行MySQL作为元数据存储的Hive服务。 2. **...
以下是一段基本的Java代码示例,展示了如何使用JDBC连接到Hive: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class ...
在Java代码中,首先需要创建一个`DriverManager.getConnection()`实例,提供Hive服务器的URL、用户名和密码。例如: ```java String url = "jdbc:hive2://localhost:10000/default;principal=hive/_HOST@YOUR-...
在你的压缩包文件"my-test-poi"中,可能包含了测试用的Excel文件或其他与该过程相关的Java代码。你可以根据这些文件进行实际操作,以便更好地理解和实现这个功能。 总的来说,通过Java结合Apache POI库,我们可以...
本篇将详细介绍如何在Spring MVC框架中配置Kerberos认证,并通过Java代码与Hive建立安全连接。 首先,`Kerberos认证`是一种基于票据的认证机制,它通过三向握手确保了通信双方的身份,并防止中间人攻击。在Hive中...
《大数据Java操作Hive》 本文主要探讨了如何在Java环境下操作Hive,涉及Hive的基本操作、数据库和表的创建、数据导入以及Eclipse中使用Maven进行Java连接Hive的方法。 首先,Hive是一种基于Hadoop的大数据处理工具...
Spark与Hive的集成允许我们直接操作Hive表,将Hive数据转换为Spark DataFrame,这样就可以利用Spark的并行计算能力进行数据预处理和转换。 3. **数据转换**: 在从Hive加载数据到Spark后,可能需要对数据进行清洗...
接下来,我们将编写Java代码来连接到Hive服务器。以下是一个基本示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public ...
### 大数据Java操作Hive知识点详解 #### 一、Hive简介与基本配置 **Hive** 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,可以将 SQL 语句转换为 ...
接下来,我们来看一个简单的Java代码示例,该示例展示了如何连接到Hive服务器、执行SQL查询并获取结果: ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hive.jdbc.HiveDriver; ...
综上所述,这些jar包组合在一起,为Java应用程序提供了连接到Hadoop Hive数据库的能力,通过编写Java代码,可以执行SQL查询,操作Hive中的数据。记得在部署时,将这些库复制到项目的lib目录或配置到类路径中,以便...
Hive-JDBC驱动提供了一个桥梁,让Java代码可以执行Hive的SQL语句。在"java调用hive需要的jar"中,`hive-jar`可能就是包含Hive JDBC驱动的JAR文件。 2. **添加依赖**: 在Java项目中,你需要将Hive的JDBC JAR文件...
标题中的"hive+mysql-connector-java-5.1.38.zip"暗示了这个压缩包包含与Hive和MySQL数据库连接相关的组件,特别是MySQL的Java连接器(JDBC驱动)。MySQL Connector/J是MySQL官方提供的用于Java应用程序连接到MySQL...
在Java中与Hive连接通常涉及到使用Hive JDBC驱动,这是一个Java数据库连接(JDBC)接口,使得Java应用能够像操作关系型数据库一样操作Hive。 以下是一些关键知识点: 1. **Hive JDBC驱动**:Hive提供了JDBC驱动...
开发自定义SerDe可能涉及编写Java代码并将其打包成JAR文件,然后在Hive中注册这个JAR,并在创建表时指定使用这个SerDe。 总的来说,Hive文件读写结合Linux环境提供了强大的大数据处理能力,而BCD解析则是处理特定...
因此,这些依赖包可能涉及Inceptor的API、连接器、优化器或其他核心组件,帮助开发者在Java应用中无缝集成和操作Inceptor数据仓库。 总结来说,这个"星环hive-8.0.2 java 依赖包全集"是针对星环Inceptor 8.0.2版本...