大数据需要学什么?

article/2025/9/21 17:00:25

注意本文非广告,阅读时间四分钟左右,适合大数据入门级读者阅读

大数据需要学习什么?很多人问过我这个问题。每一次回答完都觉得自己讲得太片面了,总是没有一个合适的契机去好好总结这些内容,直到开始写这篇东西。大数据是近五年兴起的行业,发展迅速,很多技术经过这些年的迭代也变得比较成熟了,同时新的东西也不断涌现,想要保持自己竞争力的唯一办法就是不断学习。

思维导图

下面的是我整理的一张思维导图,内容分成几大块,包括了分布式计算与查询,分布式调度与管理,持久化存储,大数据常用的编程语言等等内容,每个大类下有很多的开源工具,这些就是作为大数据程序猿又爱又恨折腾得死去活来的东西了。
1491039-20180921155211499-588474554.png

大数据需要的语言

Java

java可以说是大数据最基础的编程语言,据我这些年的经验,我接触的很大一部分的大数据开发都是从Jave Web开发转岗过来的(当然也不是绝对我甚至见过产品转岗大数据开发的,逆了个天)。

  • 一是因为大数据的本质无非就是海量数据的计算,查询与存储,后台开发很容易接触到大数据量存取的应用场景
  • 二就是java语言本事了,天然的优势,因为大数据的组件很多都是用java开发的像HDFS,Yarn,Hbase,MR,Zookeeper等等,想要深入学习,填上生产环境中踩到的各种坑,必须得先学会java然后去啃源码。

说到啃源码顺便说一句,开始的时候肯定是会很难,需要对组件本身和开发语言都有比较深入的理解,熟能生巧慢慢来,等你过了这个阶段,习惯了看源码解决问题的时候你会发现源码真香。

Scala

scala和java很相似都是在jvm运行的语言,在开发过程中是可以无缝互相调用的。Scala在大数据领域的影响力大部分都是来自社区中的明星Spark和kafka,这两个东西大家应该都知道(后面我会有文章多维度介绍它们),它们的强势发展直接带动了Scala在这个领域的流行。

Python和Shell

shell应该不用过多的介绍非常的常用,属于程序猿必备的通用技能。python更多的是用在数据挖掘领域以及写一些复杂的且shell难以实现的日常脚本。

分布式计算

什么是分布式计算?分布式计算研究的是如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多服务器进行处理,最后把这些计算结果综合起来得到最终的结果。

举个栗子,就像是组长把一个大项目拆分,让组员每个人开发一部分,最后将所有人代码merge,大项目完成。听起来好像很简单,但是真正参与过大项目开发的人一定知道中间涉及的内容可不少。

比如这个大项目如何拆分?任务如何分配?每个人手头已有工作怎么办?每个人能力不一样怎么办?每个人开发进度不一样怎么办?开发过程中组员生病要请长假他手头的工作怎么办?指挥督促大家干活的组长请假了怎么办?最后代码合并过程出现问题怎么办?项目延期怎么办?项目最后黄了怎么办?

仔细想想上面的夺命十连问,其实每一条都是对应了分布式计算可能会出现的问题,具体怎么对应大家思考吧我就不多说了,其实已经是非常明显了。也许有人觉得这些问题其实在多人开发的时候都不重要不需要特别去考虑怎么办,但是在分布式计算系统中不一样,每一个都是非常严重并且非常基础的问题,需要有很好的解决方案。

最后提一下,分布式计算目前流行的工具有:

  • 离线工具Spark,MapReduce等
  • 实时工具Spark Streaming,Storm,Flink等

这几个东西的区别和各自的应用场景我们之后再聊。

分布式存储

传统的网络存储系统采用的是集中的存储服务器存放所有数据,单台存储服务器的io能力是有限的,这成为了系统性能的瓶颈,同时服务器的可靠性和安全性也不能满足需求,尤其是大规模的存储应用。

分布式存储系统,是将数据分散存储在多台独立的设备上。采用的是可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

1491039-20180923163220973-309243746.jpg

上图是hdfs的存储架构图,hdfs作为分布式文件系统,兼备了可靠性和扩展性,数据存储3份在不同机器上(两份存在同一机架,一份存在其他机架)保证数据不丢失。由NameNode统一管理元数据,可以任意扩展集群。

主流的分布式数据库有很多hbase,mongoDB,GreenPlum,redis等等等等,没有孰好孰坏之分,只有合不合适,每个数据库的应用场景都不同,其实直接比较是没有意义的,后续我也会有文章一个个讲解它们的应用场景原理架构等。

