企业急需,人才急缺,大数据到底应该如何学?

发布于 2021-09-04 15:06 ,所属分类:软件编程学习资料

阅读须知
本文适合还不太了解大数据、不确定要不要学习大数据、或者刚刚踏入大数据领域工作的你,将带你了解行业的需求以及与之相关的岗位,欢迎收藏并将文章分享给身边的朋友。


大数据的基本概念
01
什么是大数据
要说什么是大数据我想大家已经有所了解,很多落地的案例已经深入到了我们的生活中。例如抖音、淘宝的推荐机制;疫情期间的行程、流调;不同消费习惯匹配不同的价格(这个违法,不能操作哦!)......
大数据具有数据量大、数据类型丰富复杂、数据增长速度快等特点,一切的数据分析必须建立在真实的数据集上才会有意义,而数据质量本身也是影响大数据分析结果的重要因素之一。
02
数据是如何采集的
大数据分析的第一步就是对数据的收集和管理,我们需要先来了解一下数据是如何产生的,又是被如何捕获的?那些看似杂乱的数据真的能被分析吗?

(1)主动的数据产生与用户行为数据收集
主动产生的数据比较好理解,在我们使用互联网或者各种应用的过程中,通过填写提交表单就会产生数据。类似的,我们在线下环境中,比如银行开卡、纸质表格的填写,最终都会变成电子数据流入到系统中。通常,我们会将这一类行为归为用户注册,通常会是产生数据的起点。
对于用户行为数据更多的来自于应用埋点和捕获,因为用户使用应用必须通过鼠标点击或者手指触碰来和用户界面进行交互。以网页应用(网站)为例,对于鼠标的所有行为基本上都可以通过事件监听的方式来捕获,鼠标在某个区域停留的时间、是否进行点击,我们甚至可以根据用户的行为数据刻画出整个页面的热力图。
在不同的应用场景中,我们可以对行为类型、功能模块、用户信息等维度进一步的划分,做更加深入的分析。

(2)结构化数据与非结构化数据
最常见的结构化数据就是存储在关系型数据库中的数据,如MySQL、Oracle等,这些数据都具备一个特点,就是十分规范。除数据库中的数据以外,那些能直接导入到数据库中的数据文件我们也可以把它们视为结构化的数据,如:CSV格式。这些数据通常需要具备统一的列分隔符、行分隔符,统一的日期格式等等。
对于非结构化的数据指的就是除结构化数据以外的另一大类数据,通常没有预期的数据机构,存储在非关系型数据库中,如:Redis、MongoDB,使用NoSQL来进行操作。也可能是非文本类型的数据,需要特别对应的手段来处理和分析。

什么是大数据开发
了解了什么是大数据,接下来介绍一下大数据开发这一岗位,先直接上岗位描述(JD:Job Description)给大家感受一下。然后来说明一下大数据开发工程师的主要工作,最后再来总结一下需要掌握的技能。

(1)岗位描述
京东大数据开发工程师JD:


小米大数据开发工程师JD:



滴滴大数据开发工程师JD:


(2)主要工作
从上面的岗位描述中我们可以发现大数据开发工程师一般会与业务进行对接,要么是基于某一个场景进行有针对性的数据处理,要么是打造一个大数据产品。在这里我们也需要纠正一个小小的概念,可能有些小伙伴认为有大数据岗位需求的公司一定是一个自身具备大量数据、有着大量用户积淀的公司,其实不然。除了分析公司自身业务数据以外,同样可以打造一款通用的大数据产品。

如果是分析公司自身的业务数据,一般会更偏重于使用大数据组件和算法库,构建出一个可行的数据分析方案。大家可以看出,现在完全不涉及算法的大数据岗位已经比较少了。这里的算法指的并不是数据结构,而是指机器学习库,与数据挖掘相关的算法,至少要知道如何控制算法的输入与输出,算法能够解决的问题。


如果是开发一个大数据产品,比如建模平台,或者是致力于解决数据采集、数据可视化的解决方案。那么这比较适合从开发工程师转行大数据开发工程师的小伙伴,相当于在开发一个应用的基础上又增加了底层的大数据组件。这就要求我们既需要懂得原始的服务端框架的那一套,又能够驾驭大数据开发API。

(3)掌握技能
从事大数据开发需要掌握的技能可以概括为以下几个方面:
操作系统:Linux(基本操作、软件维护、权限管理、定时任务、简单Shell等)

编程语言:Java(主要)、Scala、Python等

数据采集组件及中间件:Flume、Sqoop、Kafka、Logstash、Splunk等

大数据集群核心组件:Hadoop、Hive、Impala、HBase、Spark(Core、SQL、Streaming、MLlib)、Flink、Zookeeper等

素养要求:计算机或大数据相关专业

(4)行业薪资
以北京地区为例,以工作经验作区分来看:

工作年限1-3年


工作年限3-5年


可以看出,大数据行业起薪基本在15K左右,3年以上基本就按年薪计算了,如此高薪也是大数据行业近些年风生水起的原因。

宏观来看,大数据对编程语言的要求相对单一,更主要是算法和工具的应用,相对于其他的后端开发入门门槛较低,更适合薄基础、零经验的,想要从其他行业转型技术开发的人员。

大数据的方向有大数据运维工程师大数据开发工程师数据分析数据挖掘架构师等。


技术层面也有区别:
Hadoop生态圈:Hadoop HDFS文件系统 MR计算模型、Hive数据仓库、HBase数据库、Flume日志收集、Kafka消息系统


Spark生态圈:Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX

·Storm流式计算

· 分布式协调服务:Zookeeper

· NOSQL数据库:Redis、MongoDB

·还有RabbitMQ、Impala、Flink、Kylin

· 机器学习:Mahout

·……


这么多技术怎么学习呢?

过来人推荐先学Hadoop
Hadoop框架中由两大模块组成,一个HDFS(Hadoop Distributed File System),是用来存储需要处理的数据,另外一个是MapReduce,是Hadoop的处理数据的计算模型。
然后学习一门数据库,像MySQL 学点SQL

· Hive

只要你会SQL,你就会使用它。hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
· HBase
HBase即Hadoop DataBase,Hadoop的数据库,HBase是一种 "NoSQL" 数据库,即不是RDBMS ,不支持SQL作为主要访问手段。

· Sqoop

Sqoop是迁移数据工具,可以在很多数据库之间来迁移,

· Flume

Flume是一个分布式的海量日志采集和传输框架,一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

· Kafka

使用Kafka完成数据的一次收集,多次消费。它是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统。


·Spark基于内存计算的框架

· Spark Core最为重要

· SparkSQL

· Spark Streaming

· 图计算

· 机器学习


如此多的工具和算法,单凭文字是很难讲述的,为大家送上一份完整的大数据学习资源,gongzhong号后台回复“大数据”即可获取。


另外,我们也有大数据的保薪课,特别适合有开发经验的同学转行。
实现薪资翻倍不再是梦想!想要了解的同学可以扫描ErWeiMa填写信息,会有专业的老师联系你~


祝大家在大数据领域都能发光发热,收获满意的成果

-End-


Java 程序员可以学习的技术方向,精通任何一个都可以成为专家


今天我 devops 了一下


实战篇:断点续传?文件秒传?手撸大文件上传


可乐记得加冰,爱我就要置顶

素质三连biubiubiu~

相关资源