从BAT大数据工程师那里总结的大数据学习方法2

简介: 从BAT大数据工程师那里总结的大数据学习方法2

No.8


数据传输 Kafka / Datahub


这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来。


你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情,而不是你给的问题。ㄟ( ▔, ▔ )ㄏ


这时,使用Flume采集的数据,不是直接到HDFS上,而是先到Kafka,Kafka中的数据可以由多个消费者同时消费,其中一个消费者,就是将数据同步到HDFS上。


目前 Flume + Kafka,在实时流式日志的处理非常常见,后面再通过Spark Streaming等流式处理技术,就可完成日志的实时解析和应用。



如果你搞定了数据传输


你的“大数据平台”当是这样(^∀^●)ノシ



从前面的学习,已经掌握了大数据平台中的数据采集、数据存储和计算、数据交换等大部分技能,而这其中的每一步,都需要一个任务(程序)来完成,各个任务之间又存在一定的依赖性,比如,必须等数据采集任务成功完成后,数据计算任务才能开始运行。如果一个任务执行失败,需要给开发运维人员发送告警,同时需要提供完整的日志来方便查错。


No.9


任务调度 Oozie / Azkaban


不仅仅是分析任务,数据采集、数据交换同样是一个个的任务。这些任务中,有的是定时触发,有点则需要依赖其他任务来触发。


当平台中有几百上千个任务需要维护和运行时候,仅仅靠crontab远远不够了,这时便需要一个调度监控系统来完成这件事。调度监控系统是整个数据平台的中枢系统,类似于AppMaster,负责分配和监控任务。


你的“大数据平台”升级了 (ง •_•)ง!



No.10


实时数据的处理 Flink


在前面讲Kafka的时候提到了一些需要实时指标的业务场景,实时基本可以分为绝对实时和准实时,绝对实时的延迟要求一般在毫秒级,准实时的延迟要求一般在秒、分钟级。


对于需要绝对实时的业务场景,用的比较多的是Storm,对于其他准实时的业务场景,可以是Storm,也可以是Spark Streaming,简单业务场景 Kafka Streams 也能搞定,当然现在最火的是Flink 。


是不是晕了,这么多流式处理框架,我该怎么选择呢?


掌握了实时流技术


你的“大数据平台”也变得更加强大了 (●ˇ∀ˇ●)



至此,你的大数据平台底层架构已经成型了,其中包括了数据采集、数据存储与计算(离线和实时)、数据同步、任务调度与监控这几大模块。接下来是时候考虑如何更好的对外提供数据了。


No.11


数据对外(支撑业务)


离线:比如,每天将前一天的数据提供到指定的数据源(DB、FILE、FTP)等;离线数据的提供可以采用Sqoop、DataX等离线数据交换工具。


实时:比如,在线网站的推荐系统,需要实时从数据平台中获取给用户的推荐数据,这种要求延时非常低(50毫秒以内)。


根据延时要求和实时数据的查询需要,可能的方案有:HBase、Redis、MongoDB、ElasticSearch等。


分布式数据库HBase,这是Hadoop生态体系中的NOSQL数据库,它的数据是按照key和value的形式存储的并且key是唯一的,所以它能用来做数据的排重,它与MySQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。


了解MongoDB及其它分布式数据库技术,能够掌握分布式数据库原理、应用场景、HBase数据库的设计、操作等,能结合Hive等工具进行海量数据的存储于检索。


OLAP分析:OLAP除了要求底层的数据模型比较规范,另外,对查询的响应速度要求也越来越高,可能的方案有:Impala、Presto、SparkSQL、Kylin。如果你的数据模型比较规模,那么Kylin是最好的选择。


即席查询:即席查询的数据比较随意,一般很难建立通用的数据模型,因此可能的方案有:Impala、Presto、SparkSQL。


这么多比较成熟的框架和方案,需要结合自己的业务需求及数据平台技术架构,选择合适的。原则只有一个:越简单越稳定的,就是最好的。


基于上述技术栈


你已经能完成一个大数据平台通用架构了!



有些没提到的


我还在(真的让人头秃啊 X﹏X)!


No.12


机器学习 Spark MlLib


在我们的业务中,遇到的能用机器学习解决的问题大概这么三类:


1.分类问题:包括二分类和多分类,二分类就是解决了预测的问题,就像预测一封邮件是否垃圾邮件;多分类解决的是文本的分类;


2.聚类问题:从用户搜索过的关键词,对用户进行大概的归类。


3.推荐问题:根据用户的历史浏览和点击行为进行相关推荐。大多数行业,使用机器学习解决的,也就是这几类问题。


入门学习线路:


1.数学基础(这里就要求数学好一点啦 )


2.机器学习实战(Machine Learning in Action)


3.Spark MlLib提供了一些封装好的算法,以及特征处理、特征选择的方法


4.机器学习确实牛逼高大上,也是我学习的目标。


至此,可以把机器学习部分也加进你的“大数据平台”了。



以上是个人的一些经历和见解,希望能对大数据有兴趣的朋友一种启发式作用,方法的学习还需要在有兴趣的基础上继续专研。


大数据是一门技术,技术的学习中会有很枯燥的时候,坚持下去,你的成就感就会慢慢生成,接下来的大数据学习便趣味横生,得心应手啦!


相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
4月前
|
大数据 Linux 网络安全
大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)
129 0
|
6月前
|
SQL 资源调度 数据库
数仓学习---14、大数据技术之DolphinScheduler
数仓学习---14、大数据技术之DolphinScheduler
|
6月前
|
SQL NoSQL Java
Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)
Redis学习---大数据技术之Redis(NoSQL简介、Redis简介、Redis安装、五大数据类型、相关配置、持久化)
|
6月前
|
人工智能 搜索推荐 数据可视化
电子学习中的大数据分析:每个人都应该知道的这些方面
电子学习中的大数据分析:每个人都应该知道的这些方面
|
1月前
|
存储 SQL 关系型数据库
【MySQL 数据库】6、一篇文章学习【索引知识】,提高大数据量的查询效率【文末送书】
【MySQL 数据库】6、一篇文章学习【索引知识】,提高大数据量的查询效率【文末送书】
59 0
|
4月前
|
分布式计算 NoSQL Java
大数据学习资料和书籍推荐
大数据学习资料和书籍推荐
73 0
|
4月前
|
前端开发 JavaScript 大数据
❤️[前端学习]大数据全栈工程师之一文快速上手vue3❤️
❤️[前端学习]大数据全栈工程师之一文快速上手vue3❤️
59 0
|
4月前
|
Java 数据库连接 数据库
Java大数据开发工程师__Spring学习笔记(待更新)
Java大数据开发工程师__Spring学习笔记(待更新)
28 1
|
4月前
|
关系型数据库 MySQL 大数据
大数据开发工程师基本功修炼之Linux学习笔记(四)
大数据开发工程师基本功修炼之Linux学习笔记(四)
110 1
|
4月前
|
大数据 Linux 开发工具
大数据开发工程师基本功修炼之Linux学习笔记(三)
大数据开发工程师基本功修炼之Linux学习笔记(三)
84 0

热门文章

最新文章