从技术的角度解释大数据
一、HADOOP分布式存储与计算
1、HDFS,主要做分布式文件存储,文件的多备份
2,MAPREDUCE计算模型 ,主要做分布式计算,把任何复杂流程的数据处理简化为map(分) 与reduce(合),而且只需要编写 map与reduce方法(不用考虑多机器的资源协调,文件可用,任务失败重计算)
3,YARN负责分布式计算的资源协调
查询文件效率:慢(基于超大数据集)
场景:大数据存储,分析
二、HIVE 大数据中的数据仓库(数据仓库:基于数据库存储,但是是基于超大数据集)
传统数据库主要负责在线业务,实时业务,OLTP
数据仓库主要负责数据分析,比如说BI,OLAP
HIVE是基于HDFS存储,基于MAPREDUCE计算
查询文件效率:慢(基于超大数据集)
场景:数据挖掘,分析
三、HBASE大数据中的数据库,主要负责大数据的实时查询
HBASE基于HDFS存储,属于NoSQL典型,基于KEY VALUE的数据结构存储
查询效率:快(可以基于10亿-100亿数据的毫秒级返回)
场景:GIS应用开发,短地址
四、FLUME 与KAFKA
FLUME主要负责实时的数据采集,可以采集的数据源支持,基本文件,HDFS文件
KAFKA主要负责实时的数据发送与接收,属于消息队列,分布式的消息队列,超高吞吐量
场景:实时数据同步,分布式消息中心等
五、SCALA编程语言基于JAVA 开发,函数式编程语言,SPARK是基于SCALA进行开发的,可与JDK 8的函数编程比较
六、SPARK分布式计算,基于内存计算,HADOOP基于文件计算,所以效率上 SPARK理论是HADOOP的10倍以上
SPARK 包含核心包,SQL包与机器计算与学习包
场景:大数据快速分析,迭代计算,机器学习与图计算
JAVA需要理解
一、多线程加入多线程读取大文件操作,统计文件中的单词出现次数
进阶:并且考虑如果其中一个线程出现读取失败,如何重做
(原因:大数据中,只需要像编写单机程序一样,不需要考虑多线程或者容灾与高可用)
二、讲解MYSQL课程,加入简单存储过程的编写,插入100W数据,10列以上
进阶:如何基于100W数据以上进行优化
(原因:学生掌握基本优化手段,大数据中HIVE基于超大数据集(10亿-100亿以上)的查询,会进行分区与索引的优化)
三、讲解MYSQL过程中,讲解子查询与嵌套子查询,加强GROUP BY的能力
例如
Selectname,rownum from (select * ,rownum from text) t
GROUP的理解有助于在 map--*reduce阶段快速入门(HIVE)
四、基于数据库,加强ACID事务的讲解
原因:传统数据库都是基于单机事务控制,大数据中基于分布式,跨机器的事务。
分布式知识补充:(容灾知识补充与应用可用性)
1、TOMCAT SESSION共享
2、TOMCAT 负载均衡
3、配置MYSQL读写分离