分布式调度与管理

现在人们好像都很热衷于谈"去中心化",也许是区块链带起的这个潮流。但是"中心化"在大数据领域还是很重要的,至少目前来说是的。

  • 分布式的集群管理需要有个组件去分配调度资源给各个节点,这个东西叫yarn;
  • 需要有个组件来解决在分布式环境下"锁"的问题,这个东西叫zookeeper;
  • 需要有个组件来记录任务的依赖关系并定时调度任务,这个东西叫azkaban。

当然这些“东西”并不是唯一的,其实都是有很多替代品的,我这里只举了几个比较常用的例子。

说两句

回答完这个问题,准备说点其他的。最近想了很久,准备开始写一系列的文章,记录这些年来的所得所想,感觉内容比较多不知从哪里开始,就画了文章开头的思维导图确定了大的方向,大家都知道大数据的主流技术变化迭代很快,不断会有新的东西加入,所以这张图里内容也会根据情况不断添加。细节的东西我会边写边定,大家也可以给我一些建议,我会根据写的内容实时更新这张图以及下面的目录。

关于分组

上面的大数据组件分组其实是比较纠结的,特别是作为一个有强迫症的程序猿,有些组件好像放在其他组也可以,而且我又不想要分太多的组看起来会很乱,所以上面这张图的分组方式会稍主观一些。分组方式肯定不是绝对的。

举个例子,像kafka这种消息队列一般不会和其它的数据库或者像HDFS这种文件系统放在一起,但是它们同样都具备有分布式持久化存储的功能,所以就把它们放在一块儿了;还有openTsDB这种时序数据库,说是数据库实际上只是基于HBase上的一个应用,我觉得这个东西更侧重于查询和以及用何种方式存储,而不在于存储本身,所以就主观地放在了“分布式计算与查询”这一类,还有OLAP的工具也同样放在了这一组。

同样的情况还存在很多,大家有异议也可以说出来讨论下。

目的

大家都知道大数据的技术日新月异,作为一个程序猿想要保持竞争力就必须得不断地学习。写这些文章的目的比较简单,一是可以当做一个笔记,梳理知识点;二是希望能帮到一些人了解学习大数据。每一篇的篇幅不会太长,阅读时间控制在5到10分钟。我的公众号大叔据,会同步更新。喜欢看公众号文章的同学可以关注下,文章的篇幅不会太长,不会占用你太多的阅读时间,每天花一点时间学习,长期积累总是会有收获的。

欢迎关注大叔


http://chatgpt.dhexx.cn/article/69fUSFAu.shtml

相关文章

学习大数据开发要掌握哪些技术呢?

转自:微点阅读 https://www.weidianyuedu.com 当学生问到如何学习大数据技术,每次口头介绍都心中清楚无法清晰讲清楚这些技术名词,简单整理给大家。 大数据开发的工具与语言:编程语言(Java,python&#x…

大数据需要学习哪些内容?

大数据技术的体系庞大且复杂,每年都会涌现出大量新的技术,目前大数据行业所涉及到的核心技术主要就是:数据采集、数据存储、数据清洗、数据查询分析和数据可视化。 Python 已成利器 在大数据领域中大放异彩 Python,成为职场人追求…

如何学习大数据!!我要做大数据!

一文读懂大数据平台——写给大数据开发初学者的话! 文|miao君 导读: 第一章:初识Hadoop 第二章:更高效的WordCount 第三章:把别处的数据搞到Hadoop上 第四章:把Hadoop上的数据搞到别处去 第五章:快一…

什么是大数据?如何入门学习大数据?

什么是大数据?在互联网技术快速发展的今天,大量日常生活和经营活动中产生的数据都已经信息化。我们产生的数据量相比以前有了爆炸式的增长,传统的数据处理技术已经无法胜任,需求催生技术,一套用来处理海量数据的软件工…

大数据主要有什么用,入行大数据,需要学哪个专业?

大数据有什么用 了解用户特征 通过大数据,百度掌握你的隐私,微信知道你的社交圈子,淘宝了解你的购物习惯,移动电信联通三大运营商存有你的通话记录和上网记录…… 给企业和商业带来巨大价值 网络浏览历史记录以及使用的应用等…

大数据分析要学什么

