基于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- ...
随机推荐
- Apache Hadoop RPC Authentication 安全绕过漏洞
漏洞名称: Apache Hadoop RPC Authentication 安全绕过漏洞 CNNVD编号: CNNVD-201308-425 发布时间: 2013-08-28 更新时间: 2013- ...
- 【转】VMware Workstation 11 永久激活码key 非注册机
原文网址:http://www.landiannews.com/archives/12565.html 昨天我们发布了<跨越式提升:VMware Workstation 11 发布 附下载地址& ...
- removeTask
SystemUI中,Home键调出小刷子杀最近任务,整个流程从其RecentsPanelView.java开始: public void handleSwipe(View view) { ... // ...
- maya绝招(1-20)
第一招 自制MAYA启动界面 在安装目录下的BIN文件夹中的MayaRes.dll文件,用Resource Hacker打开.在软件的目录树中找到“位图”下的MAYASTARTUPIMAGE.XPM并 ...
- JavaScript高级程序设计2.pdf
第三章 基本概念 区分大小写 ECMAScript中的一切(变量.函数名和操作符)都区分大小写 标识符 指变量.函数.属性的名字或者函数的参数 第一个字符必须是一个字母.下划线或美元符号,其它字符可以 ...
- SDN基础理解
本文转载自:http://blog.csdn.net/freezgw1985/article/details/16873677 个人觉得对很适合对SDN的入门级的概念性理解,先暂时copy一下,等研究 ...
- 600字读懂 Git
译注:来自 Hacker School 的 Mary Rose Cook 实现了一个纯 JavaScript 写就的 Git:Gitlet,包含了最主要的一些命令.这个项目一是为了了解 Git 内部原 ...
- Call-time pass-by-reference has been deprecated
Warning: Call-time pass-by-reference has been deprecated解决方法 第一种方法: 修改php.ini就可以了. 1. 在PHP.ini中搜索关键字 ...
- centos 6.5上部署jetty
和tomcat是一样的,在部署容器之前,我们首先得有java环境 这里我们选择用rpm包的方式安装jdk 这里我们上传我之前下载好的jdk包 然后按照该文章http://blog.csdn.net/x ...
- 【转】jQuery列表拖动排列-jquery list dragsort插件参数和使用方法
转自:http://www.itokit.com/2014/0820/75058.html 我们在编辑页面元素排序的时候,我推荐使用jquery插件:dragsort. dragsort官网地址:ht ...