大数据: 就是对海量数据进行分析处理,得到一些有价值的信息,然后帮助企业做出判断和决策.

大数据入门必看 大数据扫盲第一章-起源(1)

基本的处理流程:

​ 1:获取数据

​ 2:处理数据

​ 3:展示结果

对于海量数据的场景, Lucene 框 架面 对于 Google 同样的困难, 存 储海量数据困难,检 索 海量速度慢 。

2005 年 Hadoop 作为 Lucene 的子项目 Nutch 的一部分正式引入 Apache 基金会。

Hadoop的原理主要来源于谷歌发表的论文——于2003年发表的Google File System 和 2004年发表的 MapReduce

Hadoop、MapReduce、Hive、HBase、YARN、Spark……初搞大数据的,面对一堆名词,犹如走进森林,弄得焦头烂额……别说深入底层架构原理,就连他们之间的区别联系,有时候,都搞迷糊……

什么是Hadoop?

Hadoop 是一个开源编程框架,可在分布式计算环境中处理大型数据集,通过Hadoop我们可以轻松的实现海量数据的分布式存储和分布式计算。

它可以轻松的部署在数以千计的普通计算机上,而且Hadoop集群的规模也可以方便的扩展。

Hadoop最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS的上一层是MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。

Hadoop分布式计算平台,最核心的是?

提供海量数据存储的HDFS,

与提供海量数据计算的MapReduce,

以及数据仓库工具Hive

分布式数据库Hbase。

Hadoop三大组件:
  1. 分布式文件系统:HDFS —— 实现将文件分布式存储在很多的服务器上
  2. 分布式运算编程框架:MapReduce——实现多台机器的分布式并行运算
  3. 分布式资源调度平台:YARN —— 帮用户调度大量的mapreduce程序,并合理分配运算资源

Hadoop MapReduce

MapReduce 将计算过程分为两个阶段: Map 和 Reduce

(1 ) Map 阶段并行处理输入数据

(2 ) Reduce 阶段对 Map 结果进行汇总

那什么是hive呢?

hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,可以存储、查询和分析存储在Hadoop中的大规模数据的机制。

hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。

hive与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML以及常见的聚合函数、连接查询、条件查询。

hive提供了很多具有进行数据提取转化加载,用来存储、查询和分析存储在Hadoop中的大规模数据集,并允许用户自定义函数插件,包括支持UDF(User-Defined Function)、UDAF(User-Defnes AggregateFunction)和UDTF(User-Defined Table-Generating Function),实现对map和reduce函数的定制,为数据操作提供了良好的伸缩性和可扩展性

那什么是hbase呢?

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,是一个面向列的数据库,在表中它由行排序。表模式定义只能列族,也就是键值对。一个表有多个列族,以及每一个列族可以有任意数量的列。后续列的值连续存储在磁盘上。表中的每个单元格值都具有时间戳

大文件怎么存储?

为了保存大文件, 需要把文件放在多个机器上

文件要分块 block(128M)

不同块放在不同的地方(HDFS 节点)

同时为了对外提供统一的访问, 让外部可以像是访问本机一样访问分布式文件系统

有一个统一的 HDFS Master,它保存着整个系统的文件信息,所有的文件元数据的修改都是从 Master 开始

推荐系统使用:

比如购买一个东西,打开购物网站首页,购买一个东西,这个购买行为会被记录下来,通过Nginx负载均衡打入到日志收集中,这种用户行为数据通常是用文件形式存储的,然后Flume进行日志收集

采集完之后,给Kafka 进行一个消息的缓冲,缓冲后,由于我们推荐系统具有实时性,所以走 Spark Streaming ,或 Flink进行实时计算,(用户是想购买呢,还是什么行为,以及下次给他推荐什么样的商品能够促进他的消费),将计算结果返回到后台,这个结果你可以用数据库或者是分析结果文件的形式存储,然后再被推荐业务的后台读走数据,最终反馈到前台页面展示出来!

,