过来人分享一下关于如何进入大数据领域以及学习路线吧
Java
Java语言应用在了很多大数据框架中,只有掌握了Java才能读懂源码,了解技术组件底层原理,如果是之前从事Java后端开发的就最好不过了,如果之前没做过Java后端开发,那至少需要掌握JavaSE才行。
Linux
大数据集群都是部署在linux服务器上面的,开发者需要经常和集群打交道,比如去集群上面查看日志,甚至参与部署集群和维护集群,这就需要对linux系统有一定的了解,并且需要掌握一些常用的linux命令。
Hadoop
Hadoop可是数据的关键部分,底层用java开发,从狭义上来说它分为3个部分:
- hdfs分布式文件存储系统,大数据方面所有数据都是存到hdfs上的,所以这也是大数据的核心,有了它才能存放数据,才能发掘数据价值,所以这一部分一定要好好掌握。
- mapreduce数据计算引擎,当然这个计算引擎在实际工作中很少有人去写实际代码,因为编码比较复杂,而且计算速度相较于别的框架效率太低。这个框架需要掌握核心原理部分就行了,不要求会写代码,掌握核心原理部分有利于理解其他计算框架。
- yarn任务调度,现在大多数大数据方面的计算框架都会把任务交给yarn调度,这个框架需要掌握任务调度的流程。
Hive
Hive是一种数据仓库工具,语法跟sql差不多,可以用写sql的形式代替mapreduce代码,省去了编写复杂mapreduce代码的部分,就算不会写代码,只要会写sql也能进行数据查询了。hive需要掌握ddl、dml以及数据存储的原理,还需要掌握调优方式。
Spark
Spark到现在还是应用在离线开发中最主要的框架,底层用scala语言开发,工作中可以选择scala或java开发(当然也有python支持的)。它比mapreduce计算效率高很多倍,而且除了应用sparkcore用代码实现逻辑,还可以用sparksql以sql的方式开发逻辑。它还提供了sparkstreaming微批处理,以及机器学习和图计算方面的计算引擎支持。在这里需要掌握spark底层各角色的作用,数据计算模型,sparkcore、sparksql以及sparkstreaming,如果从事算法方面的工作最好掌握下sparkmlib,它提供了很多机器学习算法。
Kafka
Kafka是分布式的消息队列,底层用java开发,是大数据生态中非常重要的组件之一。需要掌握kafka生产者消费者概念,并且能实现生产、消费数据,理解kafka存储模型,理解kafak高吞吐的本质以及如何保证不重复消费和数据丢失问题。
Flink
虽然spark提供了一种准实时流计算,但是现在真正用在实时方向上面的计算框架还是flink,底层应用java语言开发,实际工作中一般用java开发。flink需要掌握底层各角色的作用,数据计算模型,常用算子。另外,flink一般结合kafak使用。
Flume
日志采集工具,可以用来处理文件,监控日志文件并且输出到其它组件或者存储系统。
离线任务调度工具(oozie、azkaban等)
就是应用在离线计算时,设置定时执行的调度系统。
掌握了这些就可以算是大数据入门了,当然我上面写的只是大数据处理中比较关键的几个组件和技术,其中还有一些比如mysql、redis、sqoop、hbase等也是经常应用在大数据领域中的,这些也是需要掌握的。
最后,这只是一篇简单的大数据入门学习路线分享,有感兴趣的小伙伴欢迎一起学习交流分享!
#学习路径#