pom
<dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>0.11.0</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.2.0</version> </dependency>
public class TeminalHiveCoreTest { public static void main(String[] args) throws SQLException { String tableName = " terminal "; String params ="appId,deviceMac,deviceId,deviceToken,deviceImsi,deviceModel,deviceManufacture,channel,appKey,userId,appVersion,versionCod,sdkType,sdkVersion,os,country,language,timezone,resolution,access,accessSubtype,carrier,cpu"; String partitionId ="appId"; String clusterId ="deviceToken"; String baseHdfsPath="hdfs://dev10.aoiplus.openpf:9000"; String hdfsPath=baseHdfsPath +"/user/hadoop/storm/terminalInfo_terminalInfo-3-0-1483076684221.log"; Connection connection = HiveJdbcConnection.getInstance().getConnection(HiveJdbcConnection.url, HiveJdbcConnection.user, HiveJdbcConnection.password); Statement stmt = connection.createStatement(); ResultSet res = null; HiveSqlDateDefineLanguage hqddl = new HiveSqlDateDefineLanguage().setCon(connection).setStmt(stmt); hqddl.dropTableByName(tableName); hqddl.createTableByParams(tableName, params,partitionId,clusterId); hqddl.loadSQL(tableName, hdfsPath); HiveSqlDateManageLanguage hqdml = new TermialHiveSqlDMLOperator().setCon(connection).setStmt(stmt).setRes(res); List<TerminalInfo> list = hqdml.findAll(tableName); System.out.println(list); HiveJdbcConnection.getInstance().close(res, stmt, connection); } }
package com.curiousby.baoyou.cn.hive.base; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * @Type HiveJdbcConnection.java * @Desc * @author hadoop * @date 2016年12月29日 下午3:04:42 * @version */ public class HiveJdbcConnection { public static String driverName = "org.apache.hive.jdbc.HiveDriver"; public static String url ="jdbc:hive2://172.23.27.120:10000/default"; public static String user ="hive"; public static String password="hive"; static{ try { Class.forName(driverName); } catch (ClassNotFoundException e) { e.printStackTrace(); throw new ExceptionInInitializerError(); } } private static HiveJdbcConnection instance = null; public static HiveJdbcConnection getInstance(){ if (instance == null ) { synchronized (HiveJdbcConnection.class) { if (instance == null ) { instance = new HiveJdbcConnection(); } } } return instance; } public Connection getConnection(String url,String user,String password) throws SQLException { return DriverManager.getConnection(url, user, password); } public void close(ResultSet rs, Statement st, Connection conn) { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } public static void main(String[] args) throws SQLException { System.out.println(HiveJdbcConnection.getInstance().getConnection(url, user, password)); } }
public class HiveSqlDateDefineLanguage implements SqlDateDefineLanguageInterface,SqlLoadData{ private Statement stmt; private ResultSet res; private Connection con; @Override public boolean createDatabase(String sql) { return false; } @Override public boolean createTable(String sql) { try { stmt.execute(sql); } catch (SQLException e) { e.printStackTrace(); return false; } return true; } /* CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path]*/ public boolean createTableByParams(String tableName,String params,String partitionedId,String clusteredId ){ String properties =""; String[] objects = params.split(","); for (int i = 0; i < objects.length; i++) { properties += objects[i] +" string,"; } properties = properties.substring(0, properties.length()-1); String sql =" create table " + tableName + " ("+ properties +") " +" comment '"+tableName+"' " // +" PARTITIONED BY ("+partitionedId+" string) " +" clustered by ("+clusteredId+") into 2 buckets " + " row format delimited fields terminated by ',' " // +" stored as orc " +" TBLPROPERTIES ('transactional'='true') " ; System.out.println(sql); return execute(sql); } @Override public boolean dropTable(String sql) { try { stmt.execute(sql); } catch (SQLException e) { e.printStackTrace(); return false; } return true; } public boolean dropTableByName(String tableName) { String sql ="drop table if exists " + tableName; return execute(sql); } public boolean execute(String sql) { try { stmt.execute(sql); } catch (SQLException e) { e.printStackTrace(); return false; } return true; } public Statement getStmt() { return stmt; } public ResultSet getRes() { return res; } public Connection getCon() { return con; } public HiveSqlDateDefineLanguage setStmt(Statement stmt) { this.stmt = stmt; return this; } public HiveSqlDateDefineLanguage setRes(ResultSet res) { this.res = res; return this; } public HiveSqlDateDefineLanguage setCon(Connection con) { this.con = con; return this; } @Override public boolean loadSQL(String tableName, String hdfsPath) { String sql = "LOAD DATA INPATH '"+hdfsPath+"' OVERWRITE INTO TABLE "+tableName; return execute(sql); } @Override public boolean loadLocalSQL(String tableName, String localPath) { String sql = "LOAD DATA local INPATH '"+localPath+"' OVERWRITE INTO TABLE "+tableName; return execute(sql); } }
public abstract class HiveSqlDateManageLanguage extends SqlEntiyFormat<TerminalInfo> implements SqlDateManageLanguageInterface<TerminalInfo> { private Statement stmt; private ResultSet res; private Connection con; @Override public List<TerminalInfo> findAll(String tableName) { try { res = stmt.executeQuery("select * from " +tableName); List< TerminalInfo> list = formate(res); return list; } catch (SQLException e) { } return null; } @Override public TerminalInfo findOne(String key, String value) { return null; } @Override public TerminalInfo findOne(String sql) { return null; } @Override public List<TerminalInfo> findAllBySql(String sql) { return null; } @Override public boolean update(String sql) { return false; } @Override public boolean delete(String sql) { return false; } @Override public boolean insert(String sql) { return false; } @Override public boolean insert(TerminalInfo t) { return false; } public Statement getStmt() { return stmt; } public ResultSet getRes() { return res; } public Connection getCon() { return con; } public HiveSqlDateManageLanguage setStmt(Statement stmt) { this.stmt = stmt; return this; } public HiveSqlDateManageLanguage setRes(ResultSet res) { this.res = res; return this; } public HiveSqlDateManageLanguage setCon(Connection con) { this.con = con; return this; } }
public class TermialHiveSqlDMLOperator extends HiveSqlDateManageLanguage{ @Override public void sqlMapper(ResultSet res, List<TerminalInfo> list) throws SQLException { TerminalInfo entity = new TerminalInfo(); entity .setAppId(res.getString(1)) .setDeviceMac(res.getString(2)) .setDeviceId(res.getString(3)) .setDeviceToken(res.getString(4)) .setDeviceImsi(res.getString(5)) .setDeviceModel(res.getString(6)) .setDeviceManufacture(res.getString(7)) .setChannel(res.getString(8)) .setAppKey(res.getString(9)) .setUserId(res.getString(10)) .setAppVersion(res.getString(1)) .setVersionCode(res.getString(12)) .setSdkType(res.getString(13)) .setSdkVersion(res.getString(14)) .setOs(res.getString(15)) .setCountry(res.getString(16)) .setLanguage(res.getString(17)) .setTimezone(res.getString(18)) .setResolution(res.getString(19)) .setAccess(res.getString(20)) .setAccessSubtype(res.getString(21)) .setCarrier(res.getString(22)) .setCpu(res.getString(23)) ; list.add(entity); } }
public interface SqlLoadData { public boolean loadSQL(String tableName,String hdfsPath); public boolean loadLocalSQL(String tableName,String localPath); }
public interface SqlMapper<T> { public void sqlMapper(ResultSet res , List< T> list) throws SQLException; }
public abstract class SqlEntiyFormat<T> implements SqlMapper<T>{ public List<T> formate( ResultSet res) throws SQLException{ List< T> list = new ArrayList<T>(); while (res.next()) { sqlMapper(res, list); } return list; } }
public interface SqlDateManageLanguageInterface<T> { public List<T> findAll(String tableName); public T findOne(String key ,String value); public T findOne (String sql); public List<T> findAllBySql (String sql); public boolean update (String sql); public boolean delete (String sql); public boolean insert(String sql); public boolean insert(T t); }
/** * @Type SqlDateDefineLanguageInterface.java * @Desc CREATE DATABASE - 创建新数据库 ALTER DATABASE - 修改数据库 CREATE TABLE - 创建新表 ALTER TABLE - 变更(改变)数据库表 DROP TABLE - 删除表 CREATE INDEX - 创建索引(搜索键) DROP INDEX - 删除索引 * @author hadoop * @date 2016年12月29日 下午2:54:34 * @version */ public interface SqlDateDefineLanguageInterface { public boolean createDatabase(String sql); public boolean createTable(String sql); public boolean dropTable(String sql); public boolean dropTableByName(String tableName); }
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
本文将通过一个具体的Java与Hive结合的实例,深入讲解如何利用Java API进行Hive的操作,以加深对Hive语句的理解。 首先,要使用Java与Hive交互,我们需要引入Hive的JDBC驱动。在项目中,可以通过Maven或Gradle添加...
标题中的“hive影评案例.zip”表明这是一个关于使用Hive处理电影评论数据的示例。Hive是基于Hadoop的数据仓库工具,它允许用户通过SQL(HQL,Hive SQL)查询分布式存储的大数据集。这个压缩包可能包含了用于分析用户...
本实例将聚焦于如何使用Java和HiveJDBC来操作基于MySQL的Hive元数据存储。以下是一份详细的步骤指南和相关知识点解释: 1. **HiveJDBC简介**: HiveJDBC是Hive提供的一种JDBC驱动,使得任何支持JDBC的应用程序,如...
大数据的hive资源的详细代码设计以及分享,望博友相互交流
在大数据处理领域,Hive是一个基于Hadoop的数据仓库工具,它可以将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,使得用户可以使用SQL语句对存储在Hadoop集群上的大规模数据进行分析和处理。JDBC(Java ...
在IT行业中,尤其是在大数据处理领域,Hive是一个广泛使用的数据仓库工具,它允许用户通过SQL-like查询语言(HQL)来处理存储在分布式文件系统中的大规模数据。然而,当面对大量不再需要的Hive表时,手动删除不仅...
Scala代码积累之spark streaming kafka 数据存入到hive源码实例,Scala代码积累之spark streaming kafka 数据存入到hive源码实例。
本实战项目是关于如何利用Hive通过日期来计算星座的一个实例,旨在帮助学习者更好地理解和应用Hive进行实际的数据处理任务。 首先,我们需要了解Hive的基本概念。Hive是由Facebook开发并开源的,基于Hadoop的数据...
《大数据技术之Hive——从入门到精通》 Hive,作为Facebook开源的大数据处理工具,主要用于处理海量的结构化日志数据统计。它是一种基于Hadoop的数据仓库工具,允许用户通过类SQL语法进行数据查询和分析。Hive的...
### HIVE-分桶表的详解与创建实例 #### 一、Hive 分桶表概述 在Hive中,为了提高查询效率,特别是在大数据场景下处理海量数据时,Hive引入了分桶(bucketing)的概念。分桶是在表级别进行的一种优化手段,它通过将表...
在大数据处理领域,Hive是一个极其重要的工具,它被广泛应用于大数据分析和数据仓库操作。本实战数据集主要涉及两个核心部分:`video`数据和`user`数据,这些都是构建大数据分析模型的基础元素。让我们深入探讨一下...
在DataGrip这样的专业数据库IDE中,Hive驱动是建立与Hive实例连接的必要部分。DataGrip是JetBrains公司推出的一款强大的数据库和SQL IDE,支持多种数据库管理系统,包括Hive。 要使用DataGrip连接到Hive 1.1.0,你...
在大数据处理领域,Hive是一个非常重要的工具,它提供了一个基于Hadoop的数据仓库基础设施,用于数据查询、分析和管理大规模数据集。本教程将详细讲解如何在Linux环境下安装Hive客户端,以便进行数据操作和分析。 ...
在Windows操作系统中,Eclipse是一款广泛使用的Java集成开发环境(IDE),它对于开发分布式计算框架如Hadoop、Spark以及数据仓库工具Hive来说,是非常有用的。本教程将深入讲解如何在Eclipse中集成这些组件,以创建...
"HIVE安装及详解" HIVE是一种基于Hadoop的数据仓库工具,主要用于处理和分析大规模数据。下面是关于HIVE的安装及详解。 HIVE基本概念 HIVE是什么?HIVE是一种数据仓库工具,主要用于处理和分析大规模数据。它将...
在大数据处理领域,Apache Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL(HQL,Hive Query ...通过这个实例,你现在已经具备了使用Hive JDBC的基础知识,可以进一步探索更高级的Hive和Java集成技术。
在大数据领域,Apache Ambari 是一个用于 Hadoop 集群管理和监控的开源工具,而 Hive 是一个基于 Hadoop 的数据仓库系统,用于处理和分析大规模数据集。本话题聚焦于如何在 Ambari 环境下将 Hive 3.0 升级到 Hive ...
元数据可以存储在本地MySQL或远程数据库中,以便多个Hive实例共享。 3. **Hive SQL(HQL)**:HQL是Hive提供的SQL方言,用于查询和管理数据。它支持SELECT、INSERT、UPDATE、DELETE等基本操作,以及JOIN、GROUP BY...
在大数据处理领域,Hive是一个基于Hadoop的数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)查询和管理存储在Hadoop分布式文件系统(HDFS)中的大量数据。Hive提供了数据整合、元数据管理、查询和分析...
Hive 函数及语法说明 Hive 是一个基于 Hadoop 的数据仓库工具,能够提供高效的数据查询和分析功能。Hive 的函数和语法是其核心组件之一,本文将对 Hive 的函数和语法进行详细的说明。 内置函数 Hive提供了一些...