大数据学习之路【跟着大神学习一波】

前言:

  • 一、背景介绍
  • 二、大数据介绍

正文:

  • 一、大数据相关的工作介绍
  • 二、大数据工程师的技能要求
  • 三、大数据学习规划
  • 四、持续学习资源推荐(书籍,博客,网站)
  • 五、项目案例分析(批处理+实时处理)

前言

一、背景介绍

本人目前是一名大数据工程师,项目数据50T,日均数据增长20G左右,个人是从Java后端开发,经过3个月的业余自学成功转型大数据工程师。

大数据学习群:716581014

二、大数据介绍

大数据本质也是数据,但是又有了新的特征,包括数据来源广、数据格式多样化(结构化数据、非结构化数据、Excel文件、文本文件等)、数据量大(最少也是TB级别的、甚至可能是PB级别)、数据增长速度快等。

针对以上主要的4个特征我们需要考虑以下问题:

  1. 数据来源广,该如何采集汇总?,对应出现了Sqoop,Cammel,Datax等工具。

  2. 数据采集之后,该如何存储?,对应出现了GFS,HDFS,TFS等分布式文件存储系统。

  3. 由于数据增长速度快,数据存储就必须可以水平扩展。

  4. 数据存储之后,该如何通过运算快速转化成一致的格式,该如何快速运算出自己想要的结果?

    对应的MapReduce这样的分布式运算框架解决了这个问题;但是写MapReduce需要Java代码量很大,所以出现了Hive,Pig等将SQL转化成MapReduce的解析引擎;

    普通的MapReduce处理数据只能一批一批地处理,时间延迟太长,为了实现每输入一条数据就能得到结果,于是出现了Storm/JStorm这样的低时延的流式计算框架;

    但是如果同时需要批处理和流处理,按照如上就得搭两个集群,Hadoop集群(包括HDFS+MapReduce+Yarn)和Storm集群,不易于管理,所以出现了Spark这样的一站式的计算框架,既可以进行批处理,又可以进行流处理(实质上是微批处理)。

  5. 而后Lambda架构,Kappa架构的出现,又提供了一种业务处理的通用架构。

  6. 为了提高工作效率,加快运速度,出现了一些辅助工具:

    • Ozzie,azkaban:定时任务调度的工具。
    • Hue,Zepplin:图形化任务执行管理,结果查看工具。
    • Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。
    • Python语言:编写一些脚本时会用到。
    • Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。

以上大致就把整个大数据生态里面用到的工具所解决的问题列举了一遍,知道了他们为什么而出现或者说出现是为了解决什么问题,进行学习的时候就有的放矢了。

正文

一、大数据相关工作介绍

大数据方向的工作目前主要分为三个主要方向:

  1. 大数据工程师
  2. 数据分析师
  3. 大数据科学家
  4. 其他(数据挖掘等)

二、大数据工程师的技能要求

附上大数据工程师技能图:

enter image description here

必须掌握的技能11条

  1. Java高级(虚拟机、并发)
  2. Linux 基本操作
  3. Hadoop(HDFS+MapReduce+Yarn )
  4. HBase(JavaAPI操作+Phoenix )
  5. Hive(Hql基本操作和原理理解)
  6. Kafka
  7. Storm/JStorm
  8. Scala
  9. Python
  10. Spark (Core+sparksql+Spark streaming )
  11. 辅助小工具(Sqoop/Flume/Oozie/Hue等)

高阶技能6条

  1. 机器学习算法以及mahout库加MLlib
  2. R语言
  3. Lambda 架构
  4. Kappa架构
  5. Kylin
  6. Alluxio

三、学习路径

假设每天可以抽出3个小时的有效学习时间,加上周末每天保证10个小时的有效学习时间;

3个月会有(21*3+4*2*10)*3=423小时的学习时间。

第一阶段(基础阶段)

1)Linux学习(跟鸟哥学就ok了)—–20小时

  1. Linux操作系统介绍与安装。
  2. Linux常用命令。
  3. Linux常用软件安装。
  4. Linux网络。
  5. 防火墙。
  6. Shell编程等。

大数据应该学什么?如果是有基础就根据个人情况来定,如果是零基础想学习大数据,大数据应该学什么?大数据要学的东西有

很多,下面列举了一些学习大数据就该学习的技术,许多想学习大数据不知道大数据应该学什么的,可以参考一下。

首先学习大数据,先了解什么是大数据,了解大数据大概的运用,自己是否对大数据感兴趣,因为学门技术刚开始不是一件易

事,需要有足够的决心和毅力,要知道半途而废,这样浪费时间精力、还浪费金钱。所以想学大数据,就需要对大数据有一个大概的认识。

第一阶段

对于零基础的朋友,一开始入门可能不会太简单。因为需要掌握一门计算机的编程语言,计算机编程语言有很多,Java是目前使

用最为广泛的网络编程语言之一。大数据技术学习前需要一定的Java技术作为基础支持,Java只需理解一些基本的概念,就可以

用它编写出适合于各种情况的应用程序。在学习Java的时候,我们一般需要学习这些课程: HTML&CSS&JS,java的基础,

JDBC与数据库,JSP java web技术, jQuery与AJAX技术,SpringMVC、Mybatis、Hibernate等等。这些课程都能帮助我们更好

了解Java,学会运用Java。

第二阶段

学完了编程语言之后,一般就可以进行大数据部分的课程学习了。一般来说,学习大数据部分的时间比学习Java的时间要短。大

数据课程,包括大数据技术入门,海量数据高级分析语言,海量数据存储分布式存储,以及海量数据分析分布式计算等部分,

Linux,Hadoop,Scala, HBase, Hive, Spark等等专业课程。如果要完整的学习大数据的话,这些课程都是必不可少的。

学习大数据专业性较强,刚开始比较艰辛,自学的话会比较艰难,在学习的过程中,投入时间和精力,以兴趣来驱动学习,只要努力咬咬牙坚持学习到最后,相信所付出的就会有回报的,学习大数据毕业实习最低8000-10000往上的薪水,之后再加上一些项目经验的积累,拿高薪工资就可想而知了。

通过深入浅出、通俗易懂的教学方式,指导学生更快的掌握技能知识。

大数据学习群:716581014

猜你喜欢

转载自blog.csdn.net/qq_41842569/article/details/81157225