【经典】一个大数据学习的解决方案

从0基础小白到架构师,对于一个没入行的小白来说,想都不敢想,它不仅需要时间的磨炼,开发经验的积累,更需要有合适的机遇与平台。对于大数据技术应用方面,无论是传统行业还是互联网行业,经过这几年的发展已经相当成熟。很多有IT基础的小伙伴冲着大数据薪资高、待遇好、就业前景不错,都争先恐后的加入到大数据技术学习的行列中来,特别是有Java基础的同学,因为Java行业已趋近饱和,薪资干了几年没见涨,职位晋升也无望,大数据成为大家唯一的出路(因为大数据90%以上的技术都是java开发的,过渡比较容易)。但大多数是三分热度,最后无法坚持下去。原因不是不想学,确实是坑太多。

 

 

接触过大数据技术的小伙伴应该比较了解,企业一般使用的大数据技术都是开源的,而且同类技术有很多种,一个完整的企业级项目实现需要多个层级技术的整合,包括数据获取、数据存储、数据计算、作业调度、数据分析以及大数据平台构建、运维、监控、安全。大数据项目流程比较多,涉及到的技术也比较广,这就需要大家有一个成熟的项目架构以及成熟的解决方案。也正因为如此,成就了大数据行业很多的技术高手,而且也是大数据人才稀缺、薪水高的原因。

 

 

我做大数据也有小10年了,中间有很多小伙伴经常咨询我,说也自学了很多大数据技术,也动手做了很多项目啊,咋面试都被pass掉了呢。详细了解后,大部分都是到处找各种大数据学习资料和视频,A网站找到了Hadoop、B网站找个Spark、C网站找个Flink,强行拼凑不成体系,学完似懂非懂。特别是项目这一块,看了一些网课视频,几个技术组件一整合,项目流程跑通,还搞一个看起来高大上的可视化效果图,以为大功告成,可以出山找大数据工作了,结果说给面试官没人信。

 

 

什么原因呢?项目需求深入问说不明白,只知道统计了几个指标数据;面试官让画个项目架构图,也就简单流程图,细问早期项目架构什么样的,现在项目架构演进到什么程度,一脸懵逼;数据具体从哪里来,数据采集线上架构高可用拓扑图,如何防止数据丢失和重复,说不明白;消费者消费能力不足时,如何提高并发度?Kafka分区如何优化?数据库如何实现高并发、如何建模?做项目的过程中,遇到了哪些难点?是如何解决的?该项目在实际运行过程中遇到哪些瓶颈?又是如何调优的?如何解决Spark代码升级checkpoint无法恢复问题?。。。

 

 

然后呢,没有然后了,面试官微微一笑,回去等我们通知吧,显然是没戏。从老师录制网课录制视频角度,给大家普及一下大数据技术,讲讲项目案例也没有错。从小伙伴学习的角度,我能花很少的钱,甚至不花钱,能学学大数据技术,也很上进,没有问题。但是如果想通过拼凑的课程积累真实项目经验,转行找一个高薪的大数据工作,就有点不现实了。稍微清醒点小伙伴应该都知道:“免费的”其实是最贵的。一方面浪费大量的时间,时间是最宝贵的,特别是搞IT的人,吃的是青春饭;另一方面也会对大数据行业有误解,学了这么久也找不到大数据工作,认为要么自己学不会,要么大数据前景不好。其实是自己走了弯路,被很多便宜视频、免费视频带坑里面出不来了。

 

 

所以借这篇文章为大家分享一个经典的大数据项目的架构设计与解决方案,希望有Java基础的小伙伴能通过这个项目,技术栈与项目结合,系统的学习,彻底感受大数据技术所带来的成就感。切实体会根据所学的大数据技术能快速的构建大数据项目架构,并完整的得以实施,应用到生产环境中。

 

 

先来谈谈我们的项目需求:

