零基础学习大数据,学习路线篇!

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。

Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经成为了语言排行第一名。

从学习难易度来看,作为一个为“优雅”而生的语言,Python语法简捷而清晰,对底层做了很好的封装,是一种很容易上手的高级语言。在一些习惯于底层程序开发的“硬核”程序员眼里,Python简直就是一种“伪代码”。大数据学习群:199427210

零基础学习大数据人工智能,学习路线篇!

在大数据和数据科学领域,Python几乎是万能的,任何集群架构软件都支持Python,Python也有很丰富的数据科学库,所以Python不得不学。

Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会 shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。

好说完基础了,再说说还需要学习哪些大数据技术,可以按我写的顺序学下去。

Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的代名词,所以这个是必学的。Hadoop里面包括几个组件HDFS、MapReduce和YARN,HDFS是存储数据的地方就像我们电脑的硬盘一样文件都存储在这个上面,MapReduce是对数据进行处理计算的,它有个特点就是不管多大的数据只要给它时间它就能把数据跑完,但是时间可能不是很快所以它叫数据的批处理。

YARN是体现Hadoop平台概念的重要组件有了它大数据生态体系的其它软件就能在hadoop上运行了,这样就能更好的利用HDFS大存储的优势和节省更多的资源比如我们就不用再单独建一个spark的集群了,让它直接跑在现有的hadoop yarn上面就可以了。

其实把Hadoop的这些组件学明白你就能做大数据的处理了,只不过你现在还可能对”大数据”到底有多大还没有个太清楚的概念,听我的别纠结这个。等以后你工作了就会有很多场景遇到几十T/几百T大规模的数据,到时候你就不会觉得数据大真好,越大越有你头疼的。当然别怕处理这么大规模的数据,因为这是你的价值所在,让那些个搞Javaee的php的html5的和DBA的羡慕去吧。

记住学到这里可以作为你学大数据的一个节点。

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的。

会这些东西你就成为一个专业的大数据开发工程师了,月薪2W都是小毛毛雨。

后续提高:大数据结合人工智能达到真正的数据科学家,打通了数据科学的任督二脉,在公司是技术专家级别,这时候月薪再次翻倍且成为公司核心骨干。

机器学习(Machine Learning, ML):是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。机器学习的算法基本比较固定了,学习起来相对容易。

深度学习(Deep Learning, DL):深度学习的概念源于人工神经网络的研究,最近几年发展迅猛。深度学习应用的实例有AlphaGo、人脸识别、图像检测等。是国内外稀缺人才,但是深度学习相对比较难,算法更新也比较快,需要跟随有经验的老师学习。

最快的学习方法,就是师从行业专家,学习老师多年积累的经验,自己少走弯路达到事半功倍的效果。自古以来,名师出高徒。

大数据工程师

针对角色一:大数据工程说,对应的工作岗位就叫大数据工程师,对于大数据工程师而言,您至少要掌握以下技能:

linux基础

因为大数据体系,基本都是开源软件,这些开源软件都是在开源的linux系统上运行的,所以你必须会基本的linux操作,比如用户管理,权限,shell编程之类的

大数据学习群:199427210

一. Python学习路线图

1. 基础语法结构(语句块、程序输入输出、文档字符串、日期和时间函数等)

2. 变量和赋值、数字、字符串、列表、元组、字典

3. 代码块及缩进对齐

4. if语句、判断条件

5. Python流程控制语句:while循环、for循环与range()内建函数列表解析

6. 文件对象:文件打开方法、文件输入输出

7. 函数:函数创建、参数等

8. 模块:模块的导入及加载等

9. 语句和语法

10. 数字对象详解,数字运算符及其内建函数等

11. 字符串详解:字符串切片、相关方法

12. 列表:更新、访问及相关函数

13. 元组操作符及内建函数应用

14. 字典详解:创建、更新及相关方法等

15. 集合:可变与不可变集合以及其关内建函数

16. 操作mysql数据库

17. XML解析

18. 熟悉os模块:访问文件系统的主要方法

19. 异常:捕获异常、处理异常

20. 函数高级应用:闭包、装饰器

21. 函数式编程:偏函数、递归函数应用

22. 模块和包:创建及使用方法

23. 面向对象编程

二.Hadoop学习路线图

1. 了解Hadoop生态系统概述以及版本演化

2. HDFS文件系统原理、特性与基本架构

3. HDFS文件系统API编程

a) 使用 FileSystem API 操作 HDFS 中内容

b) 了解 Configuration,Path ,FileStatus,FSDataInputStream,FSDataOutputStream等API类的使用

4. HDFS文件系统命令行操作(hdfs fs -help操作命令)

4. YARN应用场景、基本架构与资源调度

5. Map-Reduce原理、体系架构和工作机制

6. Map-Reduce 编程实践(java python等多语言编程)

7. Map-Reduce高级编程实践

a) 重要的组件了解

i. InputFormat 输入格式(FileInputFormat,TextInputFormat,SequenceInputFormat等)

ii. OutputFormat 输出格式(FileOutputFormat,TextOutputFormat等)

iii. 多种输入与输出使用(MultipleInputs 多种输入,MultipleOututs 多种输出)

iv. Combiner

v. Partitioner

vi. RecordReader

vii. Writable 接口

viii. WritableComparable 接口与 RawComparator 接口

ix. 如何自定义的 Writable 类

b) 计数器(内置计数器,如何自定义计数器)

i. MapReduce 任务计数器:TaskCounter

ii. 文件系统计数器:FileSystemCounter

iii. 输入文件计数器:FileInputFormatCounter

iv. 输出文件计数器:FileOutputFormatCounter

v. 任务计数器:JobCounter

c) join(Map端Join,Reduce)

d) 排序(全排序,部分排序,二次排序)

8. Hadoop运维工具学习

 dfsadmin/mradmin/balancer/distcp/fsck/job等

三.Hive学习路线图

1. hive体系架构

2. hive的访问方式(CLI, Hive Server2, HWI等)

3. HQL

a) 基础语法:DDL,DML

b) 数据类型

c) Hive高级查询语句(group by操作,Join操作,Order by和Sort by,Union all等)

4. 存储类型

a) TextFile

b) Sequence File

c) RCFile

d) ORCFile

5. 函数

a) 自带函数

b) 自定义函数(UDF,UDTF,UDAF)

四.Spark学习路线图

1.Spark基本架构

2.Spark工作机制

3.Spark计算模型

4. scala语言的学习

5.Spark编程

a) 掌握基本实例(wordcount join mapjoin 排序)

6.了解Spark sql 交互式查询

a) 运行架构

b) 基本使用

7.Spark Streaming

a) 基本架构

b) 运行原理

c) 运用场景

d) 编程模型DStream

e) 程序调优方式

8.机器学习

a) 定义

b) 分类

c) 常用算法

d) Mllib(概要,构成,运行架构,了解具体实例)

猜你喜欢

转载自my.oschina.net/u/3804900/blog/1823822