大数据职业发展方向&知识图谱

大环境不是很好,打铁还需自身硬,无论任何情况下,只有不断提升自我,才能做到内心平静!最近两天工作不是很忙,带着部门的小伙伴梳理复盘了一下大数据方面的知识点。现在分享出来,希望对大家有所帮助,这些都是我们的一些总结体会,欢迎大家拍砖交流,推荐收藏。

大数据相关工作方向

大数据相关工作主要分为数据开发、平台开发、基础架构三部分。

数据开发:

主要包括数据仓库、离线/实时数据开发等工作内容。比较重要的知识点和工具集如下:

•数据仓库 数据仓库理论(Kimball、Inmon)、仓库分层、数据仓库模型(星型、雪花、星座)、数据集市等。 大数据环境下数据仓库通过Hive来构建。

•离线数据开发 1:大部分基于数据仓库进行分析,主要语言为sql结构化查询语言,机器学习算法等; 2:离线处理工具:Hive、Spark、pig(很少使用)。

•实时数据开发 1:实时数据处理,实时推荐、金融风控、异常实时检测等应用场景,数据时效性越来越重要。 2:实时处理框架:structed streaming(小批量,伪实时)、strom(实时,吞吐性能不好)、flink(目前最火,实时处理,吞吐性能好,批流合一,发展趋势,重点掌握)。

平台开发:

平台开发的主要作用是提升业务人员和数据开发人员的工作效率,加速数据流通。包括数据资产管理、自助分析平台、数据报表(可视化)平台、数据采集迁移平台、开发协作平台、数据接口服务等内容。

•数据资产管理 1:又称数据治理,企业数据资产平台,可大致分为元数据管理、数据指标体系、数据质量管理等模块;成熟度标准可参照《GBT 36073-2018 数据管理能力成熟度评估模型》 2:数据爆炸时代,资产管理越来越重要,资产管理概念比较大(每个企业业务不同,实施起来侧重点不同),比较合理的突破点是先从元数据管理和指标体系入手。 3:数据治理开源框架:atlas

•自助分析平台 1:成本考虑,将数据分析能力从数据开发人员下放到一般业务人员或数据分析人员; 2:为数据分析师提供方便易用的数据分析平台; 3:开源框架:zeppelin、presto等交互式分析查询引擎,我们基于sparksql自研。

•数据报表(可视化)平台 企业BI平台,计算和展示企业运营发展关键指标、稳定指标的发展趋势,支持运营调度和分析决策。

•数据采集迁移 1:数据开发具备一定规模后,从数据采集、ETL、挖掘分析、到最后的可视化,都需要提效。制定好数据采集和迁移标准,然后平台化可以很好的解决这个问题。 2:开源框架:数据埋点、canal(mysql binlog订阅)、maxwell(对业务库有侵入)、datax等。

•开发协作流程 1:同上主要解决数据开发人员效率问题,由原始的shell脚本方式提交,发展成可视化平台方式提交,提供串行、并行等工作流设置。 2:工作流开源框架:airflow、azkaban(目前正在使用)。

•数据接口服务 除数据报表(可视化)平台外,另一种数据提供方式,主要解决不同业务间、不同公司间数据获取问题。提供标准的传入参数和数据输出格式。基于底层存储(hbase/druid/mysql/clickhouse等)划分的微服务架构。

基础架构:

基础架构主要保障大数据集群稳定高可用,持续跟踪数据处理技术发展趋势,保持技术先进性。主要包括大数据基础环境运维和数据技术调研跟踪等工作内容。

•大数据基础环境运维 处理大数据基础环境运行监控、服务安装等日常维护操作,单独安装大数据生态组件规划不好的话,会比较混乱。建议使用专业的工具; 框架:ambari(开源,hdp版本),cloudrea manager(分免费收费版,cdh版本),国内的有星环(我可没有收他的广告费啊)。底层环境越稳定越好,财大气粗可以购买收费产品。

•数据技术调研、跟踪 数据不断增加,技术不断创新、场景更加丰富,需要连续跟进技术的发展,提升数据流通速度(企业核心竞争力,数据洞察能力要先人一步)。 1:不断观察未来的技术趋势,lambda架构,内存计算、端计算等技术需要投入精力调研和落地。 2:面试加分项:计算框架容器化,弹性计算、k8s容器编排在大数据上的应用。

