经常有同学在后台留言问我,自己觉得大数据行业薪资很高,想往大数据方向发展,但不知道该学哪些知识,应该具备的技能树是啥样的。迷茫和焦虑都要溢出屏幕了……如果觉得薪资高就业好,想往大数据方向发展,也不是不可以。那么你的专业是计算机相关专业?还是数学/统计专业?再不然工程专业,就是想转行干 IT?那你对计算机的兴趣是什么呢?我列举下大数据岗位有哪些,你可以根据你的兴趣来找对应关系:
对操作系统、硬件、网络、运维感兴趣——>大数据运维
对软件开发、编程(写代码)感兴趣——>大数据开发
对数据和数字感兴趣——>大数据分析
说白了,这三个岗位薪资都不低,你得看你的兴趣在哪?在这里,我只能分享关于大数据开发的学习经验。大数据开发工作涉及大数据处理的完整流程,包括:数据采集、ETL、数据存储、计算分析/挖掘、可视化展示。
如下所示,众多的技术栈协作完成流程处理,也可以把整个流程在逻辑上划分为多个层,不同层描述不同的环节,同时包含若干技术栈。
数据来源层
结构化数据:比如存储在RDBMS,如MySQL中的数据
半结构化数据:如Json格式数据,非关系型数据,但也有一定的格式
非结构化数据:图片、视频、mp3等
数据传输层:Flume、Sqoop、Scribe、Logstash、Kibana、Filebeat等
数据存储层:HDFS、Tachyon、KFS、Kafka、HBase、Redis、MongoDB等
资源管理层:Yarn、Mesos等
数据计算分析层:MapReduce、Spark、Flink、Tez、Hive、ClickHouse、Kudu、Kylin、Druid、Python、Spark MLLib、Tensorflow等
任务调度层:Oozie、Azkaban、Airflow等
另外,还会涉及到一些基础服务
分布式协调服务:Zookeeper
集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager
网关:Knox
安全管理框架:Ranger