专栏首页大数据学习交流java转大数据的学习路线
原创

java转大数据的学习路线

一、大数据相关的工作介绍

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

三、大数据学习规划

大数据介绍

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

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

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

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

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

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

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

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

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

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

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

Ozzie,azkaban:定时任务调度的工具。

Hue,Zepplin:图形化任务执行管理,结果查看工具。

Scala语言:编写Spark程序的最佳语言,当然也可以选择用Python。

Python语言:编写一些脚本时会用到。

Allluxio,Kylin等:通过对存储的数据进行预处理,加快运算速度的工具。

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

正文

一、大数据相关工作介绍

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

大数据工程师

数据分析师

大数据科学家

其他(数据挖掘等)

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

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

必须掌握的技能11条

Java高级(虚拟机、并发)

Linux 基本操作

Hadoop(HDFS+MapReduce+Yarn )

HBase(JavaAPI操作+Phoenix )

Hive(Hql基本操作和原理理解)

Kafka

Storm/JStorm

Scala

Python

Spark (Core+sparksql+Spark streaming )

辅助小工具(Sqoop/Flume/Oozie/Hue等)

高阶技能6条

机器学习算法以及mahout库加MLlib

R语言

Lambda 架构

Kappa架构

Kylin

Alluxio

三、学习路径

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

3个月会有(213+4210)3=423小时的学习时间。

第一阶段(基础阶段)

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

Linux操作系统介绍与安装。

Linux常用命令。

Linux常用软件安装。

Linux网络。

防火墙。

Shell编程等。

2)Java 高级学习(《深入理解Java虚拟机》、《Java高并发实战》)—30小时

掌握多线程。

掌握并发包下的队列。

了解JMS。

掌握JVM技术。

掌握反射和动态代理。

3)Zookeeper学习

Zookeeper分布式协调服务介绍。

Zookeeper集群的安装部署。

Zookeeper数据结构、命令。

Zookeeper的原理以及选举机制。

第二阶段(攻坚阶段)

4)Hadoop (《Hadoop 权威指南》)—80小时

HDFS

HDFS的概念和特性。

HDFS的shell操作。

HDFS的工作机制。

HDFS的Java应用开发。

MapReduce

运行WordCount示例程序。

了解MapReduce内部的运行机制。

MapReduce程序运行流程解析。

MapTask并发数的决定机制。

MapReduce中的combiner组件应用。

MapReduce中的序列化框架及应用。

MapReduce中的排序。

MapReduce中的自定义分区实现。

MapReduce的shuffle机制。

MapReduce利用数据压缩进行优化。

MapReduce程序与YARN之间的关系。

MapReduce参数优化。

MapReduce的Java应用开发

5)Hive(《Hive开发指南》)–20小时

Hive 基本概念

Hive 应用场景。

Hive 与hadoop的关系。

Hive 与传统数据库对比。

Hive 的数据存储机制。

Hive 基本操作

Hive 中的DDL操作。

在Hive 中如何实现高效的JOIN查询。

Hive 的内置函数应用。

Hive shell的高级使用方式。

Hive 常用参数配置。

Hive 自定义函数和Transform的使用技巧。

Hive UDF/UDAF开发实例。

Hive 执行过程分析及优化策略

6)HBase(《HBase权威指南》)—20小时

hbase简介。

habse安装。

hbase数据模型。

hbase命令。

hbase开发。

hbase原理。

7)Scala(《快学Scala》)–20小时

Scala概述。

Scala编译器安装。

Scala基础。

数组、映射、元组、集合。

类、对象、继承、特质。

模式匹配和样例类。

了解Scala Actor并发编程。

理解Akka。

理解Scala高阶函数。

理解Scala隐式转换。

8)Spark (《Spark 权威指南》)—60小时

enter image description here

Spark core

Spark概述。

Spark集群安装。

执行第一个Spark案例程序(求PI)。

RDD

enter image description here

RDD概述。

创建RDD。

RDD编程API(Transformation 和 Action Operations)。

RDD的依赖关系

RDD的缓存

DAG(有向无环图)

Spark SQL and DataFrame/DataSet

enter image description here

Spark SQL概述。

DataFrames。

DataFrame常用操作。

编写Spark SQL查询程序。

Spark Streaming

enter image description here

enter image description here

park Streaming概述。

理解DStream。

DStream相关操作(Transformations 和 Output Operations)。

Structured Streaming

其他(MLlib and GraphX )

这个部分一般工作中如果不是数据挖掘,机器学习一般用不到,可以等到需要用到的时候再深入学习。

9)Python

10)自己用虚拟机搭建一个集群,把所有工具都装上,自己开发一个小demo —30小时

可以自己用VMware搭建4台虚拟机,然后安装以上软件,搭建一个小集群(本人亲测,I7,64位,16G内存,完全可以运行起来)

---------------------

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 阿里大数据架构师必备技能,你“佩奇”了嘛?

    这两天真的是被《啥是佩奇》这支广告片刷屏了。佩奇明明是个喜剧角色,却把所有人都给看哭了!

    一起学习大数据
  • Hadoop环境中管理大数据存储八大技巧

    随着IT互联网信息技术的飞速发展和进步。目前大数据行业也越来越火爆,从而导致国内大数据人才也极度缺乏,下面介绍一下关于Hadoop环境中管理大数据存储技巧。

    一起学习大数据
  • 零基础学习大数据Hadoop需要什么准备?Hadoop如何发展起来的?

    1、2001年,Nutch问世。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性...

    一起学习大数据
  • macOS下 Hive 2.x 的安装与配置

    Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务...

    JavaEdge
  • Signature on Pocket PC

    刷信用卡,需要签名;在银行交易,需要签名;领便当,需要签名;走在大街上,不小心碰上一个你的粉丝,拿着本子和笔,对了,你需要签名……签名是个人风格和特征的体现,同...

    ShiJiong
  • 聊一聊线程变量绑定之TransmittableThreadLocal

    可以看出,在配合 TtlExecutors、TtlRunnable 和 TtlCallable 时,TransmittableThreadLocal 可以实现 ...

    开发架构二三事
  • C# 处理Word自动生成报告 二、数据源例子

    FlyLolo
  • java.lang.Exception: 资源处理失败,失败原因:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown

    1:Unknown column '?????‰' in 'where clause',这个问题,百度一搜,挺多的,但是貌似好像没有解决我的问题。贴一下我是如何...

    别先生
  • Windows下Nginx+Mysql+Php(wnmp)环境搭建

    前言  最近想在windows下使用nginx搭建web环境,本来想用套件(WNMP)一键安装,但后来放弃了,觉得还是自己动手,丰衣足食的好,而且套件的局限性太...

    joshua317
  • 机器学习模型什么时候需要做数据标准化?

    这个问题笔者也思考过,只不过不够系统,观点也比较单一,所以才有了上图中的【变量单位之间数量级差异过大】的回答。就着这个话题,笔者查阅相关资料,相对这个...

    石晓文

扫码关注云+社区

领取腾讯云代金券