大家好,我是老王随聊,今天和大家讨论的话题——零基础在校大学生应该如何学习大数据
目前大数据是一个非常有发展前景的岗位,在IT界薪资待遇也很高,很多人想从事这方面的工作,那零基础的在校大学生应该如何学习大数据呢?
1)准备一个台式机或笔记本
条件允许的情况下,可以自己买一个台式机或笔记本;
或者去学校机房、图书馆都可以学习(老王当初上大学就是经常去学校机房练习编程)。
2)学习大数据基础编程语言——重点学习
要学习的编程语言为Java或Python,具体喜欢哪一种编程语言,根据自己喜好选择即可。
如果精力和时间允许的情况话,可以再学点Linux命令,为后续学习以及部署大数据服务做准备。
3)编程语言书籍推荐
编程语言方面,可以参考《深入浅出Java》,《深入浅出Python》,这几本都比较适合初学者看。当然最重要的是多跟着书籍做练习,一定要记笔记,把不懂的地方在大数据成长社群进行提问。
4)免费学习网站——保姆级教程
完全免费——建议大家在相对比较系统的网站学习。菜鸟教程 - 学的不仅是技术,更是梦想!
Java 教程 | 菜鸟教程
Python3 教程 | 菜鸟教程
MySQL 教程 | 菜鸟教程
Linux 教程 | 菜鸟教程
老王建议基础薄弱的同学,优先把上面的内容学好,即使你后续转后端开发或者全栈,都需要这些基础知识做支撑。
5)学习Hadoop家族组件—建议作为了解部分
如果前面的基础编程有一定掌握后,这时可以尝试着学习hadoop家族的组件,从hdfs,hive,hbase等学起,逐步深入,切忌欲速则不达。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。
HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。
hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析。
6)分布式大数据处理框架Spark/Flink——建议作为了解部分
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。
如果有疑问或者更好的建议,请在留言区留言,一起探索适合你的学习路径。
版权归原作者 老王随聊 所有, 如有侵权,请联系我们删除。