private SyncErrorHandler getSyncErrorHandler(KylinConfig config) { String clzName = config.getCacheSyncErrorHandler(); if (StringUtils.isEmpty(clzName)) { clzName = DefaultSyncErrorHandler.class.getName(); } return (SyncErrorHandler) ClassUtil.newInstance(clzName); }
public DistributedLockFactory getDistributedLockFactory() { String clsName = getOptional("kylin.metadata.distributed-lock-impl", "org.apache.kylin.storage.hbase.util.ZookeeperDistributedLock$Factory"); return (DistributedLockFactory) ClassUtil.newInstance(clsName); }
@Override public void run() { logger.info("Start to extract HBase usage."); try { // use reflection to isolate NoClassDef errors when HBase is not available String[] hbaseArgs = { "-destDir", new File(exportDir, "hbase").getAbsolutePath(), "-project", projectNames, "-compress", "false", "-submodule", "true" }; logger.info("HBaseUsageExtractor args: " + Arrays.toString(hbaseArgs)); Object extractor = ClassUtil.newInstance("org.apache.kylin.tool.HBaseUsageExtractor"); Method execute = extractor.getClass().getMethod("execute", String[].class); execute.invoke(extractor, (Object) hbaseArgs); } catch (Throwable e) { logger.error("Error in export HBase usage.", e); } } });
public synchronized I get(int id) { String clzName = impls.get(id); if (clzName == null) { throw new IllegalArgumentException("Implementation class missing, ID " + id + ", interface " + interfaceClz.getName()); } @SuppressWarnings("unchecked") I result = (I) instances[id]; if (result == null) { try { result = (I) ClassUtil.newInstance(clzName); instances[id] = result; } catch (Exception ex) { logger.warn("Implementation missing " + clzName + " - " + ex); } } if (result == null) throw new IllegalArgumentException("Implementations missing, ID " + id + ", interface " + interfaceClz.getName()); return result; } }
private static void initQueryTransformers() { List<IQueryTransformer> transformers = Lists.newArrayList(); String[] classes = KylinConfig.getInstanceFromEnv().getQueryTransformers(); for (String clz : classes) { try { IQueryTransformer t = (IQueryTransformer) ClassUtil.newInstance(clz); transformers.add(t); } catch (Exception e) { throw new IllegalStateException("Failed to init query transformer", e); } } queryTransformers = transformers; }
@Override public String convertSql(KylinConfig kylinConfig, String sql, String project, String defaultSchema, boolean isPrepare) { String converted = sql; for (String converterName : kylinConfig.getPushDownConverterClassNames()) { IPushDownConverter converter = (IPushDownConverter) ClassUtil.newInstance(converterName); String tmp = converter.convert(converted, project, defaultSchema, isPrepare); if (!converted.equals(tmp)) { logger.info("the query is converted to {} after applying converter {}", tmp, converterName); } converted = tmp; } return converted; } }
protected void doAccessControl(List<OLAPContext> contexts) { KylinConfig config = KylinConfig.getInstanceFromEnv(); String controllerCls = config.getQueryAccessController(); if (null != controllerCls && !controllerCls.isEmpty()) { OLAPContext.IAccessController accessController = (OLAPContext.IAccessController) ClassUtil.newInstance(controllerCls); accessController.check(contexts, config); } } }
public void init(DataModelDesc model) { if (StringUtils.isEmpty(partitionDateColumn)) return; partitionDateColumnRef = model.findColumn(partitionDateColumn); partitionDateColumn = partitionDateColumnRef.getIdentity(); if (StringUtils.isBlank(partitionTimeColumn) == false) { partitionTimeColumnRef = model.findColumn(partitionTimeColumn); partitionTimeColumn = partitionTimeColumnRef.getIdentity(); } partitionConditionBuilder = (IPartitionConditionBuilder) ClassUtil.newInstance(partitionConditionBuilderClz); }
public static ExternalAclProvider getInstance() { if (singleton == null) { synchronized (ExternalAclProvider.class) { if (singleton == null) { String cls = KylinConfig.getInstanceFromEnv().getExternalAclProvider(); if (!StringUtils.isBlank(cls)) { singleton = (ExternalAclProvider) ClassUtil.newInstance(cls); singleton.init(); } } } } return singleton; }
private void readWriteTest(Dictionary<String> dict) throws Exception { final String path = "src/test/resources/dict/tmp_dict"; File f = new File(path); f.deleteOnExit(); f.createNewFile(); String dictClassName = dict.getClass().getName(); DataOutputStream out = new DataOutputStream(new FileOutputStream(f)); out.writeUTF(dictClassName); dict.write(out); out.close(); //read dict DataInputStream in = null; Dictionary<String> dict2 = null; try { File f2 = new File(path); in = new DataInputStream(new FileInputStream(f2)); String dictClassName2 = in.readUTF(); dict2 = (Dictionary<String>) ClassUtil.newInstance(dictClassName2); dict2.readFields(in); } finally { if (in != null) { in.close(); } } assertTrue(dict.equals(dict2)); } }
IPushDownRunner runner = (IPushDownRunner) ClassUtil.newInstance(kylinConfig.getPushDownRunnerClassName()); runner.init(kylinConfig); logger.debug("Query Pushdown runner {}", runner);
private Dictionary<String> buildDictFromReadableTable(IReadableTable inpTable, DictionaryInfo dictInfo, String builderClass, TblColRef col) throws IOException { Dictionary<String> dictionary; IDictionaryValueEnumerator columnValueEnumerator = null; try { columnValueEnumerator = new TableColumnValueEnumerator(inpTable.getReader(), dictInfo.getSourceColumnIndex()); if (builderClass == null) { dictionary = DictionaryGenerator.buildDictionary(DataType.getType(dictInfo.getDataType()), columnValueEnumerator); } else { IDictionaryBuilder builder = (IDictionaryBuilder) ClassUtil.newInstance(builderClass); dictionary = DictionaryGenerator.buildDictionary(builder, dictInfo, columnValueEnumerator); } } catch (Exception ex) { throw new RuntimeException("Failed to create dictionary on " + col, ex); } finally { if (columnValueEnumerator != null) columnValueEnumerator.close(); } return dictionary; }
try (DataInputStream is = new DataInputStream(new ByteBufferBackedInputStream(buffer))) { String dictClassName = is.readUTF(); Dictionary<String> dict = (Dictionary<String>) ClassUtil.newInstance(dictClassName); dict.readFields(is); logger.info("DictionaryProvider read dict from file: " + dictFile);
for (String clsName : clsNames) { try { DimensionEncodingFactory factory = (DimensionEncodingFactory) ClassUtil.newInstance(clsName); map.put(Pair.newPair(factory.getSupportedEncodingName(), factory.getCurrentVersion()), factory); } catch (Exception ex) {
@Override protected void doSetup(Context context) throws IOException { super.bindCurrentConfiguration(context.getConfiguration()); Configuration conf = context.getConfiguration(); mos = new MultipleOutputs(context); KylinConfig config = AbstractHadoopJob.loadKylinPropsAndMetadata(); String cubeName = conf.get(BatchConstants.CFG_CUBE_NAME); CubeInstance cube = CubeManager.getInstance(config).getCube(cubeName); CubeDesc cubeDesc = cube.getDescriptor(); List<TblColRef> uhcColumns = cubeDesc.getAllUHCColumns(); int taskId = context.getTaskAttemptID().getTaskID().getId(); col = uhcColumns.get(taskId); logger.info("column name: " + col.getIdentity()); if (cube.getDescriptor().getShardByColumns().contains(col)) { //for ShardByColumns builder = DictionaryGenerator.newDictionaryBuilder(col.getType()); builder.init(null, 0, null); } else { //for GlobalDictionaryColumns String hdfsDir = conf.get(BatchConstants.CFG_GLOBAL_DICT_BASE_DIR); DictionaryInfo dictionaryInfo = new DictionaryInfo(col.getColumnDesc(), col.getDatatype()); String builderClass = cubeDesc.getDictionaryBuilderClass(col); builder = (IDictionaryBuilder) ClassUtil.newInstance(builderClass); builder.init(dictionaryInfo, 0, hdfsDir); } }
public DistributedLockFactory getDistributedLockFactory() { String clsName = getOptional("kylin.metadata.distributed-lock-impl", "org.apache.kylin.storage.hbase.util.ZookeeperDistributedLock$Factory"); return (DistributedLockFactory) ClassUtil.newInstance(clsName); }
private SyncErrorHandler getSyncErrorHandler(KylinConfig config) { String clzName = config.getCacheSyncErrorHandler(); if (StringUtils.isEmpty(clzName)) { clzName = DefaultSyncErrorHandler.class.getName(); } return (SyncErrorHandler) ClassUtil.newInstance(clzName); }
private static void initQueryTransformers() { List<IQueryTransformer> transformers = Lists.newArrayList(); String[] classes = KylinConfig.getInstanceFromEnv().getQueryTransformers(); for (String clz : classes) { try { IQueryTransformer t = (IQueryTransformer) ClassUtil.newInstance(clz); transformers.add(t); } catch (Exception e) { throw new IllegalStateException("Failed to init query transformer", e); } } queryTransformers = transformers; }
protected void doAccessControl(List<OLAPContext> contexts) { KylinConfig config = KylinConfig.getInstanceFromEnv(); String controllerCls = config.getQueryAccessController(); if (null != controllerCls && !controllerCls.isEmpty()) { OLAPContext.IAccessController accessController = (OLAPContext.IAccessController) ClassUtil.newInstance(controllerCls); accessController.check(contexts, config); } } }
public void init(DataModelDesc model) { if (StringUtils.isEmpty(partitionDateColumn)) return; partitionDateColumnRef = model.findColumn(partitionDateColumn); partitionDateColumn = partitionDateColumnRef.getIdentity(); if (StringUtils.isBlank(partitionTimeColumn) == false) { partitionTimeColumnRef = model.findColumn(partitionTimeColumn); partitionTimeColumn = partitionTimeColumnRef.getIdentity(); } partitionConditionBuilder = (IPartitionConditionBuilder) ClassUtil.newInstance(partitionConditionBuilderClz); }