《2020年終大會-大數據架構:5-3.pdf》由會員分享,可在線閱讀,更多相關《2020年終大會-大數據架構:5-3.pdf(35頁珍藏版)》請在三個皮匠報告上搜索。
1、車好多毛豆瓜子讓每個家庭都擁有更好的車結構化大數據鏈路在車好多的實踐汪涉洋車好多大數據團隊負責人年終大會2020DATAFUNTALK#page#Agenda,數據鏈路的定位數據鏈路在瓜子的發展歷程。技術挑戰及解決 Insight & FutureWorkQ&A年終大會2020車好多川子四郵鍋讓每個家庭都擁有更好的車DATAFUNTALK#page#Agenda數據鏈路的定位數據鏈路在瓜子的發展歷程技術挑戰及解決Insight & FutureWorkQ&AC年終大會2020車好多瓜子正鍋讓每個家庭都擁有更好的車DATAFUNTALK#page#瓜子的數據源分類1.交易數據(CDC流)數據湖數
2、據應用數據源頭2.流量數據(click/viewevents、app日志埋點等)監控報量交易數據學習證數據加工3.業務行為數據(業務安全流量分析商業分析業務安全業務大屏o2o業務線上鏡像化)流量歡據二手車輛車輛評估定價智能客服業務行為數據(像化)業務分單推薦年終大會2020車好多瓜子格利車道拍讓每個家庭都擁有更好的車DATAFUNTALK#page#數據鏈路方向的定位1.數據進入大數據體系的hub2.提供各存儲系統數據交換的服務(e.g.like公有云DTS)3.0LTP數據庫的CDC數據流(e.g.mysqlbinlog)4.提供消息隊列服務(kafka)5.提供一站式的Schema管理能力
3、(SchemaRegistrybased-onApache-avro)年終大會2020車好多瓜子飯幸建83讓每個家庭都擁有更好的車DATAFUNTALK#page#Agenda數據鏈路的定位數據鏈路在瓜子的發展歷程技術挑戰及解決Insight & FutureWorkQ&AC年終大會2020車好多瓜子四鍋讓每個家庭都擁有更好的車DATAFUNTALK#page#數據鏈路在瓜子的發展歷程技術方向的發展歷程,伴隨業務發展階段。第一階段:搭建使用異步通信、站內搜索等點狀功能(引入kafka,提供簡單的binlog流)第二階段:建設數據能力體系建立交易/流量數倉,使用sqoopflumekafka大量
4、ingest數據入倉第三階段:微服務化業務復雜度升高,應用服務架構開始走向微服務化,大量微服務間走異步通信(引入Schema體系,微服務團隊間送代開發解耦)第四階段:技術提升引入CDC平臺,搜索(ES)、數倉ods層(hbase、kudu)達到near-realtime水平,數據鏈路上下游存儲的Schema一致性變更。SLA不斷提升。年終大會2020車好多瓜子四郵83讓每個家庭都擁有更好的車DATAFUNTALK#page#Agenda數據鏈路的定位數據鏈路在瓜子的發展歷程技術挑戰及解決Insight & FutureWorkQ&AD年終大會2020車好多瓜子金郵83讓每個家庭都擁有更好的車D
5、ATAFUNTALK#page#挑戰1kafka集群穩定性和運維復雜度年終大會2020車好多瓜子金郵83讓每個家庭都擁有更好的車DATAFUNTALK#page#挑戰1.kafka集群穩定性和運維復雜度集群穩定性隨著業務發展,微服務、binlog流、流量數據、日志數據在ingest入大數據時都會經過kafka,單kafka集群遇到了明顯的瓶頸。不同業務之間的SLA強耦合。quota能力?集群的運維壓力kafka-admin:1.5人。維護7套kafka集群,2019年中,topic:6k+,partition:2.5w+年終大會2020車好多瓜子正郵發讓每個家庭都擁有更好的車DATAFUNTA
6、LK#page#挑戰1.kafka集群穩定性和運維復雜度Solution:1.按SLA拆分獨立集群,提供匯總集群。streaming都跑在匯總集群上。2.用戶支持,自研發平臺化套件。3.運維引入ClouderaManager&Ansible-awx。年終大會2020車好多金郵瓜子83讓每個家庭都擁有更好的車DATAFUNTALK#page#按SLA和場景拆分kafka集群高SLA、低延退場景MirrorMaker1.站內搜索的準實時createindexWe AppSKafkaOnline2.微服務間異步通信&在線系統MQ3.內部IMMirrorMakerKafka其他場景:Ofine1.we
7、b/app點擊流Kafka2.appfact日志數據入hadoopPOAppsforP03.普通streaming應用加工流數據K-SQLKafkaKStreamAnayssFlume年終大會2020車好多瓜子四粥讓每個家庭都擁有更好的車DATAFUNTALK#page#用戶支持自研發平臺化1.topic生命周期管理“topic申請,“partition個數建議/topic歸屬(數據治理)“topic變更加減partition/變更集群2.kafka user platform消息是否真實發送了?避免producer&consumer扯皮*consumerlag需要監控+告警年終大會2020車
8、好多四郵瓜子83讓每個家庭都擁有更好的車DATAFUNTALK#page#運維的短期高壓/人效vs長期精細化1.免費托管平臺ClouderaManager / Ambari短期高壓/人效2.分布式配置管理Ansible-awx長期精細化運維更快的版本選代更精細化的metricscollectCustomized patch年終大會2020車好多瓜子金郵83讓每個家庭都擁有更好的車DATAFUNTALK#page#挑戰2.鏈路上各存儲系統Schema管理難年終大會2020車好多瓜子金郵83讓每個家庭都擁有更好的車DATAFUNTALK#page#Schema的典型困難場景1.數倉鏈路目前為mys
9、qlbinlog-kafka-ods(hbase)-dwd(hdfs)如果mysql進行了激進DDL,比如“刪除了字段or更改了字段”,下游鏈路會發生什么?2.Kafka作為異步通信的基礎,Producer&consumer屬跨團隊使用json對接時兩邊送代開發速度不一致,信息不夠同步,producer要做通信字段變更有哪些風險?年終大會2020車好多瓜子金郵83讓每個家庭都擁有更好的車DATAFUNTALK#page#數據鏈路上游DDL的困難Challenge:1.上游mysql進行激進DDL(刪字段、改字段),下游的存儲hive/ES/hbaseSchema不兼容時鏈路會報error直接c
10、rash。2.hive里直接做DDL,歷史數據會面臨不可讀。Columnar-store的醉端Solution :禁止業務做激進的DDL,優先加字段,有限改字段(smallint轉int可以,string轉int不行)But,禁止業務在交易庫做DDL真的是真理么?DDL后,下游能否自動適配呢?年終大會2020車好多瓜子正郵83讓每個家庭都擁有更好的車DATAFUNTALK#page#Kafka生產/消費者通信的困難1.魯棒性不夠(以json通信為例,字段數量合規嘛?字段判空校驗?設default值?)2.下游要了解kafkatopic里字段含義,還要看上游源碼?3.生產者/消費者獨立選代需求,
11、改字段了還能正常工作么?年終大會2020車好多四郵瓜子83讓每個家庭都擁有更好的車DATAFUNTALK#page#引入強Schema體系1. Protobuf / Thrift / Avro. choose one.2.Need a schema-registry and a company-level schema management system3.一并解決Compatiblecheck&Fielddocument年終大會2020車好多瓜子金郵83讓每個家庭都擁有更好的車DATAFUNTALK#page#引入強Schema體系Schema Registry二schema-1(value
12、=Avro/Protobuf/SON)schema-2(value=Avro/Protobuf/JSON)schema-3(value=Avro/Protobuf/JSON)KofkoschemgschemgdatadotosendAvro/Protobuf/JSON datareadAvro/ProtobufSONdataserializedperschemaiddeseriolizedperschemaidSend(register)schemoGet schema byid(ifnotinlocalcache)(ifnotin localcache)producersconsumersl
13、ocalcochelocal cocheforschemasforschemasConfluentSchemaRegistry forstoringandretrievingschemas年終大會2020車好多瓜子)毛豆車通的做室)讓每個家庭都擁有更好的車DATAFUNTALK#page#使用ConfluentAvroSchemaRegistry&自研schema管理平臺1.支持add/modifyschema2.歷史版本全記錄,支持在線diff3.集成在線的Compatiblecheck能力,防錯改錯刪4.AvroSchema自帶doc能力年終大會2020車好多瓜子金郵83讓每個家庭都擁有更
14、好的車DATAFUNTALK#page#自研Schema管理平臺機Big Data Platform品口AVDLSCHEMACOMPARECHANGE HISTORYQgrowt/factgrowth_tracking_hdfsfatgrowthtacking_fs0章站年終大會2020車好多瓜子讓每個家庭部擁有更好的車DATAFUNTALK#page#挑戰3.CDC鏈路SLA提升難年終大會2020車好多瓜子金郵83讓每個家庭都擁有更好的車DATAFUNTALK#page#CDC鏈路的SLA有哪些要求?1.end2endlatency要低,站內搜索實時數倉,秒級:15s2. No downti
15、me能自愈,永遠不會斷鏈。掛了最好不要人介入,但人必須知道年終大會2020車好多五子金郵83讓每個家庭都擁有更好的車DATAFUNTALK#page#交易業務系統kafka核心鏈路下游存儲Kubernetesavro schema數據倉庫存儲心母擬業務方1batch傳統存儲Hive.HDFS群業務方2一業務topic:點-C00mSUsink集群HBase業務topic:A-producof業務方3hdfs-sinkerTkonaOLAP新式存儲群全消息中間件Source集群hbasekudukafka集群sinkerkudu-sinkerbinlog線上搜索服務搜索indexer-ES集群E
16、TL控制面builder任務CRUDkafka-consumr鏈路耗時213年終大會2020車好多瓜子3車通極)讓每個家庭都擁有更好的車DATAFUNTALK#page#CDC鏈路的延退點1.t1:mysql入kafka,批量刷數binlog要求嚴格有序,kafkaclient有同步/異步。異步有亂序binlog-file是mysql實例級別,但kafkaconsumer期望是table級別的binlog2.t2+t3:kafka connect task rebalancekafkaconnect 簡介Maxwell on kafka-connectTasks在kafka-connect集群
17、中使用kafkagroupprotocol做rebalance在2.3.x版本時,每次add/updatetask都是全局rebalance,當binlog任務達到上干個之后.一輪rebalance就要10min+年終大會2020車好多川子讓行個家庭都擁有英好的車DATAFUNTALK#page#緩解mysql入kafka延退1.禁止業務方全表刷數,聯合DBA改造sql上線平臺,rewrite全表刷數sql,削峰慢慢跑,N行persecond.2.主動針對同一個mysql實例元余多份不重名的讀binlog-maxwel任務,尤其在站內搜索等場景。拆分kafkaconnect集群幾余任務進搜索(
18、elasticsearch)和進hadoop的分開部署年終大會2020車好多瓜子西郵83讓每個家庭都擁有更好的車DATAFUNTALK#page#緩解connect集群導致的全局延退*2019-07 kafka release 2.3.0KIP-415:Incremental Cooperative Rebalancing in Kafka Connect*2019-12kafka release 2.4.0#Before很重的運維成本1.Multi cluster2.想嘗試去Customizerebalance。#After1.Upgradeto新版本,但踩了坑。until 2019-12
19、kafka 2.4.0 release。2.基于kafka-connectRestAPI開發了管理系統,針對taskCRUD使用UI提效年終大會2020車好多瓜子國鋪讓每個家庭都擁有更好的車DATAFUNTALK#page#kafkaconnect2.3KIP-415增量rebalance:KAFKA-5505KafkaKAFKA-5505Connect:Do not restart connector andexisting tasks on task-set changeDetailsPeopleRESOLVEDImprovementStatus:Type:O KonstantiAssig
20、neeFixedPriority:Resolution:MajorO Per StefteReporter2.3.0AffectsVersion/s:0.10.2.1FixVersion/sReviewerRandall HaucComponent/sKafkaConnectVotes:6Vote fortLabels:NoneWatchers19StartwatDescriptionyDatesCreated:23/Jun/1708Updated14/Feb/2001theconnectoritselfandall10existing tasksarerestartedjusttomaket
21、he1thtaskrunalso.Mytasks haveafairly heavylessepap/mauuoalaumpoueBunponubueuesopoMBuouuenxBueu uonezeuResolved17/May/1903started/stoppedwhennotifyingthesystemthattesetoftaskschanged(calingcontextrequestTaskReconiguration-orsomethingsimilar).withdynamicsetoftasks”牛線云2020DATAFUNTALK#page#kafka connect
22、 2.3 bug: KAFKA-9184Kafka/KAFKA-9184Redundant task creation and periodic rebalances after zombie workerrejoins the groupDetails PeopleStatusType:dBugRESOLVEDKonstantineKAssigneePriority:BlockerResolutionFixedKonstantine KReporterAffectsVersion/s:2.4.02.3.2FixVersion/s2.4.02.5.0,2.3.2ReviewerRandal H
23、auchComponents:KafkaConnectVotes3Vote for thisiLabelsNoneWatchers5Start watchinDescriptionyDatesFirstreportedhere14/No/1901:53Created:04/Mar/2020:58UpdatedThere seems to be an issue with task reassignment when aworker rejoins after an unsuccessful join request.The worker seems toResolved05/Dec/1902:
24、01beoutside the group forageneration but when it joinsagain the same taskis runningin more than one workerIssue LinksisrelatedtoRESOLVEDKAFKA-9385Connectcluster:connectortaskrepeatlikeasplitbraincluster problemRESOLVEDKAFKA-9653Duplicate tasksonworkersafter rebalanceLULUDATAFUNTALK#page#Insight1.創業公
25、司做inf,不能著急追求80分,先過60分,支撐業務第一位2.但不要忘記,最終還是要走向90分3.保持對社區的跟進熱度,看看是否已經有人做過了,甚至是plan/design過了。4.做源碼級修改要克制,造輪子更要克制。機會成本要衡量。5.inf五要素:穩定性、資源利用率、自動化程度、技術先進性、用戶易用性企業不同階段,主要矛盾不同年終大會2020車好多招程瓜子83讓每個家庭都擁有更好的車DATAFUNTALK#page#FutureWork1.跟進kafka社區準備未來的upgrade,kafka社區依然發展很快KIP-500:Replace Zookeeper with a Self-Man
26、aged Metadata QuorumKIP-545:support automated consumer offset sync across clusters in MM 2.02.將數倉的ods層切換到datalake技術(hudi)upsert on DFS( cloud native)insteadofLambda架構near real-time,3.探索Pulsar,看看能否在對客戶端zero-impact情況下把kafkabroker切換成pulsar,解決超大規模流量的kafka集群擴容難題年終大會2020車好多瓜子四里讓每個家庭都擁有更好的車DATAFUNTALK#page#Q&A年終大會2020車好多川子四鍋讓每個家庭都擁有更好的車DATAFUNTALK