大数据之旅
前言:
这个博客将记录我大数据的学习历程,供大家学习和参考,当然如有什么地方写得不好的,望大家能多给建议
首先,在学习之前我先对大数据有一个大概的概念,并参考网上的资料做了一个学习大数据的计划,现把大数据需要学习的知识点放在下面,有需要的朋友可以参考参考
第一阶段 JavaWwb 开发基础
HTML基础
[]1、Html基本介绍
[]2、HTML语法规范
[]3、基本标签介绍
[]4、HTML编辑器/文本文档/WebStrom/elipse
[]5、HTML元素和属性
[]6、基本的HTML元素
[]6.1 标题
[]6.2 段落
[]6.3 样式和style属性
[]6.3 链接 a
[]6.4 图像 img
[]6.5 表格 table
[]6.6 列表 ul/ol/dl
[]7、 HTML注释
[]8、表单介绍
[]9、Table标签
[]10、DIV布局介绍
[]11、HTML列表详解
HTML布局和Bootstrap
[]1、 HTML块元素(block)和行内元素(inline)
[]2、使用div实现网页布局
[]3、响应式WEB设计(Responsive Web Design)
[]4、使用bootstrap实现响应式布局
HTML表单元素
[]1、HTML表单 form
[]2、HTML表单元素
[]3、 HTML input的类型 type
[]4、 Html input的属性
CSS基础
[]1、CSS简介及基本语法
[]2、在HTML文档中使用CSS
[]3、CSS样式
[]4、CSS选择器
[]5、盒子模型
[]6、布局及定位
CSS高级/CSS3
[]1、尺寸和对齐
[]2、分类(clear/cursor/display/float/position/visibility)
[]3、导航栏
[]4、图片库
[]5、图片透明
[]6、媒介类型 @media
[]7、CSS3
[]8、CSS3动画效果
JavaScript基础
[]1、JavaScript简介
[]2、基本语法规则
[]3、在HTML文档中使用JS
[]4、JS变量
[]5、JS数据类型
[]6、JS函数
[]7、JS运算符
[]8、流程控制
[]9、JS错误和调试
JavaScript对象和作用域
[]1、数字 Number
[]2、字符串String
[]3、日期 Date
[]4、数组
[]5、数学 Math
[]6、DOM对象和事件
[]7、BOM对象
[]8、Window对象
[]9、作用域和作用域链
[]10、JSON
Javascript库
[]1、Jquery
[]2、Prototype
[]3、Ext Js
Jquery
[]1、Jquery基本语法
[]2、Jquery选择器
[]3、Jquery事件
[]4、Jquery选择器
[]5、Jquery效果和动画
[]6、使用Jquery操作HTML和DOM
[]7、Jquery遍历
[]8、Jquery封装函数
[]9、Jquery案例
表单验证和Jquery Validate
[]1、用Js对HTML表单进行验证
[]2、Jquery Validata基本用法
[]3、默认校验规则和提示信息
[]4、debug和ignore
[]5、更改错误信息显示位置和样式
[]6、全部校验通过后的执行函数
[]7、修改验证触发方式
[]8、异步验证
[]9、自定义校验方法
[]10、radio 和 checkbox、select 的验证
Java基础
[]1、关于Java
[]2、Java运行机制
[]3、第一个Java程序,注释
[]4、Javac,Java,Javadoc等命令
[]5、标识符与关键字
[]6、变量的声明,初始化与应用
[]7、变量的作用域
[]8、变量重名
[]9、基本数据类型
[]10、类型转换与类型提升
[]11、各种数据类型使用细节
[]12、转义序列
[]13、各种运算符的使用
流程控制
[]1、选择控制语句if-else
[]2、选择控制语句switch-case
[]3、循环控制语句while
[]4、循环控制语句do-while
[]5、循环控制语句for与增强型for
[]6、break,continue,return
[]7、循环标签
[]8、数组的声明与初始化
[]9、数组内存空间分配
[]10、栈与堆内存
[]11、二维(多维)数组
[]12、Arrays类的相关方法
[]13、main方法命令行参数
面向对象
[]1、面向对象的基本思想
[]2、类与对象
[]3、成员变量与默认值
[]4、方法的声明,调用
[]5、参数传递和内存图
[]6、方法重载的概念
[]7、调用原则与重载的优势
[]8、构造器声明与默认构造器
[]9、构造器重载
[]10、this关键字的使用
[]11、this调用构造器原则
[]12、实例变量初始化方式
[]13、可变参数方法
访问权限控制
[]1、包 package和库
[]2、访问权限修饰符private/protected/public/包访问权限
[]3、类的访问权限
[]4、抽象类和抽象方法
[]5、接口和实现
[]6、解耦
[]7、Java的多重继承
[]8、通过继承来扩展接口
错误和异常处理
[]1、概念:错误和异常
[]2、基本异常
[]3、捕获异常 catch
[]4、创建自定义异常
[]5、捕获所有异常
[]6、Java标准异常
[]7、使用finally进行清理
[]8、异常的限制
[]9、构造器
[]10、异常匹配
[]11、异常使用指南
数据库基础(MySQL)
JDBC
[]1、Jdbc基本概念
[]2、使用Jdbc连接数据库
[]3、使用Jdbc进行crud操作
[]4、使用Jdbc进行多表操作
[]5、Jdbc驱动类型
[]6、Jdbc异常和批量处理
[]7、Jdbc储存过程
Servlet和JSP
[]1、Servlet简介
[]2、Request对象
[]3、Response对象
[]4、转发和重定向
[]5、使用Servlet完成Crud
[]6、Session和Coolie简介
[]7、ServletContext和Jsp
[]8、El和Jstl的使用
Ajax
[]1、什么是Ajax
[]2、XMLHttpRequest对象(XHR)
[]3、XHR请求
[]4、XHR响应
[]5、readystate/onreadystatechange
[]6、Jquery Ajax
[]7、JSON
[]8、案例:对用户名是否可用进行服务器端校验
综合案例
[]1、项目开发一般流程介绍
[]2、模块化和分层
[]3、DButils
[]4、QueryRunner
[]5、ResultSetHandle
[]6、案例:用户登录/注册,从前端到后端
第二阶段 Java SE
访问权限和继承
[]1、包的声明与使用
[]2、import与import static
[]3、访问权限修饰符
[]4、类的封装性
[]5、static(静态成员变量)
[]6、final(修饰变量,方法)
[]7、静态成员变量初始化方式
[]8、类的继承与成员继承
[]9、super的使用
[]10、调用父类构造器
[]11、方法的重写与变量隐藏
[]12、继承实现多态和类型转换
[]13、instanceof
抽象类与接口
[]1、抽象类
[]2、抽象方法
[]3、继承抽象类
[]4、抽象类与多态
[]5、接口的成员
[]6、静态方法与默认方法
[]7、静态成员类
[]8、实例成员类
[]9、局部类
[]10、匿名类
[]11、eclipse的使用与调试
[]12、内部类对外围类的访问关系
[]13、内部类的命名
Lambda表达式与常用类
[]1、函数式接口
[]2、Lambda表达式概念
[]3、Lambda表达式应用场合
[]4、使用案例
[]5、方法引用
[]6、枚举类型(编译器的处理)
[]7、包装类型(自动拆箱与封箱)
[]8、String方法
[]9、常量池机制
[]10、String讲解
[]11、StringBuilder讲解
[]12、Math,Date使用
[]13、Calendars使用
异常处理与泛型
[]1、异常分类
[]2、try-catch-finally
[]3、try-with-resources
[]4、多重捕获multi-catch
[]5、throw与throws
[]6、自定义异常和优势
[]7、泛型背景与优势
[]8、参数化类型与原生类型
[]9、类型推断
[]10、参数化类型与数组的差异
[]11、类型通配符
[]12、自定义泛型类和类型擦出
[]13、泛型方法重载与重写
集合
[]1 、常用数据结构
[]2 、Collection接口
[]3 、List与Set接口
[]4 、SortedSet与NavigableSet
[]5 、相关接口的实现类
[]6 、Comparable与Comparator
[]7、Queue接口
[]8 、Deque接口
[]9 、Map接口
[]10、NavigableMap
[]11、相关接口的实现类
[]12、流操作(聚合操作)
[]13、Collections类的使用
I/O流与反射
[]1 、File类的使用
[]2 、字节流
[]3 、字符流
[]4 、缓存流
[]5 、转换流
[]6 、数据流
[]7、对象流
[]8、类加载,链接与初始化
[]9 、ClassLoader的使用
[]10、Class类的使用
[]11、通过反射调用构造器
[]12、安全管理器
网络编程模型与多线程
[]1、进程与线程
[]2、创建线程的方式
[]3、线程的相关方法
[]4、线程同步
[]5、线程死锁
[]6、线程协作操作
[]7、计算机网络(IP与端口)
[]8、TCP协议与UDP协议
[]9、URL的相关方法
[]10、访问网络资源
[]11、TCP协议通讯
[]12、UDP协议通讯
[]13、广播
SSM-Spring
[]1.Spring/Spring MVC
[]2.创建Spring MVC项目
[]3.Spring MVC执行流程和参数
SSM-Spring.Mybatis
[]1.MyBatis简介
[]2.MyBatis配置文件
[]3.用MyBatis完成CRUD
[]4.ResultMap的使用
[]5.MyBatis关联查询
[]6.动态SQL
[]7.MyBatis缓冲
[]8.MyBatis-Generator
Socket编程
[]1.网络通信和协议
[]2.关于Socket
[]3.Java Socket
[]4.Socket类型
[]5.Socket函数
[]6.WebSocket
[]7.WebSocket/Spring MVC/WebSocket Ajax
IO/异步
[]window对象
[]全局作用域
[]窗口关系及框架
[]窗口位置和大小
[]打开窗口
[]间歇调用和超时调用(灵活运用)
[]系统对话框
[]location对象
[]navigator对象
[]screen对象
[]history对象
NIO/AIO
[]1.网络编程模型
[]2.BIO/NIO/AIO
[]3.同步阻塞
[]4.同步非阻塞
[]5.异步阻塞
[]6.异步非阻塞
[]7.NIO与AIO基本操作
[]8.高性能IO设计模式
第三阶段 Java 主流框架
MyBatis
[]1.mybatis框架原理分析
[]2.mybatis框架入门程序编写
[]3.mybatis和hibernate的本质区别和应用场景
[]4.mybatis开发dao方法
[]5.SqlMapConfig配置文件讲解
[]6.输入映射-pojo包装类型的定义与实现
[]7.输出映射-resultType、resultMap
[]8.动态sql
[]9.订单商品数据模型分析
[]10.高级映射的使用
[]11.查询缓存之一级缓存、二级缓存
[]12.mybatis与spring整合
[]13. mybatis逆向工程自动生成代码
Spring/Spring MVC
[]1. springmvc架构介绍
[]2. springmvc入门程序
[]3. spring与mybatis整合
[]4. springmvc注解开发—商品修改功能分析
[]5. springmvc注解开发—RequestMapping注解
[]6. springmvc注解开发—Controller方法返回值
[]7. springmvc注解开发—springmvc参数绑定过程分析
[]8. springmvc注解开发—springmvc参数绑定实例讲解
[]9. springmvc与struts2的区别
[]10. springmvc异常处理
[]11. springmvc上传图片
[]12. springmvc实现json交互
[]13. springmvc对RESTful支持
[]14. springmvc拦截器
第四阶段 关系型数据库/MySQL/NoSQL
SQL基础
[]1.SQL及主流产品
[]2.MySQL的下载与安装(sinux/windows)
[]3.MySql的基本配置/配置文件
[]4.基本的SQL操作 DDL
[]5.基本的SQL操作 DML
[]6.基本的SQL操作 DCL
[]7.MySQL客户端工具
[]8.MySQL帮助文档
MySQL数据类型和运算符
[]1 数值类型
[]2 日期时间类型
[]3 字符串类型
[]4 CHAR 和 VARCHAR 类型
[]5 BINARY 和 VARBINARY 类型
[]6 ENUM 类型
[]7 SET 类型
[]8 算术运算符
[]9 比较运算符
[]10 逻辑运算符
[]11 位运算
[]12 运算符的优先级
MySQL函数
[]1 字符串函数
[]2 数值函数
[]3 日期和时间函数
[]4 流程函数
[]5 其他常用函数
MySQL存储引擎
[]1.MySQL支持的存储引擎及其特性
[]2.MyISAM
[]3.InnoDB
[]4.选择合适的存储引擎
选择合适的数据类型
[]1 CHAR 与 VARCHAR
[]2 TEXT 与 BLOB
[]3 浮点数与定点数
[]4 日期类型选择
字符集
[]1 字符集概述
[]2 Unicode字符集
[]3 汉字及一些常见字符集
[]4 选择合适的字符集
[]5 MySQL 支持的字符集
[]6 MySQL 字符集的设置
索引的设计和使用
[]1.什么是索引
[]2.索引的类型
[]3.索引的数据结构 BTree B+Tree Hash
[]4.索引的存储
[]5.MySQL索引
[]6.查看索引的使用情况
[]7.索引设计原则
视图/存储过程/函数/触发器
[]1. 什么是视图
[]2. 视图操作
[]3. 什么是存储过程
[]4. 存储过程操作
[]5. 什么是函数
[]6. 函数的相关操作
[]7. 触发器
事务控制/锁
[]1. 什么是事务
[]2. 事务控制
[]3. 分布式事务
[]4. 锁/表锁/行锁
[]5. InnoDB 行锁争用
[]6. InnoDB 的行锁模式及加锁方法7
[]7 InnoDB 行锁实现方式7
[]8 间隙锁(Next-Key 锁)
[]9 恢复和复制的需要,对 InnoDB 锁机制的影响
[]10 InnoDB 在不同隔离级别下的一致性读及锁的差异
[]11 表锁
[]12 死锁
SQL Mode和安全问题
[]1. 关于SQL Mode
[]2. MySQL中的SQL Mode
[]3. SQL Mode和迁移
[]4. SQL 注入
[]5. 开发过程中如何避免SQL注入
SQL优化
[]1.通过 show status 命令了解各种 SQL 的执行频率
[]2. 定位执行效率较低的 SQL 语句
[]3. 通过 EXPLAIN 分析低效 SQL 的执行计划
[]4. 确定问题并采取相应的优化措施
[]5. 索引问题
[]6.定期分析表和检查表
[]7.定期优化表
[]8.常用 SQL 的优化
MySQL数据库对象优化
[]1. 优化表的数据类型
[]2 散列化
[]3 逆规范化
[]4 使用中间表提高统计查询速度
[]5. 影响MySQL性能的重要参数
[]6. 磁盘I/O对MySQL性能的影响
[]7. 使用连接池
[]8. 减少MySQL连接次数
[]9. MySQL负载均衡
[]MySQL集群
[]MySQL管理和维护
[]MemCache
[]Redis
[]在Java项目中使用MemCache和Redis
第五阶段:操作系统/Linux、云架构
Linux安装与配置
[]1、安装Linux至硬盘
[]2、获取信息和搜索应用程序
[]3、进阶:修复受损的Grub
[]4、关于超级用户root
[]5、依赖发行版本的系统管理工具
[]6、关于硬件驱动程序
[]7、进阶:配置Grub
系统管理与目录管理
[]1、Shell基本命令
[]2、使用命令行补全和通配符
[]3、find命令、locate命令
[]4、查找特定程序:whereis
[]5、Linux文件系统的架构
[]6、移动、复制和删除
[]7、文件和目录的权限
[]8、文件类型与输入输出
[]9、vmware介绍与安装使用
[]10、网络管理、分区挂载
用户与用户组管理
[]1、软件包管理
[]2、磁盘管理
[]3、高级硬盘管理RAID和LVM
[]4、进阶:备份你的工作和系统
[]5、用户与用户组基础
[]6、管理、查看、切换用户
[]7、/etc/...文件
[]8、进程管理
[]9、linux VI编辑器,awk,cut,grep,sed,find,unique等
Shell编程
[]1、 SHELL变量
[]2、传递参数
[]3、数组与运算符
[]4、SHELL的各类命令
[]5、SHELL流程控制
[]6、SHELL函数
[]7、SHELL输入/输出重定向
[]8、SHELL文件包含
服务器配置
[]1、系统引导
[]2、管理守护进程
[]3、通过xinetd启动SSH服务
[]4、配置inetd
[]5、Tomcat安装与配置
[]6、MySql安装与配置
[]7、部署项目到Linux
第六阶段:Hadoop生态系统
Hadoop基础
[]1、大数据概论
[]2、 Google与Hadoop模块
[]3、Hadoop生态系统
[]4、Hadoop常用项目介绍
[]5、Hadoop环境安装配置
[]6、Hadoop安装模式
[]7、Hadoop配置文件
HDFS分布式文件系统
[]1、认识HDFS及其HDFS架构
[]2、Hadoop的RPC机制
[]3、HDFS的HA机制
[]4、HDFS的Federation机制
[]5、 Hadoop文件系统的访问
[]6、JavaAPI接口与维护HDFS
[]7、HDFS权限管理
[]8、hadoop伪分布式
Hadoop文件I/O详解
[]1、Hadoop文件的数据结构
[]2、 HDFS数据完整性
[]3、文件序列化
[]4、Hadoop的Writable类型
[]5、Hadoop支持的压缩格式
[]6、Hadoop中编码器和解码器
[]7、 gzip、LZO和Snappy比较
[]8、HDFS使用shell+Java API
MapReduce工作原理
[]1、MapReduce函数式编程概念
[]2、 MapReduce框架结构
[]3、MapReduce运行原理
[]4、Shuffle阶段和Sort阶段
[]5、任务的执行与作业调度器
[]6、自定义Hadoop调度器
[]7、 异步编程模型
[]8、YARN架构及其工作流程
MapReduce编程
[]1、WordCount案例分析
[]2、输入格式与输出格式
[]3、压缩格式与MapReduce优化
[]4、辅助类与Streaming接口
[]5、MapReduce二次排序
[]6、MapReduce中的Join算法
[]7、从MySQL读写数据
[]8、Hadoop系统调优
Hive数据仓库工具
[]1、Hive工作原理、类型及特点
[]2、Hive架构及其文件格式
[]3、Hive操作及Hive复合类型
[]4、Hive的JOIN详解
[]5、Hive优化策略
[]6、Hive内置操作符与函数
[]7、Hive用户自定义函数接口
[]8、Hive的权限控制
Hive深入解读
[]1 、安装部署Sqoop
[]2、Sqoop数据迁移
[]3、Sqoop使用案例
[]4、深入了解数据库导入
[]5、导出与事务
[]6、导出与SequenceFile
[]7、Azkaban执行工作流
Sqoop与Oozie
[]1 、安装部署Sqoop
[]2、Sqoop数据迁移
[]3、Sqoop使用案例
[]4、深入了解数据库导入
[]5、导出与事务
[]6、导出与SequenceFile
[]7、Azkaban执行工作流
Zookeeper详解
[]1、Zookeeper简介
[]2、Zookeeper的下载和部署
[]3、Zookeeper的配置与运行
[]4、Zookeeper的本地模式实例
[]5、Zookeeper的数据模型
[]6、Zookeeper命令行操作范例
[]7、storm在Zookeeper目录结构
NoSQL、HBase
[]1、HBase的特点
[]2、HBase访问接口
[]3、HBase存储结构与格式
[]4、HBase设计
[]5、关键算法和流程
[]6、HBase安装
[]7、HBase的SHELL操作
[]8、HBase集群搭建
第七阶段:Spark生态系统
Spark
[]1.什么是Spark
[]2.Spark大数据处理框架
[]3.Spark的特点与应用场景
[]4.Spark SQL原理和实践
[]5.Spark Streaming原理和实践
[]6.GraphX SparkR入门
[]7.Spark的监控和调优
Spark部署和运行
[]1.WordCount准备开发环境
[]2.MapReduce编程接口体系结构
[]3.MapReduce通信协议
[]4.导入Hadoop的JAR文件
[]5.MapReduce代码的实现
[]6.打包、部署和运行
[]7.打包成JAR文件
Spark程序开发
[]1、启动Spark Shell
[]2、加载text文件
[]3、RDD操作及其应用
[]4、RDD缓存
[]5、构建Eclipse开发环境
[]6、构建IntelliJ IDEA开发环境
[]7、创建SparkContext对象
[]8、编写编译并提交应用程序
Spark编程模型
[]1、RDD特征与依赖
[]2、集合(数组)创建RDD
[]3、存储创建RDD
[]4、RDD转换 执行 控制操作
[]5、广播变量
[]6、累加器
作业执行解析
[]1、Spark组件
[]2、RDD视图与DAG图
[]3、基于Standalone模式的Spark架构
[]4、基于YARN模式的Spark架构
[]5、作业事件流和调度分析
[]6、构建应用程序运行时环境
[]7、应用程序转换成DAG
Spark SQL与DataFrame
[]1、Spark SQL架构特性
[]2、DataFrame和RDD的区别
[]3、创建操作DataFrame
[]4、RDD转化为DataFrame
[]5、加载保存操作与Hive表
[]6、Parquet文件JSON数据集
[]7、分布式的SQL Engine
[]8、性能调优 数据类型
深入Spark Streaming
[]1、Spark Streaming工作原理
[]2、DStream编程模型
[]3、Input DStream
[]4、DStream转换 状态 输出
[]5、优化运行时间及内存使用
[]6、文件输入源
[]7、基于Receiver的输入源
[]8、输出操作
Spark MLlib与机器学习
[]1、机器学习分类级算法
[]2、Spark MLlib库
[]3、MLlib数据类型
[]4、MLlib的算法库与实例
[]5、ML库主要概念
[]6、算法库与实例
GraphX与SparkR
[]1、Spark GraphX架构
[]2、GraphX编程与常用图算法
[]3、GraphX应用场景
[]4、SparkR的工作原理
[]5、R语言与其他语言的通信
[]6、SparkR的运行与应用
[]7、R的DataFrame操作方法
[]8、SparkR的DataFrame
Scala编程开发
[]1、Scala语法基础
[]2、idea工具安装
[]3、maven工具配置
[]4、条件结构、循环、高级for循环
[]5、数组、映射、元组
[]6、类、样例类、对象、伴生对象
[]7、高阶函数与函数式编程
Scala进阶
[]1、 柯里化、闭包
[]2、模式匹配、偏函数
[]3、类型参数
[]4、协变与逆变
[]5、隐式转换、隐式参数、隐式值
[]6、Actor机制
[]7、高级项目案例
Python编程
[]1、Python编程介绍
[]2、Python的基本语法
[]3、Python开发环境搭建
[]4、Pyhton开发Spark应用程序
第八阶段:Storm生态系统
storm简介与基本知识
[]1、storm的诞生诞生与成长
[]2、storm的优势与应用
[]3、storm基本知识概念和配置
[]4、序列化与容错机制
[]5、可靠性机制—保证消息处理
[]6、storm开发环境与生产环境
[]7、storm拓扑的并行度
[]8、storm命令行客户端
Storm拓扑与组件详解
[]1、流分组和拓扑运行
[]2、拓扑的常见模式
[]3、本地模式与stormsub的对比
[]4、 使用非jvm语言操作storm
[]5、hook、组件基本接口
[]6、基本抽象类
[]7、事务接口
[]8、组件之间的相互关系
spout详解 与bolt详解
[]1、spout获取数据的方式
[]2、常用的spout
[]3、学习编写spout类
[]4、bolt概述
[]5、可靠的与不可靠的bolt
[]6、复合流与复合anchoring
[]7、 使用其他语言定义bolt
[]8、学习编写bolt类
storm安装与集群搭建
[]1、storm集群安装步骤与准备
[]2、本地模式storm配置命令
[]3、配置hosts文件、安装jdk
[]4、zookeeper集群的搭建
[]5、部署节点
[]6、storm集群的搭建
[]7、zookeeper应用案例
[]8、Hadoop高可用集群搭建
Kafka
[]1、Kafka介绍和安装
[]2、整合Flume
[]3、Kafka API
[]4、Kafka底层实现原理
[]5、Kafka的消息处理机制
[]6、数据传输的事务定义
[]7、Kafka的存储策略
Flume
[]1、Flume介绍和安装
[]2、Flume Source讲解
[]3、Flume Channel讲解
[]4、Flume Sink讲解
[]5、flume部署种类、流配置
[]6、单一代理、多代理说明
[]7、flume selector相关配置
Redis
[]1、Redis介绍和安装、配置
[]2、Redis数据类型
[]3、Redis键、字符串、哈希
[]4、Redis列表与集合
[]5、Redis事务和脚本
[]6、Redis数据备份与恢复
[]7、Redis的SHELL操作