use of org.apache.hadoop.hive.ql.processors.CommandProcessorResponse in project hive by apache.
the class FolderPermissionBase method testLoadLocal.
@Test
public void testLoadLocal() throws Exception {
//case 1 is non-partitioned table.
String tableName = "loadlocal";
CommandProcessorResponse ret = driver.run("CREATE TABLE " + tableName + " (key string, value string)");
Assert.assertEquals(0, ret.getResponseCode());
String tableLoc = warehouseDir + "/" + tableName;
assertExistence(warehouseDir + "/" + tableName);
//case1A: load data local into non-partitioned table.
setPermission(warehouseDir + "/" + tableName);
ret = driver.run("load data local inpath '" + dataFilePath + "' into table " + tableName);
Assert.assertEquals(0, ret.getResponseCode());
Assert.assertTrue(listStatus(tableLoc).size() > 0);
for (String child : listStatus(tableLoc)) {
verifyPermission(child);
}
//case1B: load data local into overwrite non-partitioned-table
setPermission(warehouseDir + "/" + tableName, 1);
for (String child : listStatus(tableLoc)) {
setPermission(child, 1);
}
ret = driver.run("load data local inpath '" + dataFilePath + "' overwrite into table " + tableName);
Assert.assertEquals(0, ret.getResponseCode());
Assert.assertTrue(listStatus(tableLoc).size() > 0);
for (String child : listStatus(tableLoc)) {
verifyPermission(child, 1);
}
//case 2 is partitioned table.
tableName = "loadlocalpartition";
ret = driver.run("CREATE TABLE " + tableName + " (key string, value string) partitioned by (part1 int, part2 int)");
Assert.assertEquals(0, ret.getResponseCode());
tableLoc = warehouseDir + "/" + tableName;
assertExistence(tableLoc);
//case 2A: load data local into partitioned table.
setPermission(tableLoc);
ret = driver.run("LOAD DATA LOCAL INPATH '" + dataFilePath + "' INTO TABLE " + tableName + " PARTITION (part1='1',part2='1')");
Assert.assertEquals(0, ret.getResponseCode());
String partLoc = warehouseDir + "/" + tableName + "/part1=1/part2=1";
Assert.assertTrue(listStatus(partLoc).size() > 0);
for (String child : listStatus(partLoc)) {
verifyPermission(child);
}
//case 2B: insert data overwrite into partitioned table. set testing table/partition folder hierarchy 1
//local load overwrite just overwrite the existing partition content but not the permission
setPermission(tableLoc, 1);
setPermission(partLoc, 1);
for (String child : listStatus(partLoc)) {
setPermission(child, 1);
}
ret = driver.run("LOAD DATA LOCAL INPATH '" + dataFilePath + "' OVERWRITE INTO TABLE " + tableName + " PARTITION (part1='1',part2='1')");
Assert.assertEquals(0, ret.getResponseCode());
Assert.assertTrue(listStatus(tableLoc).size() > 0);
for (String child : listStatus(partLoc)) {
verifyPermission(child, 1);
}
}
use of org.apache.hadoop.hive.ql.processors.CommandProcessorResponse in project hive by apache.
the class FolderPermissionBase method testCreateDb.
@Test
public void testCreateDb() throws Exception {
//see if db inherits permission from warehouse directory.
String testDb = "mydb";
String tableName = "createtable";
setPermission(warehouseDir.toString());
verifyPermission(warehouseDir.toString());
CommandProcessorResponse ret = driver.run("CREATE DATABASE " + testDb);
Assert.assertEquals(0, ret.getResponseCode());
assertExistence(warehouseDir + "/" + testDb + ".db");
verifyPermission(warehouseDir + "/" + testDb + ".db");
ret = driver.run("USE " + testDb);
Assert.assertEquals(0, ret.getResponseCode());
ret = driver.run("CREATE TABLE " + tableName + " (key string, value string)");
Assert.assertEquals(0, ret.getResponseCode());
verifyPermission(warehouseDir + "/" + testDb + ".db/" + tableName);
ret = driver.run("insert into table " + tableName + " select key,value from default.mysrc");
Assert.assertEquals(0, ret.getResponseCode());
assertExistence(warehouseDir + "/" + testDb + ".db/" + tableName);
verifyPermission(warehouseDir + "/" + testDb + ".db/" + tableName);
Assert.assertTrue(listStatus(warehouseDir + "/" + testDb + ".db/" + tableName).size() > 0);
for (String child : listStatus(warehouseDir + "/" + testDb + ".db/" + tableName)) {
verifyPermission(child);
}
ret = driver.run("USE default");
Assert.assertEquals(0, ret.getResponseCode());
//cleanup after the test.
fs.delete(warehouseDir, true);
fs.mkdirs(warehouseDir);
Assert.assertEquals(listStatus(warehouseDir.toString()).size(), 0);
setupDataTable();
}
use of org.apache.hadoop.hive.ql.processors.CommandProcessorResponse in project hive by apache.
the class FolderPermissionBase method testLoad.
@Test
public void testLoad() throws Exception {
String tableName = "load";
String location = "/hdfsPath";
fs.copyFromLocalFile(dataFilePath, new Path(location));
//case 1: load data
CommandProcessorResponse ret = driver.run("CREATE TABLE " + tableName + " (key string, value string)");
Assert.assertEquals(0, ret.getResponseCode());
String tableLoc = warehouseDir + "/" + tableName;
assertExistence(warehouseDir + "/" + tableName);
//case1A: load data into non-partitioned table.
setPermission(warehouseDir + "/" + tableName);
ret = driver.run("load data inpath '" + location + "' into table " + tableName);
Assert.assertEquals(0, ret.getResponseCode());
Assert.assertTrue(listStatus(tableLoc).size() > 0);
for (String child : listStatus(tableLoc)) {
verifyPermission(child);
}
//case1B: load data into overwrite non-partitioned-table
setPermission(warehouseDir + "/" + tableName, 1);
for (String child : listStatus(tableLoc)) {
setPermission(child, 1);
}
fs.copyFromLocalFile(dataFilePath, new Path(location));
ret = driver.run("load data inpath '" + location + "' overwrite into table " + tableName);
Assert.assertEquals(0, ret.getResponseCode());
Assert.assertTrue(listStatus(tableLoc).size() > 0);
for (String child : listStatus(tableLoc)) {
verifyPermission(child, 1);
}
//case 2 is partitioned table.
tableName = "loadpartition";
ret = driver.run("CREATE TABLE " + tableName + " (key string, value string) partitioned by (part1 int, part2 int)");
Assert.assertEquals(0, ret.getResponseCode());
tableLoc = warehouseDir + "/" + tableName;
assertExistence(tableLoc);
//case 2A: load data into partitioned table.
setPermission(tableLoc);
fs.copyFromLocalFile(dataFilePath, new Path(location));
ret = driver.run("LOAD DATA INPATH '" + location + "' INTO TABLE " + tableName + " PARTITION (part1='1',part2='1')");
Assert.assertEquals(0, ret.getResponseCode());
String partLoc = warehouseDir + "/" + tableName + "/part1=1/part2=1";
Assert.assertTrue(listStatus(partLoc).size() > 0);
for (String child : listStatus(partLoc)) {
verifyPermission(child);
}
//case 2B: insert data overwrite into partitioned table. set testing table/partition folder hierarchy 1
//load overwrite just overwrite the existing partition content but not the permission
setPermission(tableLoc, 1);
setPermission(partLoc, 1);
Assert.assertTrue(listStatus(partLoc).size() > 0);
for (String child : listStatus(partLoc)) {
setPermission(child, 1);
}
fs.copyFromLocalFile(dataFilePath, new Path(location));
ret = driver.run("LOAD DATA INPATH '" + location + "' OVERWRITE INTO TABLE " + tableName + " PARTITION (part1='1',part2='1')");
Assert.assertEquals(0, ret.getResponseCode());
Assert.assertTrue(listStatus(tableLoc).size() > 0);
for (String child : listStatus(partLoc)) {
verifyPermission(child, 1);
}
}
use of org.apache.hadoop.hive.ql.processors.CommandProcessorResponse in project hive by apache.
the class TestHBaseMetastoreSql method database.
@Test
public void database() throws Exception {
CommandProcessorResponse rsp = driver.run("create database db");
Assert.assertEquals(0, rsp.getResponseCode());
rsp = driver.run("set role admin");
Assert.assertEquals(0, rsp.getResponseCode());
// security doesn't let me change the properties
rsp = driver.run("alter database db set dbproperties ('key' = 'value')");
Assert.assertEquals(0, rsp.getResponseCode());
rsp = driver.run("drop database db");
Assert.assertEquals(0, rsp.getResponseCode());
}
use of org.apache.hadoop.hive.ql.processors.CommandProcessorResponse in project hive by apache.
the class TestHBaseMetastoreSql method grant.
@Test
public void grant() throws Exception {
CommandProcessorResponse rsp = driver.run("set role admin");
Assert.assertEquals(0, rsp.getResponseCode());
rsp = driver.run("create role role3");
Assert.assertEquals(0, rsp.getResponseCode());
driver.run("create table granttbl (c int)");
Assert.assertEquals(0, rsp.getResponseCode());
driver.run("grant select on granttbl to " + System.getProperty("user.name"));
Assert.assertEquals(0, rsp.getResponseCode());
driver.run("grant select on granttbl to role3 with grant option");
Assert.assertEquals(0, rsp.getResponseCode());
driver.run("revoke select on granttbl from " + System.getProperty("user.name"));
Assert.assertEquals(0, rsp.getResponseCode());
driver.run("revoke grant option for select on granttbl from role3");
Assert.assertEquals(0, rsp.getResponseCode());
}
Aggregations