大数据学习计划

转发文章
作者:勾满誉
链接:https://www.zhihu.com/question/52187221/answer/129439263
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


如果你毕业了, 去个什么公司,应聘个“大数据开发工程师”什么的,我们来看看职位要求是什么:

岗位职责:

1、负责数据分析、监控、安全、风控等平台设计与开发

2、责基于spark平台的用户行为分析、实时业务数据的开发

3、采用统计分析、数据建模、数据挖掘等方法,提供有价值的数据、模型、算法支持


岗位要求:

1、大学本科学历,3年及以上相关工作经验

2、熟悉java/scala的一种开发语言

3、熟悉spark/hadoop生态系统

4、熟悉shell或python脚本

5、有数据挖掘、机器学习方面的项目经验者优先

6、熟悉Redis、MongoDB、HBase等NOSQL数据库

7、良好的沟通与技术学习能力,对开源技术充满热情


看到没?


大数据开发一共几个流程,大概概括起来有:


收集、清洗、数仓(建模)、OLAP、可视化


这里边:


收集一般的技术是:Kafka、Flume、高性能HTTP开发(可能)、Avro协议(可能)、Thrift协议(可能),取决于所在公司的技术栈。


清洗:Spark、HiveSQL/SparkSQL、MapReduce(已经过时)


存储:HDFS、Alluxio(分布式内存存储)、Redis(高速缓存)、mongoDB(文档型数据库)...


流式计算:Spark Streaming / Storm


数仓建模:Hive、MongoDB、HBase


OLAP:MySQL(常用),PostgreSQL(GreenPlum)MyCAT(小众)...


数据可视化:一般来说这活不归你管, 技术有 echarts.js hicharts.js d3.js ...


看眼花了吧?


其实很好理解, 从上到下就是:数据要怎么存, 数据要怎么查...


你需要学的是:


计算机体系基础: 内存、CPU、指令、等等这些概念,得有个感觉,不然别人一说,你都不知道咋回事,尴尬了。看《深入理解计算机系统》。


网络基础: 这个我还真不知道有什么书, 《TCP/IP详解》有点深了,不过你有时间,慢慢啃下来挺好, 而且第一本就够用,书也不厚。


数据库基础:RMDBS里的MySQL其实我不推荐,但是这玩意已经烂大街了,是个公司就用,不学也得学。postgreSQL很不错,但是用的人少。




Java系的语言你必须得会, 重要的就是Java和Scala, Java用来做传统的开发(你总要写几个接口, 这个时候最常用的就是SpringMVC/Mybatis,这俩兄弟玩明白就行了, 但是什么J2EE,什么Hibernate,什么HTML5,跟你一点关系也!没!有!)。


Scala是我特别推崇的一门语言, 灵活、高效, Java搞懂了就把它也学了,以后写Spark,甚至用Play写Web,都很爽。


Python是必学的一门语言, 灵活的脚本, 以后想早点下班回家,少不了它。


Hadoop生态体系你必须得懂, 不需要一个组件一个组件的文档去看, 先看个大概,知道啥玩意是干啥的, 然后用的时候再去看文档。 Hadoop想自己装是有点蛋疼,跟你导师申请个阿里云几台机, 慢慢折腾去吧。


哦对了, 你想折腾Hadoop,Linux的基础必须得学,至少Shell得用的溜溜的,不然hadoop你怎么装... cd / mv/ cp/ mkdir / chmod / ls / ssh / touch / vim / awk / sed / ifconfig / du / df / 这乱七八糟一大堆命令,一个一个学了吧, linux的各种概念,文件、管道、bash、配置,你得整懂吧?学吧!趁着研究生时间多,短投资大回报!


作为研究生,建议你多看一看机器学习,说到底大数据还是一个“基础设施”,但要创造价值,还得靠机器学习(数据挖掘的意思就是 机器学习 on 大数据)。


逼逼了这么多,头绪也比较乱(谁让我刚起床呢!), 照着我说的这些关键词,一个一个技术的了解吧,哪个不懂尽可以私信我

 
哦对了,买个Mac,linux环境,还能装b,另外游戏就跟你告别了,你就可以好好学习了。:)
posted on 2017-09-14 17:37  yanzibuaa  阅读(2008)  评论(0编辑  收藏  举报