Big data is becoming increasingly popular. Many people want to learn big data, but they don’t know how to start. The author summed up the knowledge system that should be mastered in learning big data today. Let’s take a look.

Java basic

First of all, why do we have to learn Java to learn big data? Because Java is the most widely used programming language at present, it has many features that are particularly suitable for the development of big data applications.

• Java takes all the advantages of the C++ language and does away with the confusing concepts of multiple inheritance and Pointers, making it both powerful and easy to use. The Java language, as a representative of static object-oriented programming languages, is a wonderful implementation of object-oriented theory, in short, you don’t have to cook dinner, just go to a restaurant, that is object-oriented (metaphor is not enough).

• Java cross-platform application ability (mainly the Java virtual machine cross-platform, Java itself is not cross-platform), easier to use than C, C++, easier to get started. At the same time, it also has the characteristics of simplicity, object-oriented, distributed, robustness, security, platform independence and portability, multi-threading, dynamic and so on.

• Most importantly, Many Hadoop and other big data processing technologies use Java, such as Apache’s Java-based HBase and Accumulo, as well as ElasticSearchas. Therefore, one of the first conditions for learning Hadoop is to master Java language programming.

Web basic

Nowadays, the pages of major websites are basically completed using Web front-end technology. The unique characteristics of Web front-end technology can make users get a better experience. In addition, there are small programs such as links to databases, and micro channel small programs, which are completed by Web front-end technology. With the continuous updating of front-end technology, Web front-end technology has become a hot topic for enterprises and developers.

Spring

The data access module in the Spring Framework provides good support for JDBC and ORM. With the rise of NoSQL and BigData, there are more and more new technologies. Bigdata is a “big” project designed to make it easier for Spring developers to use new technologies such as non-relational databases and the MapReduce framework — it consists of a series of small projects that support different technologies such as Spring Data JPA, Sprng Data, Hadoop, Spring Data MongoDB, Spring Data Redis, etc.

Through Spring Data. Spring provides a relatively consistent way for developers to access data in different types of data stores. In addition to the new technology, Spring Data provides a lot of additional support for traditional relational databases that developers can better leverage, such as support for Oracle RAC.

SpringWebMVC

Sub-projects under Spring: Spring Web MVC is a lightweight Web framework based on Java that implements the request-driven type of Web MVC design pattern, which uses the idea of MVC architecture pattern to decouple the responsibilities of the Web layer. Request-driven refers to the use of request-response model. The purpose of the framework is to help simplify development. Spring Web MVC is also meant to simplify our daily Web development.

SpringWeb MVC is also an implementation of the service-to-worker pattern, but it can be optimized. The front-end controller is DispatcherServlet; The application controller is divided into Handler Mapping for processor management and ViewResolver for view management. Page Controller/actions/processor as the Controller interface (contains only ModelAndViewhandleRequest (request, response) method) the implementation of the (also can be any POJO class);

MyBatis

MyBatis is a Java persistence framework that associates objects with stored procedures or SQL statements through XML descriptors or annotations.

Unlike other object-relational mapping frameworks, MyBatis does not associate Java objects with database tables, but Java methods with SQL statements. MyBatis allows users to take full advantage of the capabilities of a database, such as stored procedures, views, complex queries, and proprietary features of a database.

MyBatis is a good choice if you want to work with legacy databases, non-standard databases, or have complete control over SQL execution. Compared to JDBC, MyBatis simplifies the code: SQL statements can be executed in a single line of code. MyBatis provides a mapping engine that declaratively maps SQL statement execution results to object trees.

SQL statements can be generated dynamically by using a built-in XML-like expression language, or by using plug-ins integrated with Apache Velocity. MyBatis is integrated with the Spring Framework and GoogleGuice, which frees developers from dependency issues.

MyBatis supports declarative data Caching.

When an SQL statement is marked “cacheable,” all the data fetched from the database when it is first executed is stored in a cache, and the results are read from the cache when the statement is executed later, rather than hitting the database again.

MyBatis provides a default cache implementation based on Java HashMap and a default connector for connecting to OSCache, Ehcache, Hazelcast, and Memcached. MyBatis also provides apis for other caching implementations.