很多初入大数据领域或者转行进入大数据领域的朋友,需要了解的第一件事不是说各种组件框架生态相关的东西,也不是各种编程语言基础。 而是,了解清楚以下几个问题: 1)大数据领域到底包含了哪些东西,解决了哪些问题? 2)自…

大数据专业学什么?学完可以干什么?

大数据领域三个大的技术方向,这些不同的技术方向,对应企业的哪些招聘岗位? Hadoop大数据开发方向 市场需求旺盛,大数据培训的主体,我们培训的重点 对应岗位:大数据开发工程师 爬虫工程师 数据分析师 等 数…

大数据需要学习哪些内容

Python 已成利器 在大数据领域中大放异彩 Python,成为职场人追求效率的利器,因为不管什么工作,数据都会是工作的一部分,有数据的地方,就有Python! 我们知道,随着互联网的发展,线上…

什么是大数据分析?大数据分析要学什么?

大数据分析概念  大数据分析是指对规模巨大的数据进行分析。大数据可以概括为5个V, 数据量大(Volume)、速度快(Velocity)、类型多(Variety)、价值(Value)、真实性(Veracity)。  大数据作为时下最火热的IT行业的词汇,随之而来…

大数据到底应该如何学?

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成…

大数据都要学什么

本文是转载的别人的。 那大数据处理技术怎么学习呢?首先我们要学习Java语言和Linux操作系统,这两个是学习大数据的基 础,学习的顺序不分前后。 Java:大家都知道Java的方向有JavaSE、JavaEE、JavaME,学习大数据要学习那个方向呢…

大数据需要学习哪些技术?

大数据是对海量数据进行存储、计算、统计、分析处理的一系列处理手段,处理的数据量通常是TB级,甚至是PB或EB级的数据,这是传统数据处理手段所无法完成的,其涉及的技术有分布式计算、高并发处理、高可用处理、集群、实时性计算等,汇集了当前IT领域热门流行的IT技术。 想要学…

大数据工程师需要学习哪些?

2019独角兽企业重金招聘Python工程师标准>>> 大数据学习涉及技术: 1、数据采集:ETL工具负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中&…

无线承载网络“组或资源的状态不是执行请求操作的正确状态”解决方法

在使用win 7 无线承载网络时,启动该服务时,有时会提示:组或资源的状态不是执行请求操作的正确状态。 网上有文章指出,解决这个问题的方法是在设备管理器中启动“Microsoft托管网络虚拟适配器”,见 http://jingyan.baid…

web端服务器返回状态码总结

web端服务返回状态吗总结 一些常见的状态码为: 200 - 服务器成功返回网页 304 - 为提升用户浏览体验,执行缓存机制,而未执行本文件 404 - 请求的网页不存在 503 - 服务器超时 ***********************************************************…

Charles模拟网络请求返回状态

一、Http请求返回状态码 1、2XX——成功请求 返回信息为2开头的状态码时,所代表的意思是: 状态码描述200 OK请求成功201 Created请求被创建完成,同时新的资源被创建202 Accepted服务器已接受请求,但尚未处理 203 No-Authoritat…

请求状态码(Http常见状态码总结)

1XX (信息性状态码)接收的请求正在处理 201-206(成功状态码)服务器成功处理了请求,说明网页可以正常访问。 300-307(重定向状态码)要完成请求,需要进一步进行操作。通常&#xff0c…

HTTP请求格式、状态码及常用请求方法

常用的HTTP请求方法,按照RFC2616标准(HTTP1.1)来看,通常有以下8种方法:get、post、put、delete、head、trace、connect、options。 HTTP请求格式 当浏览器向Web服务器发出请求时,它向服务器传递了一个数据…

在使用win 7 无线承载网络时,启动该服务时,有时会提示:组或资源的状态不是执行请求操作的正确状态。 网上有文章指出,解决这个问题的方法是在设备管理器中启动“Microsoft托管网络虚拟适配

在使用win 7 无线承载网络时,启动该服务时,有时会提示:组或资源的状态不是执行请求操作的正确状态。 网上有文章指出,解决这个问题的方法是在设备管理器中启动“Microsoft托管网络虚拟适配器”,见 http://jingyan.baid…

无法启动承载网络。 组或资源的状态不是执行请求操作的正确状态,解决办法。(转)...

摘自:http://www.lihuoqing.cn/other/172.html 以前用的好好的,这段时间就出现以下情况: C:\windows\system32>netsh wlan start hostednetwork 无法启动承载网络。 组或资源的状态不是执行请求操作的正确状态。 问题截图为以下图片的第一个红色框&am…