大数据概况及Hadoop生态系统

大数据概况及Hadoop生态系统

什么是大数据?

  • 大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。

在这里插入图片描述
在这里插入图片描述

大数据特征

4V特征

  • Volume(大数据量):90% 的数据是过去两年产生
  • Velocity(速度快):数据增长速度快,时效性高
  • Variety(多样化):数据种类和来源多样化
    • 结构化数据、半结构化数据、非结构化数据
  • Value(价值密度低):需挖掘获取数据价值

固有特征

时效性

不可变性

分布式计算

分布式计算将较大的数据分成小的部分进行处理。

**** 传统分布式计算 新的分布式计算 - Hadoop
计算方式 将数据复制到计算节点 在不同数据节点并行计算
可处理数据量 小数据量 大数据量
CPU性能限制 受CPU限制较大 受单台设备限制小
提升计算能力 提升单台机器计算能力 扩展低成本服务器集群

Hadoop是什么?

  • Hadoop是一个开源分布式系统架构

    • 分布式文件系统HDFS——解决大数据存储
    • 分布式计算框架MapReduce——解决大数据计算
    • 分布式资源管理系统YARN
  • 处理海量数据的架构首选

  • 非常快得完成大数据计算任务

  • 已发展成为一个Hadoop生态圈

在这里插入图片描述

Hadoop发展及版本

  • Hadoop起源于搜索引擎Apache Nutch

    • 创始人:Doug Cutting
    • 2004年 - 最初版本实施
    • 2008年 - 成为Apache顶级项目
  • Hadoop发行版本

    • 社区版:Apache Hadoop
    • Cloudera发行版:CDH
    • Hortonworks发行版:HDP

为什么使用Hadoop?

  • 高扩展性,可伸缩
  • 高可靠性
    • 多副本机制,容错高
  • 低成本
  • 无共享架构
  • 灵活,可存储任意类型数据
  • 开源,社区活跃

Hadoop vs. RDBMS

Hadoop与关系型数据库对比

**** RDBMS Hadoop
格式 写数据时要求 读数据时要求
速度 读数据速度快 写数据速度快
数据监管 标准结构化 任意结构数据
数据处理 有限的处理能力 强大的处理能力
数据类型 结构化数据 结构化、半结构化、非结构化
应用场景 交互式OLAP分析ACID事务处理企业业务系统 处理非结构化数据海量数据存储计算

Hadoop生态圈

  • Hadoop核心
    HDFS、MapReduce、YARN、Common 公共包、core

  • 数据查询分析
    Hive、Pig、Impala、Presto

  • 协调管理

    HCatalog、Zookeeper、Ambari

  • 数据迁移

    Flume(支持实时)、Sqoop

Spark、NoSQK、机器学习、任务调度等

在这里插入图片描述

Zookeeper

  • 是一个分布式应用程序协调服务
    • 解决分布式集群中应用系统的一致性问题
  • 提供的功能
    • 配置管理、命名服务、分布式同步、队列管理、集群管理等
  • 特性
    • 全局数据一致
    • 可靠性、顺序性、实时性
    • 数据更新原子性
  • Zookeeper集群
    • 角色:Leader、Follower、Observer

Hadoop架构

  • HDFS(Hadoop Distributed File System)
    • 分布式文件系统,解决分布式存储
  • MapReduce
    • 分布式计算框架
  • YARN
    • 分布式资源管理系统
    • 在Hadoop 2.x中引入
  • Common
    • 支持所有其他模块的公共工具程序

在这里插入图片描述

HDFS

HDFS特点

  • HDFS优点
    • 支持处理超大文件
    • 可运行在廉价机器上
    • 高容错性
    • 流式文件写入
  • HDFS缺点
    • 不适合低延时数据访问场景
    • 不适合小文件存取场景
    • 不适合并发写入,文件随机修改场景

HDFS CLI (命令行)

  • 基本格式
    hdfs dfs -cmd
    hadoop fs -cmd(已过时)
  • 命令和Linux相似
    -ls
    -mkdir
    -put
    -rm
    -help

hdfs dfsadmin

dfsadmin命令用于管理HDFS集群

命令 描述
hdfs dfsadmin -report 返回集群的状态信息
hdfs dfsadmin -safemode enter/leave 进入和离开安全模式
hdfs dfsadmin -saveNamespace 保存集群的名字空间
hdfs dfsadmin -rollEdits 回滚编辑日志
hdfs dfsadmin -refreshNodes 刷新节点
hdfs dfsadmin -getDatanodeInfo node1:8010 获取数据节点信息
hdfs dfsadmin -setQuota 10 /h****dfs 设置文件目录配额

HDFS角色

  • Client:客户端
  • NameNode (NN):元数据节点
    • 管理文件系统的Namespace/元数据
    • 一个HDFS集群只有一个Active的NN
  • DataNode (DN):数据节点
    • 数据存储节点,保存和检索Block
    • 一个集群可以有多个数据节点
  • Secondary NameNode (SNN):从元数据节点
    • 合并NameNode的edit logs到fsimage文件中
    • 辅助NN将内存中元数据信息持久化

在这里插入图片描述

HDFS架构

在这里插入图片描述

HDFS副本机制

  • Block:数据块
    • HDFS最基本的存储单元
    • 默认块大小:128M(2.x)
  • 副本机制
    • 作用:避免数据丢失
    • 副本数默认为3
    • 存放机制:
      • 一个在本地机架节点
      • 一个在同一个机架不同节点
      • 一个在不同机架的节点

在这里插入图片描述

HDFS高可用(High Availability)

  • 在1.x版本中
    • 存在Namenode单点问题
  • 在2.x版本中
    • 解决:HDFS Federation方式,共享DN资源
    • Active Namenode
      • 对外提供服务
  • Standby Namenode
    • Active故障时可切换为Active

HDFS读文件

在这里插入图片描述

HDFS写文件

在这里插入图片描述

HDFS文件格式

  • HDFS支持以不同格式存储所有类型的文件
    • 文本、二进制
    • 未压缩、压缩
  • 为了最佳的Map-Reduce处理,文件需可分割
    • SequenceFile
    • Avro File
    • RCFile&ORCFile
    • Parquet File

使用Java实现HDFS文件读写

《用java操作hdfs》

猜你喜欢

转载自blog.csdn.net/zmzdmx/article/details/108499418