大数据时代,你在干什么?大家都知道数据本身并没有什么价值,由于分析方法的存在,使得海量的数据变得如同一座永远开采不完的矿,是金矿还是银矿,得看你怎么分析和怎么利用了,和小编一起来了解一下怎么学习大数据吧。以下是小编为你整理的学大数据必须学什么
【了解自身学习大数据的目的】每个人都有自己的想法,学习大数据的目的是什么,是学会分析,还是学会管理呢。
【制定学习大数据的计划】,在学习的过程中,没有计划,估计是达不到理想的彼岸的。一个好的计划是详细合理的,是张弛有度的。
【三人必有我师】向他人学习,在现代社会里,大数据的思维,每个人都会拥有,只有不断向他人学习,才能更好的提高之间,多问为什么,根究5个w原则去做吧。
【互联网很强大】利用网络资源去学习,网络时代,各种网络视频教学平台都有资料、信息,只有跟上时代节奏,才不会落伍。
【乐于操作、沉得下来】如果你学习大数据沉不下来,建议你别学,因为这需要很大的耐心,去处理、分析、解决大量的数据,需要不断去思考,沉得下来,才能进步。
【学好数学及建模】数学来源于生活,数据也是来源于生活,计算机以逻辑说话,数学乃逻辑的先祖,学好数学,懂得原理,学会建立相关模型是非常有必要的。
大数据的学习基础
你可以先从Python看起,Python结构简单思路,这主要是建立你的编程思想。初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。网上有很多免费的视频随便一搜就出来了!
当你有了一定基础之后可以学习下C语言或者JAVA语言这两种语言都是很优秀的。虽然跟你要说的大数据差的很远但是底层的一些东西和一些思想还是要懂一些的
学到这里就可以学习一些架构知识了。我们就以JAVA为例,很多语言都是相通的所以不必纠结语言,我们就以JAVA为例。下面是我认为比较好的一些学习路线。
能把上述东西学好,你毫无疑问已经初入门槛小有成就了,这时候你就可以学习一下爬虫和数据库高级应用之类的课程了。这时候就好比黎明前的黑暗有好多人就在这里放弃了,不过也有部分人认为很轻松,个人觉得一部分是天赋另一部分就是努力了。
接下来就可以学习算法、加密、数据挖掘等等一系列高级课程了。不管哪种语言都有它存在的必然,存在即真理,所以一定尽可能多学几门语言当你真正学好一种语言的时候学另一种语言很快的。还有如果有精力可以学习一下汇编语言熟悉一下底层知识,为你将来更上一层楼打下基础。
不管你怎么学习知识总是无穷的,而且也是相互联系的,当你学会一方面东西学习与它相近的东西有事半功倍的效果,所以与其说是大数据入门不如说是这一个行业的入门。加油学习吧
初级MapReduce
这是你成为Hadoop开发人员的基础课程。
MapReduce提供了以下的主要功能:
1)数据划分和计算任务调度:
2)数据/代码互定位:
3)系统优化:
4)出错检测和恢复:
这种编程模型主要用于大规模数据集(大于1TB)的并行运算。
1、如何理解map、reduce计算模型
2、剖析伪分布式下MapReduce作业的执行过程
3、Yarn模型
4、序列化
5、MapReduce的类型与格式
6、MapReduce开发环境搭建
7、MapReduce应用开发
8、熟悉MapReduce算法原理
Zookeeper
这是个万金油,安装Hadoop的HA的时候就会用到它,以后的Hbase也会用到它。它一般用来存放一些相互协作的信息,这些信息比较小一般不会超过1M,都是使用它的软件对它有依赖,对于我们个人来讲只需要把它安装正确,让它正常的run起来就可以了。
Mysql:我们学习完大数据的处理了,接下来学习学习小数据的处理工具mysql数据库,因为一会装hive的时候要用到,mysql需要掌握到什么层度那?你能在Linux上把它安装好,运行起来,会配置简单的权限,修改root的密码,创建数据库。这里主要的是学习SQL的语法,因为hive的语法和这个非常相似。
Sqoop:这个是用于把Mysql里的数据导入到Hadoop里的。当然你也可以不用这个,直接把Mysql数据表导出成文件再放到HDFS上也是一样的,当然生产环境中使用要注意Mysql的压力。
Hive:这个东西对于会SQL语法的来说就是神器,它能让你处理大数据变的很简单,不会再费劲的编写MapReduce程序。有的人说Pig那?它和Pig差不多掌握一个就可以了。
Oozie:既然学会Hive了,我相信你一定需要这个东西,它可以帮你管理你的Hive或者MapReduce、Spark脚本,还能检查你的程序是否执行正确,出错了给你发报警并能帮你重试程序,最重要的是还能帮你配置任务的依赖关系。我相信你一定会喜欢上它的,不然你看着那一大堆脚本,和密密麻麻的crond是不是有种想屎的感觉。
Hbase:这是Hadoop生态体系中的NOSQL数据库,他的数据是按照key和value的形式存储的并且key是*的,所以它能用来做数据的排重,它与MYSQL相比能存储的数据量大很多。所以他常被用于大数据处理完成之后的存储目的地。
Kafka:这是个比较好用的队列工具,队列是干吗的?排队买票你知道不?数据多了同样也需要排队处理,这样与你协作的其它同学不会叫起来,你干吗给我这么多的数据(比如好几百G的文件)我怎么处理得过来,你别怪他因为他不是搞大数据的,你可以跟他讲我把数据放在队列里你使用的时候一个个拿,这样他就不在抱怨了马上灰流流的去优化他的程序去了,因为处理不过来就是他的事情。而不是你给的问题。当然我们也可以利用这个工具来做线上实时数据的入库或入HDFS,这时你可以与一个叫Flume的工具配合使用,它是专门用来提供对数据进行简单处理,并写到各种数据接受方(比如Kafka)的。
Spark:它是用来弥补基于MapReduce处理数据速度上的缺点,它的特点是把数据装载到内存中计算而不是去读慢的要死进化还特别慢的硬盘。特别适合做迭代运算,所以算法流们特别稀饭它。它是用scala编写的。Java语言或者Scala都可以操作它,因为它们都是用JVM的。