作为一个过来人来讲,在学习的路上没少掉坑里。经历跌宕起伏,才逐渐明白数据的光明。
博主96年,从事大数据开发工作4年。实时、离线、数仓、springcloud、爬虫、机器学习都略有接触及实际开发经验。
大数据范围很广,涉及的分支也很多。整理如下学习体系供参考。
基础语言学习: java
推荐理由:大数据很多框架底层源码都是java编写,如果java不会,看源码解决问题,深入就不用谈了。
大数据入门:Hadoop
推荐理由:Hadoop是一个大的生态圈,也可以说是最初的开始,Hadoop本身的存储HDFS,计算MR、HadoopStreaming,资源调度YARN等,都广泛应用于现在生产开发中(Mr,HadoopStreaming 没啥人用了。)
数据库:Hive
推荐理由:可以学完hive后认真对比Hive与mysql之间的区别,然后明白hive存在的意义。丰富的函数库,人性化的UDF/UDAF/UDTF 自定义模块设计。离线数据仓库基础。MR/Spark引擎切换。
列式数据存储:Hbase
推荐理由:大数据入门必然要了解的 列式分布式存储 ,感受列式存储及rowkey scan的快感,了解海量数据存储的过程,深入探讨LSM及BloomFilter的协调。
基于内存计算框架:Spark
推荐理由:大数据计算框架(微批),基于scala原生语言开发 (Java也可以),与java无缝调用,作用于jvm之上,了解函数式编程的魅力,让代码风骚起来。
实时计算框架:Flink
推荐理由:目前最火的计算框架Flink,支持流批一体,真正做到了"实时",在于独立operator的协调,在大数据量环境下的反压,稳健的Checkpoint,两阶段提交等。这些优点保证了它的地位稳步提升。
消息队列:Kafka
推荐理由:一种高吞吐量的分布式发布订阅消息系统,可以处理消费者在网站中的所有动作流数据。可以实时的处理大量数据以满足各种需求场景。
分布式协调:Zookeeper
推荐理由: 一个为分布式应用提供一致性服务的软件,提供配置维护、域名服务、分布式同步、组服务等,大数据集群搭建的基础。
基于以上推荐自学完,可以看下自己感兴趣的OLAP/OLTP其他数据库,学习一下他们的特性及区别。更快掌握”大数据“ 技术。
加油!骚年们!