大数据学习基础知识总纲

大数据是近五年兴起的行业,发展迅速,很多技术经过这些年的迭代也变得比较成熟了,同时新的东西也不断涌现,想要保持自己竞争力的唯一办法就是不断学习。

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

大数据学习基础知识总纲

 

大数据需要的语言 Java

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

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

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

Python和Shell

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

大数据学习基础知识总纲

 

 

大数据是未来的发展方向,正在挑战我们的分析能力及对世界的认知方式,因此,我们与时俱进,迎接变化,并不断的成长!大数据学习群:868847735  一起讨论进步学习
 

分布式计算

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

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

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

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

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

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

大数据学习基础知识总纲

 

分布式存储

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

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

大数据学习基础知识总纲

 

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

主流的分布式数据库有很多hbase,mongoDB,GreenPlum,redis等等等等,没有孰好孰坏之分,只有合不合适,每个数据库的应用场景都不同,其实直接比较是没有意义的。

最后:

大家都知道大数据的技术日新月异,作为一个程序猿想要保持竞争力就必须得不断地学习。

 

大数据平台架构师

  • 工作职责:

1、负责开发框架搭建和架构设计,输出架构设计文档并指导详细设计;

2、负责开发中重要难点的研究、处理和解决;

3、负责系统性能优化方案的提出和实施;

4、负责大数据相关技术组件的升级、预研和优化;

5、负责核心代码的开发以及代码检查,以及技术指导。

  • 任职资格:

1、五年以上 java 开发经验,三年以上平台化软件架构设计经验,具有优秀的 jvm 调优经验和 linux 优化经验;

2、具有 ElasticSearch、Kafka、Hbase 等大数据组件的部署和开发经验;

3、熟悉微服务技术体系,具有成功的微服务项目实施经验;

4、阅读过 ElasticSearch、Hbase、JanusGraph、Mysql 等数据库源码者优先;

5、具有大数据平台产品开发设计经验者优先;

6、具有图数据开发经验者优先。

大数据高级开发工程师

  • 工作职责:

1.负责公司大数据离线、实时平台(如Hadoop/Hive/Storm/Spark)的建设、优化

2.负责系统设计和核心代码的编写;

3.负责开发大数据工具,如报表平台、多维度分析工具、ETL平台、调度平台的研发;

4.负责数据可视化分析平台设计和开发.

大数据平台开发工程师

  • 工作职责:

1. 负责基于Hadoop/Spark/Hbase/Storm/Alluxio等分布式计算存储组件的大数据平台系统架构设计与实现,满足大数据平台Batch/Interact/Streaming/Sophisticated等各种场景的功能性/非功能性需求;

2. 负责大数据相关业务应用场景,大数据平台相关技术方案设计与项目支持;

3. 负责大数据平台计算存储层组件,BUG修复/功能&性能增强等相关二次开发;

4. 负责大数据平台工具层面向用户的功能系统设计与开发实现;

5. 大数据平台系统运营规范,及运营工具系统的设计与开发实现;

6. 负责上述大数据平台相关系统的可用性、容量、性能、监控、发布、安全等运营管理工作,确保系统持续稳定、高效运行;

7. 深入理解上述大数据平台组件/系统,及其相关依赖组件/系统架构与工作原理(如Linux OS,MySQL DB等),高效调优排障;

大数据后台开发工程师

  • 工作职责:

负责数据产品基础数据加工、质量管理和应用跟进,包括:

  1. 基础数据模型建设,数据清洗
  2. 数据产品基础数据质量提升,设计数据质量指标运营方案,协同其他团队成员,推进数据质量运营
  3. 构建应用维度数据大盘
  • 任职要求:

1、计算机相关专业,本科及以上学历;

2、3年以上大数据相关经验,包括数据架构,数据模型,数据标准,数据质量等实施经验;

3、理解数据模型和数据仓库,有ETL、数据仓库或数据集市等项目设计和实施经验者优先;

4、熟悉linux/UNIX shell、熟悉(python/shell)任意一种脚本语言

5、对数据敏感,较强的逻辑思维及数据分析能力

6、具备出色的需求分析能力及快速学习能力,能深入理解复杂的业务逻辑。

7、具有良好团队协作能力和沟通能力;

8、能承受较大的工作压力。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值