基于CDH5.x 下面使用eclipse 操作hive 。使用java通过jdbc连接HIVESERVICE 创建表
基于CDH5.x 下面使用eclipse 操作hive 。使用java通过jdbc连接HIVESERVICE 创建表
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* Created by Sebastian on 2016/10/25.
*
*/
public class Hive {
private static String driverName = "org.apache.hive.jdbc.HiveDriver"; //驱动名称
private static String url = "jdbc:hive2://cluster1:10000/default"; //由于我的HIVE版本是hive1.1所以使用hive2
private static String user = "root";
private static String password = "root123";
private static String sql = "";
private static ResultSet res;
public static void main (String[] args) {
try {
Class.forName(driverName);
Connection conn = DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement();
//需要创建的表名
String tableName = "testHiveTable";
// 如果表存在就删除
// sql = "drop table" + tableName;
// stmt.execute(sql);
// 创建表
sql = "CREATE table " + tableName + " (key int, value string) row format delimited fields terminated by '\t' STORED AS TEXTFILE";
stmt.execute(sql);
conn.close();
conn = null;
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.exit(1);
} catch (SQLException e) {
e.printStackTrace();
System.exit(1);
}
}
}
要执行上面的代码需要以下依赖包:
还有一个hadoop-core-1.1.1.jar
执行上面的代码会出现:
Error while compiling statement: No privilege 'Create' found for outputs { database:default }
根据代码提示我们就要去搞权限的问题了。
CDH5的Hive权限配置
1、默认是没有限制的,所以我们通过执行命令开启。(特意提醒:在hive里面执行。。。)
set hive.security.authorization.enabled=true;
2.Cloudera Manager中配置
2.1首先在hive-site.xml的客户端配置代码段里面设置
第一个就是开启权限
第二个就是表的创建者对其创建的表,拥有所有的权限。
第三个就是权限控制配置罗
2.2要在hive-site.xml 的 HiveServer2 高级配置代码段(安全阀)添加如下配置
然后在CDH里面重启过期服务。进入hive开始设置权限
权限列表:
| 名称 | 描述 |
|---|---|
| ALL | 所有权限 |
| ALTER | 允许修改元数据(modify metadata data of object)---表信息数据 |
| UPDATE | 允许修改物理数据(modify physical data of object)---实际数据 |
| CREATE | 允许进行Create操作 |
| DROP | 允许进行DROP操作 |
| INDEX | 允许建索引(目前还没有实现) |
| LOCK | 当出现并发的使用允许用户进行LOCK和UNLOCK操作 |
| SELECT | 允许用户进行SELECT操作 |
| SHOW_DATABASE | 允许用户查看可用的数据库 |
1.创建角色
create role test_role;
//创建一个测试角色
create role admin;
2.给角色授权
grant all on database default to role admin;
//赋予所有权限给admin这个角色
grant select on database default to role admin;
//这个是例子。。。
3.给角色添加用户
grant role admin to user root;
因为我最上面的代码账号是root,要执行那段代码需要赋予权限给root
这个是CSDN上面某位大哥的
1.给用户授权
基于数据库
grant select on database default to user admin;
基于某张表:
grant select on table TTT to user admin;
2.给组授权
基于数据库:
grant select on database default to group admin;
基于某张表
grant select on table TTT to group admin;
3.给角色授权
基于数据库:
grant select on database default to role admin;
基于某张表
grant select on table ppdata to role admin;
4.创建角色
create role test_role;
5.给用户添加角色
grant role test_roleto user user Sebastian;
6.给用户移除权限
基于数据库:
revoke select on database default from user Sebastian;
基于某张表
revoke select on table TTT from Sebastian;
7.查看权限
SHOW GRANT user root ON DATABASE default;
SHOW GRANT group test_role ON DATABASE default;
基于CDH5.x 下面使用eclipse 操作hive 。使用java通过jdbc连接HIVESERVICE 创建表的更多相关文章
- 大数据系列之数据仓库Hive命令使用及JDBC连接
Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...
- PostgreSQL连接python,postgresql在python 连接,创建表,创建表内容,插入操作,选择操作,更新操作,删除操作。
安装 PostgreSQL可以用Python psycopg2模块集成. sycopg2是Python编程语言的PostgreSQL数据库的适配器. 其程序代码少,速度快,稳定.不需要单独安装这个模块 ...
- JAVA采用JDBC连接操作数据库详解
JDBC连接数据库概述 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供 ...
- Java使用JDBC连接Hive
最近一段时间,处理过一个问题,那就是hive jdbc的连接问题,其实也不是大问题,就是url写的不对,导致无法连接.问题在于HiveServer2增加了别的安全验证,导致正常的情况下,传递的参数无法 ...
- java使用JDBC连接hive(使用beeline与hiveserver2)
首先虚拟机上已经安装好hive. 下面是连接hive需要的操作. 一.配置. 1.查找虚拟机的ip 输入 ifconfig 2.配置文件 (1)配置hadoop目录下的core-site.xml和hd ...
- Eclipse安装配置以及java项目和类的创建
1.Eclipse的安装: 双击此应用程序 进入安装界面 选择下一步 更改路径将此默认路径改为 确定之后下一步更改jre的安装路径 在之前安装的java文件夹下新建一个jre文件夹 将jre安装在里边 ...
- JAVA的JDBC连接与sql操作
一.前言 本文主要介绍怎样连接数据库.即JDBC的操作.以MySQL为例子. 前提是首先要将驱动jar包放入对应路径中. 二.过程说明 1.加载jdbc驱动程序 <span style=&quo ...
- MySQL 事务 是对数据进行操作,对结构没有影响,比如创建表、删除表,事务就不起作用
- sparksql 操作hive
写在前面:hive的版本是1.2.1spark的版本是1.6.x http://spark.apache.org/docs/1.6.1/sql-programming-guide.html#hive- ...
随机推荐
- 【HDOJ】3308 LCIS
线段树,题目感觉比较难,看别人思路做的.还得继续练这个专题. #include <iostream> #include <cstdio> #include <cstrin ...
- bzoj1455
学习了一下可合并堆的一种写法——左偏树感觉左偏树是一种类似启发式的方法学习左偏树后这题就水过去了 ..] of longint; v:..] of boolean; i,n,m,x,y,f:longi ...
- Light OJ 1038 - Race to 1 Again(概率DP)
题目的意思是说任何一个大于1的整数,经过若干次除以自己的因子之后可以变为1, 求该变换字数的数学期望值. 题目分析: 我们设置dp[n] 为数字n的期望.假设n的因子为k1, k2, k3.... ...
- Rest中的XML与JSON的序列化与反序列化
#region 获取XML的序列化和反序列化 /// <summary> /// 对象进行序列化生成XML /// </summary> /// <typeparam n ...
- unity3d 随机生成地形之随机山脉
利用Fractal Noise生成地形,再加上山体shader,外加雪shader Noise生成结果 noise 生成主要参考这篇文章,就不再赘述 Value3D: Perlin2D: Fracta ...
- 在MacOSX下使用Github管理Xcode代码
版本控制应该算是每个程序员所必备的技能,这个重要性,我就不多说了哈.现在版本控制基本上就是两种途径:SVN和Git.对于SVN我并不是非常了解,只知道在Windows下非常实用,但是在MacOSX下, ...
- GPUImage实现过程
GPUImage就是一个函数的类库,用于对图片实现滤镜的效果. 下面是实现一个最简单的GPUImage的程序和讲解: 首先新建一个项目,导入GPUImage类库(导入过程在我的另一个博客里面有写). ...
- 计算1到n整数中,字符ch出现的次数
个位ch个数 + 十位ch个数 * 10 + 百位ch个数 * 100:同时如果某一位刚好等于ch,还需要减去多算的一部分值. #include <stdio.h> //整数1到n,字符c ...
- java 检查抛出的异常是否是要捕获的检查性异常或运行时异常或错误
/** * Return whether the given throwable is a checked exception: * that is, neither a RuntimeExcepti ...
- 2014 牡丹江现场赛 i题 (zoj 3827 Information Entropy)
I - Information Entropy Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %l ...