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

大数据需要的语言 Java

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

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

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

Python和Shell

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

分布式计算

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

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

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

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

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

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

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

分布式存储

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

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

1

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

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

分布式调度与管理

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

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

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

关于spark和Scala

scala和java很相似都是在jvm运行的语言,在开发过程中是可以无缝互相调用的。

Scala在大数据领域的影响力大部分都是来自社区中的明星Spark和kafka,

这两个东西大家应该都知道,它们的强势发展直接带动了Scala在这个领域的流行。

1. Scala 入门

Scala的基础语法、编译环境、常用类型、声明等

Scala的行、字符、二进制与文本文件的读取与写入

2. Scala 的函数式编程

Scala的控制结构(赋值、条件、循环、输入输出)与函数(参数与过程)

Scala的数组操作(定义、遍历、转换)及常用算法

3. Scala 的面向对象编程

Scala的类和对象构造与继承、重写、抽象、转换,

类与对象中特质的属性与使用,包的使用与引入

4. Scala的高级基础一

Scala的操作符调用与重载,集合的处理,高阶函数与类型函数

5. Scala的高级基础二

Scala解释器的使用,高级类型与类库(actor,akka),对象式模块化编程

相关阅读:

听我说,大数据需要学什么?

深度挖掘,大数据不是事儿

我们需要掌握哪些知识,才可加入大数据行业大军?

关注中国IDC圈官方微信:idc-quan 我们将定期推送IDC产业最新资讯

查看心情排行你看到此篇文章的感受是:


  • 支持

  • 高兴

  • 震惊

  • 愤怒

  • 无聊

  • 无奈

  • 谎言

  • 枪稿

  • 不解

  • 标题党
2018-09-28 11:00:41
大数据资讯 如何建设大数据生态?中国电信云计算公司表示这三个环节很关键
从2015年开始中国电信便致力于与各界合作建设大数据生态,共包括三个环节。 <详情>
2018-09-28 10:44:22
大数据资讯 “智慧医疗研究中心”成立 大数据与医疗进一步融合发展
大数据和人工智能技术主要解决三大方面的问题,一是辅助卫生监管部门和医疗机构,由被动监管转向主动监管,帮助医生提高效率等;二是辅助与大众密切相关的药品研发,加速临 <详情>
2018-09-28 10:41:12
大数据 当金融遇到大数据
随着海量数据存储和处理技术的发展,数据的价值将进一步凸显,银行自身要用好数据,基于客户账户数据进行客户画像。 <详情>
2018-09-28 10:38:12
大数据 大数据为百姓消费保驾护航
中国消费者报报道(记者 任震宇 郝军)“双随机、一公开”是近年来市场监管机构开展工作的重要工作模式,大数据运用则是提升市场监管效能的重要手段。 <详情>
2018-09-28 10:16:42
大健康说 中国智慧医疗求发展,数据有效性依旧是“拦路虎”
“如果把算法和数据的有效性作为横坐标,我们国家尚处在初级阶段,第一阶段的数据整合我们还没做完。” <详情>
调查显示:中国企业率先采用对象存储
2018-12-13 19:17:40
IDCC2018|奥飞数据COO杨培峰:中国IDC企业转型与出海的思考
2018-12-13 18:26:43
IDCC2018|中软国际数据业务总裁贾丕星:差异化行业的数据资产管理特征思考
2018-12-13 17:34:48
医疗大数据行业分析: 三大利好因素迎来广阔发展前景
2018-12-13 17:25:48
央视聚焦贵阳 点赞大数据加速营商环境优化
2018-12-13 17:19:11
工信部:将规范手机号二次销售业务解绑问题
2018-12-13 17:12:31
室内大数据方案支撑打造智慧商场、开拓行业数字化运营新市场
2018-12-13 17:04:07
总价6.16亿美元:澳洲电讯等四家运营商赢得澳大利亚5G频谱拍卖
2018-12-13 16:55:15
云服务市场龙虎斗:入华或入欧,暗夺转明争
2018-12-13 16:47:44
IDCC2018|腾讯云高级架构师李晓辉:腾讯云助力政府、企业数字化转型案例分享
2018-12-13 16:37:49
环信即时通讯云助力智慧树打造最大幼教互动云平台
2018-12-13 16:33:16
大数据技术标准推进委员会常务副主席魏凯:《数据资产管理白皮书3.0》发布
2018-12-13 16:32:27
IDCC2018|华为企业BG企业技术服务部大数据服务总监陈飚:大数据资产管理-从传统到智能
2018-12-13 16:27:00
白盒服务器能否成为数据中心的一个未来趋势?
2018-12-13 16:25:03
IDCC2018|中国支付清算协会业务协调三部主任丁华明:《非银行支付机构数据资产管理调研报告(2018)》解读
2018-12-13 16:23:15