0、前言
为了完成今年大数据的转型计划,以及学业和工作中的关于大数据知识的需求,因此,从今天开始将会持续不断的逼迫自己对大数据知识的学习,由于之前断断续续的学了,但是因为时间久了就忘了,现在打算重新拾起来,而检验这个学习成果就是将文章写出来,我的大数据学习之路正式踏上历程!
一、大数据概述
首先,关于大数据的定义,我比较喜欢这段话来解析:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合。马云在演讲中提到过,未来的时代不是IT时代,而是DT时代。也就是Data Technology(数据科技)的缩写,而它的特点就是4V特征,造成的结果就是数据虽多,但是具有分析价值的数据却很少。
而大数据可以干什么呢? 典型的应用就是报表,指标监控,指标预警等。当然这说的可能比较专业,就比如疫情期间大家出行的行程码也是大数据在通信行业中的使用,还有话费账单的查询,几亿人的数据清单底层采用的是Hbase来实现的。而大数据在电商中的应用就是淘宝、京东这种,他们可以做到几亿用户打开淘宝,每个人看到的界面不是一摸一样的,这就是他们推荐系统。当然,一般的大数据应用的思路分为四个阶段:抓取数据、数据处理、数据分析、得到结论。
二、大数据的发展
学习技术,需要了解这个技术的来龙去脉,今天我们说的大数据技术,起源于Goolge在2004年前后发表的三篇论文,分别是分布式文件系统GFS、大数据分布式计算框架MapReduce和NoSQL数据系统BigTable。当时的天才程序员Doug Cutting阅读了三篇论文后,根据原理在2006年实现了大数据技术Hadoop。Hadoop发布后,在2008年正式称为Apache的顶级项目,之后Facebook发布了Hive,通过SQL来处理MapReduce的计算程序,在2011年的时候,大数据生态体系逐渐形成,2012年yarn从当初的MapReduce中分离出来,成为独立的项目运营。而2012年,Spark研发出来,逐步替代了MapReduce的地位,而到现在,大数据在外面的生活中也应用的越来越广泛了。 大数据分为离线计算和实时计算,像MapReduce、Spark这类计算框架处理的业务场景被称为批处理计算,通常针对以“天”为单位产生的数据进行一次计算,这中间计算的时间可能几十分钟甚至更长,这些数据也就是历史数据。而实时数据就是实时的产生大量数据并对他们进行实时计算,这便用到了storm、Flink等流式处理框架来满足这类应用。
三、关于大数据生态技术
Hadoop这个词是大数据技术的标准,这个名字也泛指一些相关的项目,这些项目都使用这个基础平台进行分布式计算和海量数据处理。
1)Sqoop:Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySql)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
2)Flume:Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;
3)Kafka:Kafka是一种高吞吐量的分布式发布订阅消息系统;
4)Storm:Storm用于“连续计算”,对数据流做连续查询,在计算时就将结果以流的形式输出给用户。
5)Spark:Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。
6)Flink:Flink是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。
7)Oozie:Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。
8)Hbase:HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。
9)Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
10)ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。