第三课记录 大数据学习路线
来源:互联网 发布:mysql中syntax error 编辑:程序博客网 时间:2024/05/28 18:43
一、Java的动态代理对象
1、为什么需要学习Java的动态代理对象举例:买火车票
个人 ----> 携程 Elong(代理对象) ---> 火车票(火车站)
2、代理对象:包装设计模式 ---> 在不改变源代码的情况下,增强原对象的功能
需求:在不改变源代码的情况下,重写method1 ----> 核心:Java:Proxy
查看Hadoop的源码:
T proxy = (T) Proxy.newProxyInstance(
failoverProxyProvider.getInterface().getClassLoader(),
new Class[] { xface }, dummyHandler);
应用场景:数据库的连接池中使用动态代理对象
问题:通过连接池返回的链接是真正的Connection吗?
A) TestMain.java类
package demo;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;public class TestMain {public static void main(String[] args) {//创建一个真正的对象final MyBusiness obj = new MyBusinessImpl();////调用//obj.method1();//obj.method2();/* * public static Object Proxy.newProxyInstance(ClassLoader loader, 类加载器(原对象的类加载器) Class<?>[] interfaces, 原对象实现的接口 InvocationHandler(接口) h) 如何处理客户端的一次调用 throws IllegalArgumentException *///生成一个代理对象MyBusiness proxy = (MyBusiness) Proxy.newProxyInstance(TestMain.class.getClassLoader(), obj.getClass().getInterfaces(), new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {//需求:在不改变源代码的情况下,重写method1if(method.getName().equals("method1")){//重写System.out.println("********** 在代理对象中,重写了method1 *************");return null;}else{//其他方法,直接调用真正的对象return method.invoke(obj, args);}}});//通过代理对象调用真正的对象proxy.method1();proxy.method2();}}
B) MyBusiness.java 接口
package demo;public interface MyBusiness {//定义方法public void method1();public void method2();}
C) MyBusinessImpl.java实现类
package demo;public class MyBusinessImpl implements MyBusiness {@Overridepublic void method1() {System.out.println("*************** method1 *************");}@Overridepublic void method2() {System.out.println("*************** method2 *************");}}
二、课程大纲
(1) 基础:Linux基本操作、Java(Java SE)的基础(2)怎么学?学什么?
(*)重要:运行机制和原理 ---> 画图
(*)搭建环境: Hadoop比较麻烦
(*)操作:命令行、Java API、Web Console
Hadoop部分(60个课时):
(一)、Hadoop的起源与背景知识
1、什么是大数据?
2、传统方式如何处理大数据? ---> 数据仓库(就是数据库:Oracle、MySQL、****)
3、OLTP和OLAP
4、(重要)Google的三篇论文:Hadoop看成一个山寨版的Google
(*)GFS:google file system ---> HDFS: hadoop distributed file system
(*)MapReduce ----> 计算模型MapReduce(Java程序)
(*)BigTable ----> HBase (NoSQL数据库)
(二)、实验环境: Linux、JDK
安装介质
(三)、Apache Hadoop的体系结构: 主从结构
1、HDFS
2、Yarn:运行MapReduce的平台
3、HBase
(四)、Hadoop 2.X的安装与配置
三种模式
1、本地模式
2、伪分布模式
3、全分布模式(至少需要3台机器)
(五)、Hadoop应用案例分析
(六)、HDFS文件系统: 数据的存储
1、操作:命令行、Java API、Web Console
2、高级功能:回收站、快照、配额、安全模式
3、底层原理:动态代理对象、RPC(remote procedure call)
(七)、MapReduce: 数据的计算-----> 适合离线计算
1、案例:WordCount及运行过程(数据处理的流程)---> 画图
2、排序、分区、合并
3、MR核心:Shuffle(洗牌)
(八)、Hive: 数据仓库,支持JDBC ---> 数据分析引擎
1、体系结构和安装配置
2、Hive查询:类似SQL:select
3、客户端:JDBC、Thrift Client
4、数据模型:内部表、外部表、分区表、桶表、视图(create view)
5、自定义函数:UDF(Java程序)
(九)、Pig ---> 数据分析引擎
(十)、HBase
1、常见的NoSQL数据库和特点
2、HBase的体系结构和表结构
3、搭建环境:(*)本地模式 (*)伪分布模式 (*)全分布模式
4、操作:命令行:HBase shell
Java API
Web Console
5、HBase的过滤器:相当于where条件
6、HBase上的MapReduce
7、HBase的HA(high avaibility 高可用性)
(十一)、Sqoop: 数据采集,采集关系型数据库中的数据
(十二)、Flume: 数据采集,日志,或者实时数据
(十三)、HUE: 基于Web的管理工具
实现Hadoop的HA和联盟。集群的两大特性:1、负载均衡 2、失败迁移
(十四)、ZooKeeper
(十五)、Hadoop的集群和HA
==================================================================================
(十六)、Storm: 实时计算:类似自来水厂-----> 适合实时计算
Spark部分:
1、Scala编程语言
2、Spark Core
3、Spark SQL
4、Spark Streaming
阅读全文
0 0
- 第三课记录 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- 大数据学习路线
- js中easyUI 中的下拉框的值获取方式
- javaweb学习总结(四)——Http协议
- 将CBitmap分割成两个CBitmap
- LeetCode笔记:176. Second Highest Salary
- 各类排序算法比较和应用场景
- 第三课记录 大数据学习路线
- pyinstaller安装与使用
- spring boot的使用以及环境配置
- Android运行时android.content.res.Resources$NotFoundException: Resource ID #0x7f0f00b3 type #0x12 错误
- 设置Dos窗口标题
- [Zigbee]Z-stack Zed 失去节点之后的流程
- QT的UDP通信编程实例
- invalid bit code signature
- 懒惰的苏珊 UVa1620