大数据学习笔记(基本概念)

什么是大数据:

大数据 :大数据是一个概念也是一门技术,是在以 Hadoop 为代表的 大数据平台框架 上进行各种数据分析的技术。

大数据包括了以Hadoop和Spark为代表基础大数据框架

还包括了实时数据处理,离线数据处理;数据分析,数据挖掘和用机器算法进行预测分析等技术。

Hadoop

  • Hadoop 是一个开源的大数据框架
  • Hadoop 是一个分布式计算的解决方案
  • Hadoop = HDFS(分布式文件系统) + MapReDuce(分布式计算)

开发内容

  • 利用 Shell 命令及 Python 程序操作 HDFS
  • 开发 MapRuduce 模型的程序

生态圈的内容

Hive 是一个数据仓库,提供大量结构化数据的检索功能

HBase 是一个列式数据库

Spark 是一个基于内存的分布式计算框架

Hadoop 核心:

HDFS 分布式文件系统:储存是大数据技术的基础

HDFS

HDFS 数据库按块存储,屏蔽了文件的概念。

HDFS 的优点

(1)适合大文件存储,支持 TB、PB 级的数据存储,并有副本策略;

(2)可以构建在廉价的机器上,并有一定的容错和恢复机制;

注:Hadoop2 的容错机制,Hadoop 可以配置成 HA(高可用集群),包含两个 NameNode 节点,其中一个处于“active”状态(主节点),另一个处于“standby”状态(备用节点)

HDFS 的缺点

  • 不适合大量小文件的存储
  • 不适合并发写入,不支持文件随机修改
  • 不支持随机读等低延时的访问方式

常用 HDFS Shell 命令:

1、类 Linux 系统:ls、cat、mkdir、rm、chmod、chown 等

2、HDFS 文件交互:copyFromLocal(从本地系统->HDFS 系统)、copyToLocal(从 HDFS 系统->本地系统)、get(下载文件)、put(上传文件)

HBase(Hadoop Database)

高可靠,高性能,面向列,可伸缩,实时读写的分布式数据库。利用 HDFS 作为其文件存储系统,支持 MR 程序读取数据。存储非结构化和半结构化数据。

  • 是一个分布式 NoSQL 列存储数据库;
  • 利用 HDFS 作为其文件存储系统,支持 MR 程序读取数据;
  • 存储非结构化和半结构化数据;
  • 还可利用 Zookeeper 作为协同服务
  • hbase 可以存小文件,结构,非结构数据,hdfs 适合储存大文件
  • RowKey:数据唯一标识,按字典排序,主键
  • ColumnFamily:列族,多个列的集合,最多不要超过 3 个

MapReduce

Spark 简介:

1、基于内存计算的大数据并行计算框架

2、Spark 是 Map Reduce 的替代方案,兼容 HDFS,HIVE 等数据源

Spark 优势

基于内存计算的分布式计算框架

抽象出分布式内存存储数据结构 弹性分布式数据集 RDD

基于事件驱动,通过线程池复用线程提高性能

Map Reduce 编程模型:

输入一个大文件,通过 Split 之后,将其分为多个分片;每个文件分片有单独的机器去处理,这就是 Map 方法;将各个机器计算的结果进行汇总并得到最终的结果,这就是 Reduce 方法。

核心思想:分而治之,map(遍历处理) + Reduce(聚合)

  • 输入一个大文件,通过 Split 之后,将其分为多个分片
  • 每个文件分片由单独的机器去处理,这就是 Map 方法
  • 将各个机器计算的结果进行汇总并得到最终的结果,这就是 Reduce 方法