大数据的知识体系

275 阅读4分钟

大数据现在愈演愈烈,很多人都想学习大数据,但是又不知道如何下手,作者今天就总结了学大数据应掌握的知识体系。下面我们就来看看吧。

Java basic

首先第一个问题,学习大数据为什么一定要学习Java呢?因为Java是目前使用最为广泛的编程语言,它具有的众多特性,特别适合作为大数据应用的开发语言。

• Java吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承(容易造成混乱)、指针等概念,所以Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,简而言之就是你吃饭不用自己做了,去饭馆就好了嘛,这就是面向对象(比喻到不到位)。

• Java的跨平台应用能力(主要是这Java虚拟机跨平台,Java 本身不是跨平台的),比C、C++更易用,更容易上手。同时还具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。

• 最重要的是,Hadoop以及其他大数据处理技术很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及ElasticSearchas,因此学习Hadoop的一个首要条件,就是掌握Java语言编程。

Web basic

现如今各大网站的页面基本上都是使用Web前端技术完成,Web前端技术独有的特性能够让用户得到更好的体验,除此之外,还有与数据库的链接之类的小程序,微信小程序,都是靠Web前端技术来完成的。随着前端技术不断更新,Web前端技术已经成为了现在企业和开发人员热议的话题。

Spring

Spring Framework中的数据访问模块对JDBC及ORM提供了很好的支持,随着NoSQL和BigData的兴起,出现了越来越多的新技术,比如非关系型数据库、MapReduce框架,bigdata正是为了让Spring开发者能更方便地使用这些新技术而诞生的“大”项目——它由一系列小的项目组成,分别为不同的技术提供支持,例如Spring Data JPA、Sprng Data,Hadoop、Spring Data MongoDB、Spring Data Redis等等。

通过Spring Data。开发者可以利用spring提供的相对一致的方式来访问位于不同类型的数据存储中的数据。 除了新技术,Spring Data还为传统的关系型数据库提供了很多额外的支持,让开发者能够更好地利用关系型数据库,比如对Oracle RAC的支持。

SpringWebMVC

Spring下的子项目:Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。

SpringWeb MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(ViewResolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndViewhandleRequest(request, response) 方法)的实现(也可以是任何的POJO类);

MyBatis

MyBatis是一个Java持久性框架,它通过xml描述符或注解把对象与存储过程或sql语句关联起来。

与其他的对象关系映射框架不同,MyBatis并没有将Java对象与数据库表关联起来,而是将Java方法与SQL语句关联。MyBatis允许用户充分利用数据库的各种功能,例如存储过程、视图、各种复杂的查询以及某数据库的专有特性。

如果要对遗留数据库、不规范的数据库进行操作,或者要完全控制SQL的执行,MyBatis是一个不错的选择。 与JDBC相比,MyBatis简化了相关代码:SQL语句在一行代码中就能执行。MyBatis提供了一个映射引擎,声明式的把SQL语句执行结果与对象树映射起来。

通过使用一种内建的类XML表达式语言,或者使用Apache Velocity集成的插件,SQL语句可以被动态的生成。 MyBatis与Spring Framework和GoogleGuice集成,这使开发者免于依赖性问题。

MyBatis支持声明式数据缓存(declarative data caching)。

当一条SQL语句被标记为“可缓存”后,首次执行它时从数据库获取的所有数据会被存储在一段高速缓存中,今后执行这条语句时就会从高速缓存中读取结果,而不是再次命中数据库。

MyBatis提供了基于 Java HashMap 的默认缓存实现,以及用于与OSCache、Ehcache、Hazelcast和Memcached连接的默认连接器。MyBatis还提供API供其他缓存实现使用。