小标
2019-01-07
来源 :
阅读 1446
评论 0
摘要:本文主要向大家介绍了【云计算】大数据Hive系列之HiveAPI解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。
本文主要向大家介绍了【云计算】大数据Hive系列之HiveAPI解析,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。
Maven依赖配置
4.0.0
com.volitation.hive
bigdata-data-management
1.0.0-SNAPSHOT
jar
UTF-8
1.8
4.11
1.2.1
2.1.1
spring-milestones
//repo.spring.io/libs-milestone/
junit
junit
${junit.version}
org.apache.hadoop
hadoop-core
${hadoop.core.version}
org.apache.hive
hive-jdbc
${hive.version}
Hive JDBC四大参数定义
/**
* 代码集定义
*
* @author volitation
*
*/
public class PlatformDictionary {
/*
* Hive
*/
public static final String DRIVER_NAME = "org.apache.hive.jdbc.HiveDriver";
public static final String URL = "jdbc:hive2://192.168.9.87:10000";
public static final String USER_NAME = "hadoop";
public static final String PASSWORD = "hadoop!QWE";
}
异常处理
import java.util.HashMap;
import java.util.Map;
/**
* 异常处理工具类
*
* @author volitation
*
*/
public class AbnormalUtils {
/**
* 获取异常信息
*
* @param e
* @return
*/
public static Object getAbnormal(Exception e) {
Object abnormalType = e.getCause().getClass().toString();
Object abnormalName = e.getCause().getMessage().toString();
Map map = new HashMap<>();
map.put("异常类型", abnormalType);
map.put("异常点信息", abnormalName);
return map.toString();
}
}
Hive通过JDBC进行增删查操作
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.volitation.hive.platform.PlatformDictionary;
import com.volitation.hive.platform.utils.AbnormalUtils;
/**
* Hive JDBC操作
*
* @author volitation
*
*/
public class HiveJDBC {
private static Connection conn = null;
private static Statement stmt = null;
private static ResultSet rs = null;
/**
* 加载驱动,创建连接
*
* @throws Exception
*/
private static void init() {
try {
Class.forName(PlatformDictionary.DRIVER_NAME);
conn = DriverManager.getConnection(PlatformDictionary.URL, PlatformDictionary.USER_NAME,
PlatformDictionary.PASSWORD);
stmt = conn.createStatement();
} catch (ClassNotFoundException | SQLException e) {
Object object = AbnormalUtils.getAbnormal(e);
System.err.println(object);
}
}
/**
* 创建数据库
*
* @param databaseName
*/
public static void createDatabase(String databaseName) {
try {
init();
String sql = "create database " + databaseName;
System.out.println("Running: " + sql);
stmt.execute(sql);
} catch (SQLException e) {
Object object = AbnormalUtils.getAbnormal(e);
System.err.println(object);
} finally {
destory();
}
}
/**
* 查询所有数据库
*
* @return
*/
public static List showDatabases() {
List list = new ArrayList<>();
try {
init();
String sql = "show databases";
System.out.println("Running: " + sql);
rs = stmt.executeQuery(sql);
while (rs.next()) {
list.add(rs.getString(1));
}
} catch (SQLException e) {
Object object = AbnormalUtils.getAbnormal(e);
System.err.println(object);
} finally {
destory();
}
return list;
}
/**
* 删除数据库
*
* @param databaseName
*/
public static void dropDatabase(String databaseName) {
try {
init();
String sql = "drop database if exists " + databaseName;
System.out.println("Running: " + sql);
stmt.execute(sql);
} catch (SQLException e) {
Object object = AbnormalUtils.getAbnormal(e);
System.err.println(object);
} finally {
destory();
}
}
/**
* 创建表
*
* @param createTableSql
*/
public static void createTable(String createTableSql) {
try {
init();
System.out.println("Running: " + createTableSql);
stmt.execute(createTableSql);
} catch (SQLException e) {
Object object = AbnormalUtils.getAbnormal(e);
System.err.println(object);
} finally {
destory();
}
}
/**
* 查询所有表
*
* @return
*/
public static List showTables(String databaseName) {
List list = new ArrayList<>();
try {
init();
String useSql = "use " + databaseName;
System.out.println("Running: " + useSql);
stmt.execute(useSql);
String sql = "show tables";
System.out.println("Running: " + sql);
rs = stmt.executeQuery(sql);
while (rs.next()) {
list.add(rs.getString(1));
}
} catch (SQLException e) {
Object object = AbnormalUtils.getAbnormal(e);
System.err.println(object);
} finally {
destory();
}
return list;
}
/**
* 查看表结构
*
* @param databaseName
* @param tableName
* @return
*/
public static List<map> descTable(String databaseName, String tableName) {
List<map> list = new ArrayList<>();
Map map = null;
try {
init();
String sql = "desc " + databaseName + "." + tableName;
System.out.println("Running: " + sql);
rs = stmt.executeQuery(sql);
while (rs.next()) {
map = new HashMap<>();
map.put("colName", rs.getString(1));
map.put("dataType", rs.getString(2));
list.add(map);
}
} catch (SQLException e) {
Object object = AbnormalUtils.getAbnormal(e);
System.err.println(object);
} finally {
destory();
}
return list;
}
/**
* 加载数据
*
* @param hdfsPath
* @param tableName
*/
public static void loadData(String hdfsPath, String tableName) {
try {
init();
String sql = "load data inpath '" + hdfsPath + "' insert into table " + tableName;
System.out.println("Running: " + sql);
stmt.execute(sql);
} catch (SQLException e) {
Object object = AbnormalUtils.getAbnormal(e);
System.err.println(object);
} finally {
destory();
}
}
/**
* 查询数据
*
* @param selectSql
* @return
*/
public static List selectData(String selectSql) {
List list = new ArrayList<>();
try {
init();
System.out.println("Running: " + selectSql);
rs = stmt.executeQuery(selectSql);
while (rs.next()) {
list.add(rs.getString(1));
}
} catch (SQLException e) {
Object object = AbnormalUtils.getAbnormal(e);
System.err.println(object);
} finally {
destory();
}
return list;
}
/**
* 删除数据库表
*
* @param databaseName
* @param tableName
*/
public static void deopTable(String databaseName, String tableName) {
try {
init();
String sql = "drop table if exists " + databaseName + "." + tableName;
System.out.println("Running: " + sql);
stmt.execute(sql);
} catch (SQLException e) {
Object object = AbnormalUtils.getAbnormal(e);
System.err.println(object);
} finally {
destory();
}
}
/**
* 释放资源
*/
private static void destory() {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
Object object = AbnormalUtils.getAbnormal(e);
System.err.println(object);
}
}
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号