《2017年喜馬拉雅數據計算平臺xql.pdf》由會員分享,可在線閱讀,更多相關《2017年喜馬拉雅數據計算平臺xql.pdf(41頁珍藏版)》請在三個皮匠報告上搜索。
1、喜馬拉雅數據計算平臺XQL2017.11Outline XQL總覽 系統演進過程 周邊產品 經驗總結 未來展望XQL總覽 研發背景 總體架構 使用人群與場景XQL總覽 研發背景XQL總覽 研發背景?XQL總覽 研發背景?CoreSQLXQL總覽 總體架構?XQL總覽 總體架構 memory:4T spark Task:200w+XQL job:4000+dataSource:hdfs、hive、hbase、es、kafka、mysql、pg fileFormat:parquet、orc、csv、json、xmlXQL總覽 使用人群與場景系統演進過程 v1版本 v2版本 v3版本系統演進過程 v
2、1版本架構?v1?系統演進過程 v1版本通信邏輯clientSingle Spark Application on YarnSpark Driver JVMMaster共享SparkContextSpark Executor JVMSpark Executor JVMSpark Executor JVMSpark Executor JVMHttp serverLocalProxySpark RpcDownloadHandlerWorker隔離SparkSessionHDFSWorker啟動注冊clientSingle Spark Application on YarnSpark Driver
3、JVMMaster共享SparkContextSpark Executor JVMSpark Executor JVMSpark Executor JVMSpark Executor JVMHttp serverLocalProxySpark RpcDownloadHandlerWorker隔離SparkSessionHDFSWorker啟動注冊用戶提交clientSingle Spark Application on YarnSpark Driver JVMMaster共享SparkContextSpark Executor JVMSpark Executor JVMSpark Execut
4、or JVMSpark Executor JVMHttp serverLocalProxySpark RpcDownloadHandlerWorker隔離SparkSessionHDFSWorker啟動注冊用戶提交請求可用地址clientSingle Spark Application on YarnSpark Driver JVMMaster共享SparkContextSpark Executor JVMSpark Executor JVMSpark Executor JVMSpark Executor JVMHttp serverLocalProxySpark RpcDownloadHan
5、dlerWorker隔離SparkSessionHDFSWorker啟動注冊用戶提交請求可用地址返回異步IDclientSingle Spark Application on YarnSpark Driver JVMMaster共享SparkContextSpark Executor JVMSpark Executor JVMSpark Executor JVMSpark Executor JVMHttp serverLocalProxySpark RpcDownloadHandlerWorker隔離SparkSessionHDFSWorker啟動注冊用戶提交請求可用地址返回異步ID分配執行c
6、lientSingle Spark Application on YarnSpark Driver JVMMaster共享SparkContextSpark Executor JVMSpark Executor JVMSpark Executor JVMSpark Executor JVMHttp serverLocalProxySpark RpcDownloadHandlerWorker隔離SparkSessionHDFSWorker啟動注冊用戶提交請求可用地址返回異步ID分配執行寫HDFSclientSingle Spark Application on YarnSpark Driver
7、JVMMaster共享SparkContextSpark Executor JVMSpark Executor JVMSpark Executor JVMSpark Executor JVMHttp serverLocalProxySpark RpcDownloadHandlerWorker隔離SparkSessionHDFSWorker啟動注冊用戶提交請求可用地址返回異步ID分配執行寫HDFS通知masterclientSingle Spark Application on YarnSpark Driver JVMMaster共享SparkContextSpark Executor JVMS
8、park Executor JVMSpark Executor JVMSpark Executor JVMHttp serverLocalProxySpark RpcDownloadHandlerWorker隔離SparkSessionHDFSWorker啟動注冊用戶提交請求可用地址返回異步ID分配執行寫HDFS通知master通知proxyclientSingle Spark Application on YarnSpark Driver JVMMaster共享SparkContextSpark Executor JVMSpark Executor JVMSpark Executor JVM
9、Spark Executor JVMHttp serverLocalProxySpark RpcDownloadHandlerWorker隔離SparkSessionHDFSWorker啟動注冊用戶提交請求可用地址返回異步ID分配執行寫HDFS通知master通知proxy通知下載clientSingle Spark Application on YarnSpark Driver JVMMaster共享SparkContextSpark Executor JVMSpark Executor JVMSpark Executor JVMSpark Executor JVMHttp serverLo
10、calProxySpark RpcDownloadHandlerWorker隔離SparkSessionHDFSWorker啟動注冊用戶提交請求可用地址返回異步ID分配執行寫HDFS通知master通知proxy通知下載下載結果系統演進過程 v1版本其他功能 采用spark sql代替hive spark常駐服務 對hbase和json的hive表做了適配 支持文件的上傳下載 提供rest接口,支持shell腳本和程序調用系統演進過程 v1版本存在的問題 數據源支持比較有限 依賴hive的元數據 sql可讀性差的問題仍未解決 服務穩定性不高 沒有用戶權限驗證 大任務會耗盡所有資源系統演進過程
11、v2版本架構?v2?系統演進過程 v2版本綜合demoWithout XQLXQL系統演進過程 v2版本load語法 Datasource:HDFS(parquet、orc、json、csv)HBase JDBC Sharding Hive系統演進過程 v2版本load語法系統演進過程 v2版本save語法 Datasink:HDFS(parquet、orc、json、csv)HBase JDBC Hive系統演進過程 v2版本save語法系統演進過程 v2版本web演示系統演進過程 v2版本其他功能 大任務報警機制 語法幫助,sql自動生成 上傳下載對文件智能轉碼 采用spark的fair調
12、度 支持郵件訂閱結果 統一賬戶管理系統演進過程 v2版本監控報警Spark ListenerJobWaring Actor系統演進過程 v2版本sql補全系統演進過程 v2版本存在的問題 沒有負載均衡 缺少權限和審計 tableau(商業分析軟件)的最后一公里 開發人員的拓展需求系統演進過程 v3版本架構圖?v3?v3?系統演進過程 v3版本通信邏輯Multiple Spark Application on YarnMultiple Spark Application on YarnSpark Driver JVMMaster共享sparkContextSpark Executor JVMSp
13、ark Executor JVMSpark Executor JVMSpark Executor JVMSpark RpcWorkerHttp ServerLoadBalance ServiceLocalProxyDownloadHandlerEmailHandlerWorker隔離sparkSession啟動注冊ClientHDFSMultiple Spark Application on YarnMultiple Spark Application on YarnSpark Driver JVMMaster共享sparkContextSpark Executor JVMSpark Exec
14、utor JVMSpark Executor JVMSpark Executor JVMSpark RpcWorkerHttp ServerLoadBalance ServiceLocalProxyDownloadHandlerEmailHandlerWorker隔離sparkSession啟動注冊ClientHDFS用戶提交Multiple Spark Application on YarnMultiple Spark Application on YarnSpark Driver JVMMaster共享sparkContextSpark Executor JVMSpark Executor
15、 JVMSpark Executor JVMSpark Executor JVMSpark RpcWorkerHttp ServerLoadBalance ServiceLocalProxyDownloadHandlerEmailHandlerWorker隔離sparkSession啟動注冊ClientHDFS用戶提交請求LBMultiple Spark Application on YarnMultiple Spark Application on YarnSpark Driver JVMMaster共享sparkContextSpark Executor JVMSpark Executor
16、 JVMSpark Executor JVMSpark Executor JVMSpark RpcWorkerHttp ServerLoadBalance ServiceLocalProxyDownloadHandlerEmailHandlerWorker隔離sparkSession啟動注冊ClientHDFS用戶提交請求LB返回可用地址Multiple Spark Application on YarnMultiple Spark Application on YarnSpark Driver JVMMaster共享sparkContextSpark Executor JVMSpark Ex
17、ecutor JVMSpark Executor JVMSpark Executor JVMSpark RpcWorkerHttp ServerLoadBalance ServiceLocalProxyDownloadHandlerEmailHandlerWorker隔離sparkSession啟動注冊ClientHDFS用戶提交請求LB返回可用地址請求可用地址系統演進過程 v3版本權限模塊 id加密混淆 數據源讀寫權限驗證 用戶操作日志實時落盤系統演進過程 v3版本權限模塊系統演進過程 v3版本權限模塊系統演進過程 v3版本權限模塊?系統演進過程 v3版本性能優化 hbase增加snapsh
18、ot的讀取方式 測試環境xql,內存400G spark 2.2 hbase 0.98.18系統演進過程 v3版本性能優化 小文件寫入優化 支持按字段merge 支持數據重排系統演進過程 v3版本tableau支持 before:pg、hive now:web connect系統演進過程 v3版本其他功能 離線版本支持用戶udf反射注冊 提供公共classpath和私有classpath并存的部署模式,減少沖突 支持kafka、es作為數據源 支持xml格式的hdfs文件 支持灰度發布周邊產品 調度系統Job DAG周邊產品 調度系統Task?周邊產品 調度系統?周邊產品 數據看板經驗總結 單元測試的覆蓋率 升級前預發布環境流量重放 先小而美,再大而全,快速上線,持續迭代 注重用戶體驗 積極參與社區未來展望 sql的優化建議 數據源支持與強化:redis、carbondata、es與kafka 支持類似awk和grep的文本格式的分析 多實例的 AB test