大数据概况及Hadoop生态系统

一.大数据概况

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

2.大数据的特征

  • 4V+1O特征
    Volume(大数据量):90% 的数据是过去两年产生
    Velocity(速度快):处理速度,数据增长速度快,时效性高
    Variety(多样化):数据种类和来源多样化(结构化数据、半结构化数据、非结构化数据)
    Value(价值密度低):需挖掘获取数据价值
    Online(数据在线):数据时永远在线的,区别于传统数据最大的特点
  • 固有特征
    Time-base:时效性
    Immutable:不可变性(同一时间,数据是不可变的)

3.传统处理模式数据传输(通过提升服务器本身[CPU]的能力来提升处理能力)

  • 处理前
    Client–request–>Web Server–>Application Server–>Db Server
  • 处理完后
    Client<–Web Server<–Application Server<–Db Server(响应数据量不会太大)
    4.新的分布式计算(云平台:传输快)
    分布式数据存储
    分布式计算
    分开存储计算

5.谷歌三大论文(数据库)
2003 -->GFS(Google 文件系统)–>数据分布式存储
2004 -->Google MapReduce–>分布式计算(处理)
2005–>BigTable–>分布式数据存储系统

6.分布式计算(分布式计算将较大的数据分成小的部分进行处理)

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

注:
传统分布式计算读取有优势,最差的是一行一行的读取,而hadoop会将所有节点的block块全部遍历一遍

二、Hadoop

1.Hadoop是什么?

(1)Hadoop是一个开源分布式系统架构

  • 分布式文件系统HDFS——解决大数据存储
  • 分布式计算框架MapReduce——解决大数据计算
  • 分布式资源管理系统YARN

(2)处理海量数据的架构首选

(3)非常快得完成大数据计算任务

(4)已发展成为一个Hadoop生态圈

(5) 容错处理(安全性)

2.Hadoop起源
Hadoop起源于搜索引擎Apache Nutch
创始人:Doug Cutting

3.使用Hadoop优势

  • 高扩展性,可伸缩:scalable:通过增加节点提升存储空间,存储处理
  • 高可靠性(多副本机制,容错高): Faulit Tolerant 容错处理()
  • 低成本
  • 无共享架构:Cost Effective(share nothing 每台节点不沟通不共享)
  • 灵活,可存储任意类型数据 Flexible schema(格式)
  • 开源,社区活跃

4.Hadoop与关系型数据库对比

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

5.Hadoop生态圈

大数据概况及Hadoop生态系统_第1张图片

  • Core HadoopHadoop核心
    *HDFS(存储)、MapReduce1.0(计算(处理)框架、应用程序)、YARN(资源管理)

  • query数据查询分析
    *Hive(基于mysql/其他数据库语言的MR程序,可用Spark,Tez)、Pig(脚本语言,过时被spark代替)、Impala(和Hive一样,但性能不行)、Presto(性能更好,局限性(数据量受限))

  • Hive下
    *Spark、Tez (比MR更强大,但应用面窄)、MapReduce2.0

  • Coordination and Management协调管理
    HCatalog(元数据管理(关于数据表的信息,数据质量的信息等))、Zookeeper(软件,解决集群管理)、Ambari(环境软件,可视化hadoop系统管理平台)

  • Data piping数据迁移
    Sqoop(RGB和hadoop互传)、Flume(数据传输实时数据为主,如日志分析处理)

  • Machine learning 机器学习库
    Mahout(被spark代替)

  • NoSQL Datebase
    Hbase(不写sql语句,非关系型(无格式)、列存储),Oozie(任务定时,定序系统管理)

  • 支持sql
    Impala、Presto、Hive、Spark、Sqoop

6.Zookeeper

(1)是一个分布式应用程序协调服务,解决分布式集群中应用系统的一致性问题

(2)提供的功能:配置管理、命名服务、分布式同步、队列管理、集群管理等

(3)特性:

  • 全局数据一致
  • 可靠性、顺序性、实时性
  • 数据更新原子性

(4)Zookeeper集群

  • 角色:Leader、Follower、Observer

*7.Hadoop架构

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