打造企业级数据仓库平台,提供税票数据全方位分析。

 

 

针对企业实际需求,你该如何设计一个项目架构满足企业用户需求呢?

 

我们先来看一看项目其中一部分成果:

【经典】一个大数据学习的解决方案_第1张图片

 

 

上图描述的只是一个维度的数据可视化大屏,数据仓库平台构建起来之后,可视化只是最后业务分析展示的最后一环。接下来我们要重点分享:数仓系统架构设计。这个顶层设计非常重要,它需要你完全掌握大数据各个技术基础之上,深入理解需求,并做出专业的判断而进行的架构设计工作。

 

数仓系统架构设计

 

 

【经典】一个大数据学习的解决方案_第2张图片

 

 

架构图中的所有技术在数仓系统平台实施过程中都需要用到,所以围绕这个项目的相关技术也需要我们掌握。呵呵,如果你能看懂这张架构图,那恭喜你入行了,如果一脸懵逼,那说明你还只是一个菜鸟,要想成为大牛,继续努力吧。

 

数仓分层设计

【经典】一个大数据学习的解决方案_第3张图片

 

 

数仓系统中重要的一个环节就是数仓分层设计。何为数仓?顾名思义,数据存储的仓库。数仓大概分为三层:第一层为ODS源数据层, 所有业务数据原封不动导入ODS,实现业务系统与分析系统分离;第二层为DW数据仓库层,该层对数据进行脱敏以及数据的轻度汇总,涉及到数据的建模;第三层为DM数据集市层,数据按照部门级别进行汇总。数仓为什么要分层?数仓类似与家里的储物间,物品少的时候,储物间随便堆放物品也能很快找到,如果有大量的物品随便堆放在储物间,很难快速找到你想要的物品。所以数仓也需要规划,数据需要分类整理。市面上有很多“一堆数据+hive sql”的数仓课程,很容易把大家带进坑去了。

 

大数据平台构建与运维

 

【经典】一个大数据学习的解决方案_第4张图片

 

 

大数据项目,生产环境玩的都是集群,而且是自动化部署大数据集群。没有一个企业会在单台机器上玩大数据应用,也很少有企业逐个节点手动安装大数据集群,除非个人学习玩玩还可以。而且在大数据项目上线后,大数据平台的运维、监控、权限管理也是非常重要的,所以作为一个成熟的大数据项目,我们需要的是一整套解决方案。

 

 

 

说了这么多,怎么感觉学完这个项目没啥收获呢?

 

【经典】一个大数据学习的解决方案_第5张图片

 

学完这个数仓系统,还能做什么呢?数据仓库是大数据平台所有数据的入口和出口,基于数据仓库我们可以做大数据离线分析、大数据实时分析、企业用户画像、供应商推荐系统等等。

 

 

这下感觉收获颇多,那具体该如何实施呢?

 

一个完整的企业级项目的全流程实施,从架构设计、技术选型、平台构建、数据采集、数据交换、数据存储、数据处理、作业调度、应用分析、数据可视化以及线上项目的运维、监控、安全等各个方面所要求的技术点比较多,如果你是一个大数据新手,不是几篇文章能说的完整,也不是一朝一夕能完全搞明白。当然这并不是个人能力不行,而是大数据技术本身数量多、衔接起来坑比较多,需要考虑实际生产环境的方方面面。如果没有大牛指导学习,你可能需要填一堆的坑,可能大数据刚开始学就放弃了。毅力好点的能坚持下来,很可能被自己收藏的demo案例视频带入另外一个坑里面,不仅浪费了时间,对大数据的学习也失去信心。我绝不是危言耸听,不信你可以去试试,哈哈。

 

 

如果你想尽快掌握过硬的大数据技术,积累真实的项目经验,请加微信:971557118。不为别的,只是让大数据架构师的经验有价值的得到分享。

 

你可能感兴趣的:(Hadoop,Spark,数据仓库)