大数据相关技术

大数据技术涉及到一些基本概念

Hadoop是什么

Hadoop=HDFS(分布式文件系统)+MapReduce(分布式计算)

HDFS

数据块

数据块是抽象块而非整个文件作为存储单元
默认是64M, 一般设置128M,备份 X3

NameNode

  • 管理文件系统的命名空间,存放文件元数据
  • 维护着文件系统的所有文件和目录,文件与数据块的映射
  • 记录每个文件中各个块所在数据节点的信息

DataNode

  • 存储并检索数据块
  • 向 NameNode更新所存储的列表

缺点

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

操作

  • shell 操作 通过hadoop fs -option
  • python 操作 通过hdfs3这个包来和 hdfs 交互

MapReduce

yarn

ResourceManager

  • 分配和调度资源
  • 启动并监控 ApplicationMaster
  • 监控NodeManager

    NodeManager

  • 管理单个节点的资源
  • 处理来自ResourceManager的命令
  • 处理来自 ApplicationMaster 的命令

    ApplicationMaster

  • 为 MapReduce类型的程序申请资源,并分配给内部任务

  • 负责数据的切分
  • 监控任务的执行和容错

编程模型

Hadoop 生态

HBase( Hadoop database)

HBase 是一个分布式数据库

  • 利用HDFS 作为文件存储系统,支持MR程序读取数据
  • 存储非结构化和半结构化数据

Spark

  • Spark是 基于内存计算 的大数据并行计算框架
  • Spark 是MapReduce的替代方案,兼容 HDFS,HIVE 等数据源

Hive

Hive 是SQL 解析引擎,他将SQL 语句转移成MR 操作,然后在 hadoop 上执行
定义了一种类 SQL 语言:HQL(类似但不是完全相同)

Hive 体系架构

Spark 外部数据

离线数据处理架构

推荐使用版本

http://archive.cloudera.com/cdh5/cdh/5/o

参考文档

Hadoop文档

Hive

Spark 第三方包