This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin-on-parquet-v2 in repository https://gitbox.apache.org/repos/asf/kylin.git
commit 14b575083a06aaaa44a722a966cdd93f8d7c1e46 Author: XiaoxiangYu <hit_la...@126.com> AuthorDate: Tue Aug 18 23:27:07 2020 +0800 KYLIN-4705 add rest api for sparder-context url monitor --- .../java/org/apache/kylin/cube/model/CubeDesc.java | 24 +++++++--------------- .../org/apache/spark/sql/SparderContext.scala | 14 ++++++++++--- .../kylin/rest/controller/AdminController.java | 9 ++++++++ 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java index b8890cb..84048e9 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/model/CubeDesc.java @@ -183,9 +183,9 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware { @JsonProperty("retention_range") private long retentionRange = 0; @JsonProperty("engine_type") - private int engineType = IEngineAware.ID_MR_V2; + private int engineType = IEngineAware.ID_SPARK_II; @JsonProperty("storage_type") - private int storageType = IStorageAware.ID_SHARDED_HBASE; + private int storageType = IStorageAware.ID_PARQUET; @JsonProperty("override_kylin_properties") private LinkedHashMap<String, String> overrideKylinProps = new LinkedHashMap<String, String>(); @@ -662,10 +662,11 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware { throw new RuntimeException("Error during adapting hbase mapping", e); } } else { - if (hbaseMapping != null) { - hbaseMapping.init(this); - initMeasureReferenceToColumnFamily(); - } + // skip at Kylin 4.0 +// if (hbaseMapping != null) { +// hbaseMapping.init(this); +// initMeasureReferenceToColumnFamily(); +// } } // check all dimension columns are presented on rowkey @@ -1517,17 +1518,6 @@ public class CubeDesc extends RootPersistentEntity implements IEngineAware { return globalDictCols; } - public boolean isShrunkenDictFromGlobalEnabled() { - boolean needShrunkenDict = config.isShrunkenDictFromGlobalEnabled() && !getAllGlobalDictColumns().isEmpty(); - boolean needMrHiveDict = config.getMrHiveDictColumns().length > 0; - if (needMrHiveDict && needShrunkenDict) { - logger.info("ShrunkenDict cannot work with MrHiveDict, so shutdown ShrunkenDict."); - return false; - } else { - return needShrunkenDict; - } - } - // UHC (ultra high cardinality column): contain the ShardByColumns and the GlobalDictionaryColumns public List<TblColRef> getAllUHCColumns() { List<TblColRef> uhcColumns = new ArrayList<>(); diff --git a/kylin-spark-project/kylin-spark-query/src/main/scala/org/apache/spark/sql/SparderContext.scala b/kylin-spark-project/kylin-spark-query/src/main/scala/org/apache/spark/sql/SparderContext.scala index f70ea67..1c9f500 100644 --- a/kylin-spark-project/kylin-spark-query/src/main/scala/org/apache/spark/sql/SparderContext.scala +++ b/kylin-spark-project/kylin-spark-query/src/main/scala/org/apache/spark/sql/SparderContext.scala @@ -44,7 +44,7 @@ object SparderContext extends Logging { private var initializingThread: Thread = null @volatile - var APP_MASTER_TRACK_URL: String = null + var master_app_url: String = _ def getSparkSession: SparkSession = withClassLoad { if (spark == null || spark.sparkContext.isStopped) { @@ -60,7 +60,14 @@ object SparderContext extends Logging { } def setAPPMasterTrackURL(url: String): Unit = { - APP_MASTER_TRACK_URL = url + master_app_url = url + } + + def appMasterTrackURL(): String = { + if (master_app_url == null) + master_app_url + else + "Not_initialized" } def isSparkAvailable: Boolean = { @@ -139,6 +146,7 @@ object SparderContext extends Logging { .getOrCreateKylinSession() } spark = sparkSession + sparkSession.sparkContext.applicationId logInfo("Spark context started successfully with stack trace:") logInfo(Thread.currentThread().getStackTrace.mkString("\n")) logInfo( @@ -147,7 +155,7 @@ object SparderContext extends Logging { .getContextClassLoader .toString) initMonitorEnv() - APP_MASTER_TRACK_URL = null + master_app_url = null } catch { case throwable: Throwable => logError("Error for initializing spark ", throwable) diff --git a/server-base/src/main/java/org/apache/kylin/rest/controller/AdminController.java b/server-base/src/main/java/org/apache/kylin/rest/controller/AdminController.java index 843c609..cb44c0a 100644 --- a/server-base/src/main/java/org/apache/kylin/rest/controller/AdminController.java +++ b/server-base/src/main/java/org/apache/kylin/rest/controller/AdminController.java @@ -33,6 +33,7 @@ import org.apache.kylin.rest.response.GeneralResponse; import org.apache.kylin.rest.response.MetricsResponse; import org.apache.kylin.rest.service.AdminService; import org.apache.kylin.rest.service.CubeService; +import org.apache.spark.sql.SparderContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; @@ -106,6 +107,14 @@ public class AdminController extends BasicController { return configRes; } + @RequestMapping(value = "/sparder_rul", method = { RequestMethod.GET }, produces = { "application/json" }) + @ResponseBody + public GeneralResponse getSparderUrl() throws IOException { + GeneralResponse configRes = new GeneralResponse(); + configRes.put("url", SparderContext.appMasterTrackURL()); + return configRes; + } + @RequestMapping(value = "/metrics/cubes", method = { RequestMethod.GET }, produces = { "application/json" }) @ResponseBody public MetricsResponse cubeMetrics(MetricsRequest request) {