一、什么是大数据?

顾名思义,就是大量的数据。数据量太大,我们就无法在一定时间内用常规软件去处理这些数据,因此就有了大数据技术。

二、Hadoop概述

Hadoop框架包含HDFS、Yarn、MapReduce三个核心组件。

1)HDFS

大量的数据在一台计算机上存不下,就需要用很多计算机来存。多台计算机的存储容量可以存储大数据了,但是多台计算机却不方便管理大数据了,于是就有了Hadoop的HDFS(Hadoop Distributed File System)分布式文件系统。在每台计算机上都装上Hadoop便构成了Hadoop集群。

2)MapReduce

大数据是在hdfs上分布式存储的,如果要处理这些在hdfs上的数据,就需要用到一个分布式的计算框架就是MapReduce。

3)Yarn

Yet Another Resource Negotiator(另一种资源协调者),Yarn是Hadoop上作业调度和集群资源管理的一个框架。当我们编写的MapReduce应用运行在Hadoop上集群时,需要占用多少各cpu的core呢?需要占用多少内存?这些统一的都是由yarn来完成的。可以将Yarn看作是一个操作系统,而MapReduce开发的应用看作计算机程序。MapReduce开发的应用程序运行在Yarn之上。

三、Hadoop生态系统概述

通常我们说的Hadoop,并不单是指Hadoop这个开源框架,而是指Hadoop生态系统。

众多开源框架一起组成了Hadoop的生态系统

1)Flume

HDFS上可以存储大数据,那这些数据都是从哪里来的呢?来源可以是日志文件、关系型数据库、文档等各种来源。

Flume是一个用于高效收集、聚合和移动大量日志数据的分布式、可靠的、可用的服务。Flume可以监控日志文件,将日志文件内容上传到HDFS上存储。

2)Sqoop

HDFS上的数据可以来源于关系型数据库(Oracle、MySQL等),Sqoop就是一个在关系型数据库和HDFS之间导入和导出数据的框架。

3)Hive

若有一个文件里面的数据是大量结构化的数据,我们要对这个文件中的数据进行查询、统计分析等操作。我们可以将这个文件上传到HDFS上,然后编写MR程序进行统计分析,编写mr程序很繁琐。

对于结构化的数据,有没有更方便的方式来统计分析呢?使用Hive就能方便我们进行统计分析。

Hive将结构化的数据文件映射为一张表,提供类SQL查询功能。对熟悉sql的人,就可以直接上手进行大数据大统计分析。

Hive是一个基于HDFS的数据仓库,由FaceBook开源用于解决海量结构化日志的数据统计。

Hive表中的数据都是存放在hdfs上的,我们可以将hive看作是hdfs的一个客户端。

在Hive上运行的sql,实际上将sql转换成了mapreduce并运行在yarn之上。

4)HBase

结构化数据在关系型数据库里存储,但大数据时代随着数据日益增多,在关系型数据库中存储不下了。就需要利用大数据技术进行存储。

HBase就是一个基于HDFS的分布式的面向列的数据库,我们也可以将HBase看作是HDFS的一个客户端。

HBase解决了什么问题?(1)海量数据的存储问题  (单表可存上百亿行X上百万列的数据)  (2)准实时的查询