《网易大数据平台架构实践课件.ppt》由会员分享,可在线阅读,更多相关《网易大数据平台架构实践课件.ppt(43页珍藏版)》请在三一办公上搜索。
1、网易大数据平台架构实践,技术创新,变革未来,01,02,03,04,05,大数据平台概述,Kudu,:实时更新存储,Sloth,:实时计算,Kyuubi,:,Spark,多租户,未来规划,PART 01,大数据平台概述,网易大数据发展历程,提速阶段,(2014),平台化,(20092010),大数据初体验,起步阶段,(20112014),工具化,整合阶段,猛犸,有数,初级阶段,(2008),传统方法,大数据系统为什么难用,SparkSQL,查询处理,FlinkSQL,Spark,执行器,kafka,Redo Log,Flink,HDFS,Parquet,表,HDFS,Parquet,物化视图,
2、Hbase/ES,索引,平台的需求是什么,01,提供大数据基础能力,02,提升使用效率,03,提升管理效率,04,多租户和安全,大数据体系架构,大数据应用开发层,数据加工,数据计算,资源管理,数据存储,数据集成,数据源,数据集成,离线计算,Hive,大数据开发套件(可视化,IDE,),作业流开发,数据开发,任务运维,流式计算,Sloth,统一资源管理与调度,Yarn,自助分析,数据管理,内存计算,Spark,权限管理,多租户管理,元数据管理,分布式文件系统,HDFS,和,Kudu,全量,/,非实时接入,Sqoop,结构化数据,如,RDBMS,备库,半结构化数据,如,JSON,分布式数据库,HB
3、ase,实时,/,增量接入,NDC,和,DataStream,非结构化数据,如音频文件,数据质量校验,DQC,秘钥管理,Kerberos,运维监控,Ambari,平台特色,统一元数据服务,流计算服务,?,?,?,?,?,Hive,spark,impala,hbase,元数据打通,数仓体系内,用户无需在不同的系统一,之间做元,数据同步,不同系统组件之间,数据全增量同步,Sloth,流计算服务化平台,通过增量计算的方式,来完成流计算任务,使用,SQL,作为开发方式,完全与离线,SQL,兼容,,支持,window/join/subquery/having,等复杂,SQL,功能,?,数据安全与权限,?
4、,?,?,?,一站式,?,?,HDFS/Hive/Impala/Spark,等组件自动权,限同步,支持到列级别的权限控制,基于角色访问控制,权限控制到个人,支持操作审计,一站式的数据平台,一站式的统一部署,监控,运维体系,自研和开源相结合,Kafka,服务化,自研日志和数,据库同步工具,扩展,Ranger,统一授权、性,能优化,Spark,高可用,多租户,Kudu,优化,PART 02,Kudu,:可更新存储,Kudu,定位,HDFS,:,批量数据写入能力,没有数据更改能力;在实时性要,求较高的场景下,,510min,需要写入一个文件,造,成小文件数量比较多,对,NameNode,压力较大;对
5、,大批量数据扫描比较又好,基本没有随机查询能力,HBase,:,大批量数据写入能力;极高的随机数据读写能力;支,持指定,rowkey,的,update,操作;扫描分析能力非常低,下,Kudu,:,兼备,HDFS,大数据量写入与分析扫描能力,同时具备,HBase,的随机读写能力,与,HBase,对比,HBase,Kudu,集群架构,Master-Slave,结构,Master-Slave,结构,选主方式,ZK,选主,Raft,内部自动选主,数据分布,Range,方式分区,Range,、,HASH,分区,支持组合分区,数据写入,HDFS(Pipleline),Raft,多副本,数据格式,Colum
6、nFamily,级别列存,RowGroup,形式,同一个,RG,内部列存,(,类似,Parquet),Kudu,原理,Kudu,的缺陷,?,?,Impala/Kudu,与,Impala/Parquet,比有不小差距,没有,Split&Merge,功能,官方,TPCH,测试结果,结论:我们性能比,Parquet,就好那么一点点,_,1T,数据,Kudu&Parquet,性能测试,3000.00,2500.00,2000.00,1500.00,1000.00,我们,TPCH,测试结果,500.00,大家都是搞技术的,还是诚实点好,_,0.00,q1,q2,q3,q6,q7,q10 q12 q14,
7、q15,q16 q17 q18,q19,parquet,kudu_raw,Kudu Runtime Filter,没有,runtime filter,User,表,a(10,万记录,),Event,表,b(10,亿记录,),加入,runtime filter,功能,select xxx from user a,event b on a.userid=b.userid where xxx,通过,runtime filter,功能,小表的连接键被做成,BF,形式通过,Impalad,下发到,Kudu,节点,联合大表的连接键,在大表读取数据时参与数据,的过滤,从而使得大表传递到,Impalad,层的
8、数据大量减少,即在计,算前减少参与计算的数据量,达到提升效率的结果,Kudu Runtime Filter,Kudu Runtime Filter,1T,数据,Kudu&Parquet,性能测试,3000.00,2500.00,2000.00,1500.00,1000.00,500.00,0.00,q1,q2,q3,q6,q7,q10,q12,q14,q15,q16,q17,q18,q19,parquet,kudu_new,kudu_raw,Kudu Tablet Split,?,支持,Range,分区分裂,?,仅修改元数据,在线完成分裂,,compaction,时再做物理分裂,?,主从协同,
9、应用场景,01,秒级实时,02,点查询和多维分析融合,03,实时维表,(一)秒级实时,共享单车解决了出行最后一公里问题,Kudu,解决分析数据最后半小时的实时性问题,实时写入,小批量写入,(二)点查和多维分析融合,游戏用户行为日志系统,游戏用户行为日志主要作用:,?,指定用户行为查询,(,给定用户,id,,查询某个时间段内的行为,可以进行反外挂等分析,),?,大批量用户行为分析,(,分析特定区域用户行为,比:如哪个区域玩家氪金较多?,),原先的架构,Data,Source,HBase,Log/action,2030,亿,/,天,指定用户,scan,Kafka,HDFS,Parquet,Impa
10、la,Result,output,HBase,:,指定用户,id,查询,HDFS,:,批量用户行为分析,架构缺陷:,两套系统,数据需要保存两份,,6,副本数据,点查和多维分析融合,Data,Source,Log/action,Impala,Random read/olap,N,K,D,u,d,W,u,Result,output,只需要一份数据,提供随机查询和数据分析,(三)实时维表,实时同步维度数据,联查分析,数据同步工具,数据库,Kudu,Hadoop,PART 03,Sloth,:实时计算,Sloth,特点,SQL,开发,与离线,SQL,兼容,执行引擎,扩展,Flink,Exactly O
11、nce,增量计算模型,DDL,UDF,Having,Join,Subquery,Whole,Stage,CodeGen,与离线统一平台,Sloth,开发平台,Sloth,增量计算,案例:,所有商家按销售额做分类统计,销售额在,0,100,区间内的归为一类,,100,200,区,间的的归为一类,以此类推,通过计算输出每个区间内的商家个数。,这个任务可以用,SQL,定义为:,-stage1,:计算每个商家的销售总额,INSERT INTO tmp,SELECT seller_id,sum(payment)as total FROM source GROUP BY seller_id;,-stage
12、2:,计算每个销售额区间内的商家个数,SELECT count(seller_id)as num,total/100 as range FROM tmp GROUP BY(total/100);,Sloth,增量计算,输入数据,离线计算,流式计算,增量计算,Sloth,增量计算,输入数据,离线计算,流式计算,增量计算,Sloth,增量计算,输入数据,离线计算,流式计算,增量计算,Sloth,增量计算,输入数据,离线计算,流式计算,增量计算,Sloth,执行计划生成,PART 04,Kyuubi,:,Spark,多租户,Kyuubi V.S.HiveSever2,相同点:,?,xDBC,方式,不
13、依赖语言,方便与应用进行数据交互,;,应用侧不依赖,Hive/Hadoop libs,部署简单,无客户端兼容性问题;,MetaStore/HDFS,配置不可见,无数据及元数据泄露问题;,Authentication&Authorization,,解决数据安全问题;,HA,机制,动态扩容,解决应用侧的并发和负载均衡问题;,?,?,?,?,不同点:,?,Spark SQL vs MapReduce,Kyuubi V.S.Spark Thrift Server,1.,多租户,-,SparkContext,多实例,-,Hadoop Impersonation,2.Spark SQL as a Serv
14、ice,-,High Availability,-,Operation log,3.Security,-,Kerberos Support,-,Row/Column Level Authorization,Kyuubi,:统一接口,一套接口规范,?,无缝衔接,易于集成,HiveServer2 Thrift API,两种执行引擎,?,?,Hive,Spark SQL,多种连接方式,?,?,?,Beeline,JDBC,ODBC,?,?,?,猛犸,有数,Kyuubi,:弹性资源,Kyuubi,动态资源申请,?,资源高效,控制成本,支持,session,级别配置:队列,/,核数,/,内存,/,等等,
15、?,示,例,:,jdbc:hive2:/host:port/;hive.server2.proxy.,user=tom#,spark.yarn.queue=theque,;,spa,rk.executor.instances=3,;spark.executor.co,res=3;spark.executor.memory=10g,Txxx,Session,Req,Txxx,Session,Resp,Thrift Client,Txxx,Operation,Req,Txxx,Operation,Resp,Kyuubi,动态缓存,SparkContext,?,?,基于用户连接创建、注册,基于空闲策
16、略缓存、回收,Kyuubi Server,Frontend Service,Backend Service,Session Manager,SparkSessionCache,Manager,SparkSession,KyuubiSession,KyuubiOperation,Spark,动态资源分配特性,?,?,?,?,spark.dynamicAllocation.enabled,spark.dynamicAllocation.minExecutors,spark.dynamicAllocation.maxExecutors,.,OperationManager,Kyuubi,:安全特性,
17、安全认证,安全访问,权限隔离,?,?,Kerberos Support,Hadoop Impersonation,代理执行,权限控制,?,?,?,集成,spark-authorizer GitHub:,https:/,Row/Column Level Access Control,端到端数据安全隔离,Spark Authorizer,Kyuubi,:服务可用性,?,?,并发,负载均衡,水平扩展,负载均衡,基于,ZooKeeper Namespace Discovery,实现,?,?,?,单点故障,服务可用性,兼容,HiveServer2,JDBC Client,jdbc:hive2:/;,se
18、rviceDiscoveryMode=zooKeeper;,zooKeeperNamespace=kyuubi;,hive.server2.proxy.user=tom#,spark.yarn.queue=theque;,spark.executor.cores=3;,spark.executor.memory=10g,KyuubiServerhost1:port1,ZooKeeper,MetaStore,&,Hadoop,JDBC Client,KyuubiServerhost2:port2,总结,Kyuubi,一个以,HiveServer2 Thrift API,为接口协议,以,Spark SQL,的内置处理引擎的即席查询服务。,它对于,Spark,自带的,Thrift Server,相比增加了适应于多租户场景下的特性,?,无缝衔接,易于集成,?,资源高效,控制成本,?,安全访问,权限隔离,?,水平扩展,负载均衡,Get Kyuubi,?,GitHub:,https:/,PART 05,未来规划,未来规划,01,高性能查询引擎,02,离线和实时计算混部,03,新硬件加速,GPU/FPGA,04,智能任务诊断和优化,