图片

大数据重要技术栈

说完了大数据的工作内容,我们再说一下面试过程中经常问到的知识点。个人认为数据处理技术从采集、存储、处理到最后的展现,无非就是数据存储、计算框架、消息队列、协调服务、资源协调等技术框架。

数据存储:

这里的数据存储既包含构建数据仓库的hdfs、也包含用于分析展现的hbase、druid、clickhouse等特定场景数据库。

•HDFS:分布式文件系统 组件:client、namenode(HA)、datanode、journalnode知识点:HA实现方式,rpc通讯原理(代理、反射、需要实现特定的接口,局限性)

•★ Hbase:分布式列式数据库 组件:client、hmaster、regionserver、zk、hdfs知识点:rowkey设计,数据读取写入流程。

•Druid:分布式分析型数据库

•ClickHouse:分布式分析型数据库

计算框架:

离线计算对应实时计算、批处理对应流处理。计算框架部分需要重点掌握,面试时出的题比较多也比较深,例如:spark的通信机制(早期的akka、现在的netty),flink为什么吞吐性能比storm高(flink内存模型重构,不会出现storm的内存溢出问题)等。后续我们另起文章详述。

•批处理或者离线处理:mr、hive、spark、pig等 ★重点:hive、spark

•流处理或者实时处理:Flink(批流合一)、Storm、structed streaming等 ★重点:flink、spark

消息队列:

消息队列就要做消息队列的事情,现在kafka出了kSQL,甚是不理解,感觉有点不务正业。

•★最常用:kafka组件:producer、broker、consumer、zk;topic、partition、group、replication。重点:消费语义及如何实现(at lease once/exactly once/at most once)、副本机制、 版本信息(各版本之间的区别)。

协调服务:

用途最广,服务注册、发现,分布式锁等。

•★最常用:zookeeper重点:树状结构(类似文件系统)、选举机制、znode类型。

资源协调服务:

之前我们的资源协调服务是mesos,当时在离线计算、实时计算、自助分析等不同业务的资源划分上,没有解决相互间空闲资源的共用问题,可能是mesos研究不深导致的吧。改成yarn后,上述问题很容易就解决了(capacity schedule)。

•★Yarn 组件:client、applicationmaster、resourcemanager、nodemanager。重点:资源调度策略(capacity schedule、fair schedule)

•Mesos

•Kubernetes(k8s) 未来发展趋势,加分项,弹性计算(计算框架容器化)。

上述加★的部分,我觉得是每个大数据技术从业人员必须要掌握的内容,能做到源码级理解最好,搞清楚框架的架构和设计模式,知其所以然,你出去面试的时候会比较轻松。

图片

分布式系统要素

上面我们讲到hdfs、hbase、spark、flink等技术框架都是分布式系统,那么分布式系统应该怎么学习呢?我们站在高层次去审视上述系统的时候,会发现它们都可以抽象出组件(基本组成部分)、存储、计算、通信等组成部分来。因此掌握上述组成部分就掌握了分布式系统。

•组件:组成部分,每个分布式服务都有自己独特的组成部分,例如:spark(sparksql/spark streaming/mllib/graphx),hadoop(hdfs/mr/yarn)等。

•存储:数据结构(数据块、hbase的region,spark的rdd/dataframe,flink的dataset/datastream)、内存分配、垃圾回收等机制。

•计算:spark或tez的DAG(有向无环图)、flink的窗口机制、算子(map/flatmap/join/shuffle)、多线程处理等。

•通信:网络编程(socket/io/nio),通信框架akka、netty。基于事件驱动等模式。

•这部分内容有点方法论的意思,一通百通。再多说两句,开源框架的学习,一定要找第一手资料,什么是第一手资料呢?一般为框架自身带的说明性文档,apache的顶级项目都会有很详细的技术文档供查阅。

图片

本文内容来自公众号:数据黑板报
更多大数据相关文章:大数据启示录博客园 | 巨人肩膀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值