hadoop1.0 HDFS+MapReduce(应用负责资源管理项目)
hadoop2.0 HDFS+YARN(分出资源管理)+(MapReduce+Other)[应用类型]
hadoop3.0 性能改进、增加Erasure code(纠删码保证数据的安全、高可靠性)

  • 增强前:默认每个block块有3个备份;自动修复,备份; 确保在block块受损时动态增加备份
  • 增强后:每个block块有1个备份,如果一个block块和其备份丢失,则通过纠错码进行计算初丢失的数据;

三.HDFS(分布式存储文件系统)

1.HDFS角色
(1)Client:客户端(Edge Node边节点是在集群外面的节点,不允许直接读取)---->负责数据存储、读取
(2)NameNode (NN):元数据节点---->存储到内存中

  • 管理文件系统的Namespace(目录,块)/元数据
  • 一个HDFS集群只有一个Active的NN
  • Standby Node:高可用备用节点
  • 2.0后会存在两个NN,其中一个运行,另一个(备用)处于休眠状态只有当运行的NN挂了才会启动

注:元数据,最小的数据单位

(3)DataNode (DN):数据节点---->存储到block块中

  • 数据存储节点,保存和检索Block
  • 一个集群可以有多个数据节点
  • 数据存储与处理

(4)Secondary NameNode (SNN):从元数据节点

  • 合并NameNode的edit logs到fsimage文件中(路径hadoop/tmp/dfs/name/current/)
  • 辅助NN将内存中元数据信息持久化
  • NameNode的助手

大数据概况及Hadoop生态系统_第2张图片

  • Clients---->Job Tracker (在NN上)<---->多个Task Tracker<----多个Task(每一个块)
    Client请求---->namenode 生成任务跟踪器Job Tracker---->在对应datanode的block基础上生成tesk
    shuffle负责管理哥哥task之间的关系,多个task之间的数据合并

  • MR2.0+yarn:
    client请求---->NN调度RM(yarn负责)---->RM调度NM(每个节点不同,动态)---->app master(任务主负责节点)---->申请不同容器(resouece requirement)

  • HDFS写文件
    大数据概况及Hadoop生态系统_第3张图片

  • HDFS读文件
    大数据概况及Hadoop生态系统_第4张图片
    2.HDFS副本机
    (1)Block:数据块

  • HDFS最基本的存储单元

  • 默认块大小:128M(2.x)

(2)副本机制

  • 作用:避免数据丢失
  • block副本数默认为3
  • 存放机制:
    一个在本地机架节点
    一个在同一个机架不同节点HDFS高可用(High Availability)
    一个在不同机架的节点

3.HDFS高可用(High Availability)
(1)在1.x版本中

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

4.HDFS文件格式
(1)HDFS支持以不同格式存储所有类型的文件

  • 文本、二进制
  • 未压缩、压缩(记录、块)
    (2)为了最佳的Map-Reduce处理,文件需可分割
  • SequenceFile
  • Avro File
  • RCFile&ORCFile
  • Parquet File

5.HDFS(主从)架构

  • 采用master/slave架构
    master:NameNode
    slave:DataNode
    大数据概况及Hadoop生态系统_第5张图片

6.HDFS特点

(1)HDFS优点

  • 支持处理超大文件
  • 可运行在廉价机器上
  • 高容错性
  • 流式文件写入

(2)HDFS缺点

  • 不适合低延时数据访问场景
  • 不适合小文件存取场景
  • 不适合并发写入,文件随机修改场景

7.HDFS CLI (命令行)
(1)基本格式(输入hdfs dfs可以查看)
hdfs dfs -cmd
hadoop fs -cmd(已过时)

  • 命令和Linux相似
    -ls 查看
    -mkdir 创建目录
    -mkdir -p 递归创建
    -put 将本地文件传输到hdfs目录下
    -rm [-skipTrash]删除
    -rm -r -f [-skipTrash]递归删除
    -rmdir删除文件夹
    -du 统计目录下文件大小
    -get 将hdfs文件copy到本地文件
    -help 帮助

(2)hdfs 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 /hdfs 设置文件目录配额

外:

  • sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。
  • 输入hdfs查看有哪些命令同理hdfs dfs

你可能感兴趣的:(大数据,hadoop)