大数据的本质:两个
- 大数据的存储——分布式文件存储
- 大数据的计算——分布式计算
大数据核心框架:两个
- Hadoop——基于Java语言开发
- Spark——基于Scala语言开发,Scala语言基于Java语言。Spark支持Java语言,但使用Scala语言更优。
- 基本语法
- 类
- 封装
- 继承
- 多态
注:
1.主要指的是JavaSE部分。对于JavaEE(企业级应用,例Tomcat的使用)部分和JavaME(主要应用方向是嵌入式领域,目前大有被Android所替代的趋势)部分,不做掌握要求。JavaEE和JavaME两部分的基础也是JavaSE。
2.Java中没有函数的概念,C/C++中的函数在Java中成为方法,方法中的参数也称为形参,在方法的定义中,是不能使用其他方法作为形参的,但是在方法的调用中,是可以使用方法作为参数的,前提是该方法的返回值必须与形参所定义的值类型一致。
- Java多线程基本知识
- Java同步关键词详解
- java并发包线程池及在开源软件中的应用
- Java并发包消息队里及在开源软件中的应用
- Java JMS技术
- Java动态代理反射
- I/O流
- 泛型
注:目录,在Linux系统中常称为目录,在Windows系统中常称为文件夹,不同称谓同样的性质。
这一阶段是本节的核心,即HDFS(大数据存储)、MapReduce(大数据计算)、HBse(NoSQL数据库)。
Hadoop是一个对海量数据进行处理的分布式系统架构,可以理解为Hadoop就是一个对大量的数据进行分析的工具,和其他组件搭配使用,来完成对大量数据的收集、存储和计算。
有一个基于Hadoop的数据挖掘库——Mahout。
离线计算系统Hadoop体系基础主要内容:
1、Hadoop快速入门
hadoop背景介绍
分布式系统概述
离线数据分析流程介绍
集群搭建
集群使用初步
2、HDFS
HDFS的概念和特性
HDFS的shell(命令行客户端)操作
HDFS的工作机制
NAMENODE的工作机制
java的api操作
案例1:开发shell采集脚本
3、MapReduce基础
自定义Hadoop的RPC框架
Mapreduce编程规范及示例编写
Mapreduce程序运行模式及debug方法
MapReduce程序运行模式的内在机理
MapReduce运算框架的主体工作流程
自定义对象的序列化方法
MapReduce编程案例
4、MapReduce高级
Mapreduce排序
自定义partitioner
Mapreduce的combiner
mapreduce工作机制详解
5、MapReduce实战
maptask并行度机制-文件切片
maptask并行度设置
倒排索引
共同好友
Hadoop入门——>HDFS/MapReduce基础——>HDFS/MapReduce高级——>HDFS/MapReduce实战
数据分析引擎——Hive(数据仓库工具,不是数据库工具。数据仓库是逻辑上的概念,底层使用的是数据库。)、Pig(Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫Pig Latin)
数据采集引擎——Flume(实时日志采集)、Sqoop(数据迁移工具,主要用于在Hive数据库与关系型数据库间进行数据的传递,可将关系型数据库中的数据导入Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。)、DataX(阿里开源)
注:关系型数据库包括,MySQL、Oracle、DB2、Microsoft SQL Server、Microsoft Access、PostgreSQL等。
数据仓库工具Hive基础主要内容:
1) Hadoop的HA机制
2) HA集群的安装部署
3) 集群运维测试之Datanode动态上下线
4) 集群运维测试之Namenode状态切换管理
5) 集群运维测试之数据块的balance
6) HA下HDFS-API变化
7) hive简介
8) hive架构
9) hive安装部署
10) hvie初使用
Hive高级
1) HQL-DDL基本语法
2) HQL-DML基本语法
3) HIVE的join
4) HIVE 参数配置
5) HIVE 自定义函数和Transform
6) HIVE 执行HQL的实例分析
7) HIVE最佳实践注意点
8) HIVE优化策略
9) HIVE实战案例
分布式日志框架Flume主要内容:
1) flume简介/介绍-基础知识
2) flume安装部署与测试
3) flume部署方式
4) flume source相关配置及测试
5) flume sink相关配置及测试
6) flume selector 相关配置与案例分析
7) flume Sink Processors相关配置和案例分析
8) flume Interceptors相关配置和案例分析
9) flume AVRO Client开发
10) flume 和kafka 的整合
11) 案例:采集目录到HDFS
12) 案例:采集文件到HDFS
数据迁移工具Sqoop主要内容:
1) 介绍 和 配置Sqoop
2) Sqoop shell使用
3) Sqoop-import a) DBMS-hdfs b) DBMS-hive c) DBMS-hbase
4) Sqoop-export
实现Hadoop的HA(HA是High availability的缩写,即高可用,7*24小时不中断服务)——ZooKeeper(Zookeeper是分布式协调管理服务框架,管理分布式环境中的数据。简要来说,Zookeeper = 文件系统 + 监听通知机制。)
分布式协调管理服务ZooKeeper主要内容:
1) ZooKeeper简介及应用场景
2) ZooKeeper集群安装部署
3) ZooKeeper的数据节点与命令行操作
4) ZooKeeper的java客户端基本操作及事件监听
5) ZooKeeper核心机制及数据节点
6) ZooKeeper应用案例–分布式共享资源锁
7) ZooKeeper应用案例–服务器上下线动态感知
8) ZooKeeper的数据一致性原理及leader选举机制
Web管理工具——Hue(Hue是大数据分析交互平台,是大数据web管理器,是运营和开发Hadoop应用的图形化用户界面。其包括三个主要部分:Hue UI,Hue Server,Hue DB。Hue程序被整合到一个类似桌面的环境,以web程序的形式发布,对于单独的用户来说不需要额外的安装。)
工作流引擎——Oozie(Oozie,能够提供对Hadoop的MapReduce和Pig的Jobs任务调度与协调。功能相似的任务调度框架还有Azkaban和Zeus。)
注1:Hadoop-HA严格来说应该分成各个组件的HA机制——HDFS的HA、YARN的HA
注2:大数据四大协作框架——Oozie(任务调度框架)、Sqoop(数据转换工具)、Flume(文件收集库框架)、Hue(大数据Web工具)。
内存计算Spark基础主要内容:
1) Spark介绍
2) Spark应用场景
3) Spark和Hadoop MR、Storm的比较和优势
4) RDD
5) Transformation
6) Action
7) Spark计算PageRank
8) Lineage
9) Spark模型简介
10) Spark缓存策略和容错处理
11) 宽依赖与窄依赖
12) Spark配置讲解
13) Spark集群搭建
14) 集群搭建常见问题解决
15) Spark原理核心组件和常用RDD
16) 数据本地性
17) 任务调度
18) DAGScheduler
19) TaskScheduler
20) Spark源码解读
21) 性能调优
22) Spark和Hadoop2.x整合:Spark on Yarn原理
Scala编程
1.Scala是一门多范式(Multi-paradigm)的编程语言,类似Java编程语言,设计初衷是实现可伸缩的语言、并要集成面向对象编程和命令式编程、函数式编程的各种特性。
2.Scala是运行在Java虚拟机上的,并兼容现有Java程序。Scala 源代码被编译成Java字节码,所以它可以运行于JVM之上,并可以调用现有的Java类库。
3.可应用于后端开发,表达能力较强,擅长处理数据,长期运行且吞吐量较大的场景。
编程语言Scala主要内容:
1) scala解释器、变量、常用数据类型等
2) scala的条件表达式、输入输出、循环等控制结构
3) scala的函数、默认参数、变长参数等
4) scala的数组、变长数组、多维数组等
5) scala的映射、元组等操作
6) scala的类,包括bean属性、辅助构造器、主构造器等
7) scala的对象、单例对象、伴生对象、扩展类、apply方法等
8) scala的包、引入、继承等概念
9) scala的特质
10) scala的操作符
11) scala的高阶函数
12) scala的集合
13) scala数据库连接
Spark Core——基于内存的数据计算,替代的是Hadoop中的MapReduce部分。MapReduce是基于外存的计算,其计算速度较慢、时效性较差。
Spark SQL——类似于Oracle的SQL语句
Spark Streaming——进行实时计算(流式计算),典型流式计算的生活场景是自来水厂。
流式计算Spark Streaming主要内容:
1) Spark-Streaming简介
2) Spark-Streaming编程
3) 实战:StageFulWordCount
4) Flume结合Spark Streaming
5) Kafka结合Spark Streaming
6) 窗口函数
7) ELK技术栈介绍
8) ElasticSearch安装和使用
9) Storm架构分析
10) Storm编程模型、Tuple源码、并发度分析
11) Storm WordCount案例及常用Api分析
Storm是分布式实时大数据处理框架,是流计算中的佼佼者和主流,被业界称为实时版Hadoop。
和Storm相关的NoSQL数据库,Redis——基于内存的数据库。作用类似Spark Streaming。
实时计算Storm主要内容:
1) Storm的基本概念
2) Storm的应用场景
3) Storm和Hadoop的对比
4) Storm集群的安装的linux环境准备
5) zookeeper集群搭建
6) Storm集群搭建
7) Storm配置文件配置项讲解
8) 集群搭建常见问题解决
9) Storm常用组件和编程API:Topology、 Spout、Bolt
10) Storm分组策略(stream groupings)
11) 使用Strom开发一个WordCount例子
12) Storm程序本地模式debug、Storm程序远程debug
13) Storm事物处理
14) Storm消息可靠性及容错原理
15) Storm结合消息队列Kafka:消息队列基本概念(Producer、Consumer、Topic、Broker等)、消息队列Kafka使用场景、Storm结合Kafka编程API
16) Storm Trident概念
17) Trident state 原理
18) Trident开发实例
19) Storm DRPC(分布式远程调用)介绍
20) Storm DRPC实战讲解
21) Storm和Hadoop 2.x的整合:Storm on Yarn
内存数据库Redis主要内容:
1) redis特点、与其他数据库的比较
2) 如何安装redis
3) 如何使用命令行客户端
4) redis的字符串类型
5) redis的散列类型
6) redis的列表类型
7) redis的集合类型
8) 如何使用java访问redis【a.python访问redis,scala访问redis】
9) redis的事务(transaction)
10) redis的管道(pipeline)
11) redis持久化(AOF+RDB)
12) redis优化
13) redis的主从复制
14) redis的sentinel高可用
15) twemproxy,codis实战
16) redis3.x集群安装配置
Kafka是一个开源流处理平台——高吞吐量的分布式发布订阅消息系统,由Scala和Java编写。它可处理用户在网站中的所有动作流数据。类似的消息中间件还有RocketMQ。
消息纸中间件Kafka主要内容:
1) kafka是什么
2) kafka体系结构
3) kafka配置详解
4) kafka的安装
5) kafka的存储策略
6) kafka分区特点
7) kafka的发布与订阅
8) java编程操作kafka
9) scala编程操作kafka
10) flume 和kafka 的整合
11) Kafka 和storm 的整合
1、python及numpy库
1) 机器学习简介
2) 机器学习与python
3) python语言–快速入门
4) python语言–数据类型详解
5) python语言–流程控制语句
6) python语言–函数使用
7) python语言–模块和包
8) phthon语言–面向对象
9) python机器学习算法库–numpy
10) 机器学习必备数学知识–概率论
2、常用算法实现
1) knn分类算法–算法原理
2) knn分类算法–代码实现
3) knn分类算法–手写字识别案例
4) lineage回归分类算法–算法原理
5) lineage回归分类算法–算法实现及demo
6) 朴素贝叶斯分类算法–算法原理
7) 朴素贝叶斯分类算法–算法实现
8) 朴素贝叶斯分类算法–垃圾邮件识别应用案例
9) kmeans聚类算法–算法原理
10) kmeans聚类算法–算法实现
11) kmeans聚类算法–地理位置聚类应用
12) 决策树分类算法–算法原理
13) 决策树分类算法–算法实现
1) 第四层负载均衡
a) Lvs负载均衡 i. 负载算法,NAT模式,直接路由模式(DR),隧道模式(TUN)
b) F5负载均衡器介绍
2) 第七层负载均衡
a) Nginx b) Apache
3) Tomcat、JVM优化提高并发量
4) 缓存优化
a) Java缓存框架 i. Oscache,ehcache
b) 缓存数据库 i. Redis,Memcached
5) Lvs+nginx+tomcat+redis|memcache构建二层负载均衡千万并发处理
6) Haproxy
7) Fastdfs小文件独立存储管理
8) Redis缓存系统 a) Redis基本使用 b) Redis sentinel高可用 c) Redis好友推荐算法
Lucene主要内容:
1) Lucene介绍
2) Lucene 倒排索引原理
3) 建索引 IndexWriter
4) 搜索 IndexSearcher
5) Query
6) Sort和 过滤 (filter)
7) 索引优化和高亮
Solr主要内容:
1) 什么是solr
2) 为什么工程中要使用solr
3) Solr的原理
4) 如何在tomcat中运行solr
5) 如何利用solr进行索引与搜索
6) solr的各种查询
7) solr的Filter
8) solr的排序
9) solr的高亮
10) solr的某个域统计
11) solr的范围统计
12) solrcloud集群搭建
HDFS Federation即HDFS的联邦,可简单理解为多个HDFS集群聚合到一起,更准确的理解是有多个namenode节点的HDFS集群。
常见大数据开源框架:
离线计算:Hadoop MapReduce、Spark
实时(流式)计算:Storm、Spark Streaming、S4、Heron
文件存储:Hadoop HDFS、Tachyon、KFS
NoSQL数据库:HBase(列存储数据库)、Redis(K-V数据库)、MongoDB(文档数据库)、Neo4j(图形数据库)
资源管理:Yarn、Mesos
日志收集:Flume、Scribe、Logstash、Kibana
消息系统:Kafka、StormMQ、ZeroMQ、RabbitMQ
查询分析:Hive、Impala、Pig、Presto、Phoenix、Spark SQL、Drill、Flink、Kylin、Druid
分布式协调服务:ZooKeeper
集群管理与监控:Ambari、Ganglia、Nagios、Cloudera Manager
数据挖掘与机器学习:Mahout、Spark MLlib
数据同步:Sqoop、DataX
任务调度:Oozie
…
包括:JavaWeb、关系型数据库、前端三剑客(HTML、CSS、JavaScript)
千里之行,始于足下。