@AfterClass public static void tearDownTestStaticConfiguration() throws Exception { if (hiveServer != null) { hiveServer.shutdown(); hiveServer = null; } if (sentryServer != null) { sentryServer.close(); sentryServer = null; } if (baseDir != null) { if (System.getProperty(HiveServerFactory.KEEP_BASEDIR) == null) { FileUtils.deleteQuietly(baseDir); } baseDir = null; } if (dfs != null) { try { dfs.tearDown(); } catch (Exception e) { LOGGER.info("Exception shutting down dfs", e); } } if (context != null) { context.close(); } }
private static void setupSentryService() throws Exception { sentryConf = new Configuration(false); properties.put( HiveServerFactory.AUTHZ_PROVIDER_BACKEND, SimpleDBProviderBackend.class.getName()); properties.put( ConfVars.HIVE_AUTHORIZATION_TASK_FACTORY.varname, SentryHiveAuthorizationTaskFactoryImpl.class.getName()); properties.put(ConfVars.HIVE_SERVER2_THRIFT_MIN_WORKER_THREADS.varname, "2"); properties.put(ServerConfig.SECURITY_MODE, ServerConfig.SECURITY_MODE_NONE); properties.put(ServerConfig.ADMIN_GROUPS, ADMINGROUP); properties.put(ServerConfig.RPC_ADDRESS, SERVER_HOST); properties.put(ServerConfig.RPC_PORT, String.valueOf(0)); properties.put(ServerConfig.SENTRY_VERIFY_SCHEM_VERSION, "false"); properties.put( ServerConfig.SENTRY_STORE_JDBC_URL, "jdbc:derby:;databaseName=" + baseDir.getPath() + "/sentrystore_db;create=true"); properties.put(ServerConfig.SENTRY_STORE_JDBC_PASS, "dummy"); properties.put( ServerConfig.SENTRY_STORE_GROUP_MAPPING, ServerConfig.SENTRY_STORE_LOCAL_GROUP_MAPPING); properties.put(ServerConfig.SENTRY_STORE_GROUP_MAPPING_RESOURCE, policyFileLocation.getPath()); properties.put(ServerConfig.RPC_MIN_THREADS, "3"); for (Map.Entry<String, String> entry : properties.entrySet()) { sentryConf.set(entry.getKey(), entry.getValue()); } sentryServer = SentrySrvFactory.create(SentrySrvType.INTERNAL_SERVER, sentryConf, enableSentryHA ? 2 : 1); properties.put(ClientConfig.SERVER_RPC_ADDRESS, sentryServer.get(0).getAddress().getHostName()); sentryConf.set(ClientConfig.SERVER_RPC_ADDRESS, sentryServer.get(0).getAddress().getHostName()); properties.put( ClientConfig.SERVER_RPC_PORT, String.valueOf(sentryServer.get(0).getAddress().getPort())); sentryConf.set( ClientConfig.SERVER_RPC_PORT, String.valueOf(sentryServer.get(0).getAddress().getPort())); if (enableSentryHA) { properties.put(ClientConfig.SERVER_HA_ENABLED, "true"); properties.put(ClientConfig.SENTRY_HA_ZOOKEEPER_QUORUM, sentryServer.getZKQuorum()); } startSentryService(); if (setMetastoreListener) { LOGGER.info("setMetastoreListener is enabled"); properties.put( HiveConf.ConfVars.METASTORE_EVENT_LISTENERS.varname, SentryMetastorePostEventListener.class.getName()); } }
public static SentryPolicyServiceClient getSentryClient() throws Exception { if (sentryServer == null) { throw new IllegalAccessException("Sentry service not initialized"); } return SentryServiceClientFactory.create(sentryServer.get(0).getConf()); }
private static void startSentryService() throws Exception { sentryServer.startAll(); }