Fork me on GitHub

大数据学习随记

作者:勾满誉
链接:https://www.zhihu.com/question/52187221/answer/129439263
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

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

收集、清洗、数仓(建模)、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 大数据)。

-------------本文结束感谢您的阅读-------------