大数据基础Hadoop 2.x入门

时间:2022-01-03 15:55:22

hadoop概述

  1. 存储和分析网络数据
  2. 三大组件
    • MapReduce
      • 对海量数据的处理
      • 思想:
        • 分而治之
        • 每个数据集进行逻辑业务处理map
        • 合并统计数据结果reduce
    • HDFS
      • 储存海量数据
      • 分布式存储
      • 安全性高
        • 副本数据
    • YARN
      • 分布式资源管理框架
        • 管理整个集群的资源(内存、CPU核数)
        • 分配调度集群资源
    • Common
      • 工具

hadoop生态圈

  1. Hive(蜜蜂)通过使用sql语句来执行hadoop任务
  2. HBase 存储结构化数据的分布式数据库
    • HBase放弃了事务特性,追求更高的扩展
    • 和HDFS不同的,HBase提供数据的随机读写和实时访问,实现对表数据的读写功能
  3. zookeeper 维护节点状态

Hadoop安装

  1. 使用docker安装
docker run -i -t -p 50070:50070 -p 9000:9000 -p 8088:8088 -p 8040:8040 -p 8042:8042  -p 49707:49707  -p 50010:50010  -p 50075:50075  -p 50090:50090 sequenceiq/hadoop-docker:2.6.0 /etc/bootstrap.sh -bash

HDFS基本概念

  1. 块 (Block)
    • HDFS的文件被分成块进行存储
    • HDFS块的默认大小64M
    • 块是文件储存处理的逻辑单元
  2. NameNode
    • NameNode是管理节点,存放文件元数据
    • 文件与数据块的映射表
    • 数据块与数据节点的映射表

      大数据基础Hadoop 2.x入门
  3. DataNode
    • 是HDFS的工作节点,存放数据块

HDFS中数据管理与容错

  1. 数据块副本

    大数据基础Hadoop 2.x入门

  2. 心跳检测

    大数据基础Hadoop 2.x入门

  3. 二级NameNode

    大数据基础Hadoop 2.x入门

HDFS中文件读写的流程

大数据基础Hadoop 2.x入门

HDFS写入文件的流程

大数据基础Hadoop 2.x入门

HDFS的特点

  1. 数据冗余,硬件容错
  2. 流式的数据访问
  3. 适合存储大文件
  4. 适合数据批量读写,吞吐量高
  5. 不适合交互式应用,低延迟很难满足
  6. 适合一次写入多次读取,顺序读写
  7. 不支持多用户并发写相同文件

HDFS命令行操作

  1. hadoop fs -ls /
  2. hadoop namenode -format 格式化操作
  3. hadoop fs -ls /user
  4. hadoop fs -put hadoop-env.sh /user/root 把文件放入hadoop
  5. hadoop fs -rm input
  6. hadoop fs -rm hadoop-env.sh
  7. hadoop fs -mkdir input
  8. hadoop fs -cat input/hadoop-env.sh
  9. hadoop fs -get input/hadoop-env.sh hadoop-env2.sh
  10. hadoop dfsadmin -report

MapReduce原理

  1. 分而治之,一个大人物分成多个小的子任务(map),并行执行后,合并结果(reduce)
  2. 比如:100GB的网站访问日志文件,找出访问次数最多的IP地址
    • 根据日期切分,比如按周,每周一份进行统计
    • 再合并到某几个机器进行分析合并

MapReduce运行流程

  1. 基本概念
    • Job & Task 一个job就例如上面的例子,task可以分为map task和reduce task
    • JobTracker
      • 作业调度
      • 分配任务、监控任务执行进度
      • 监控TaskTracker的状态

        大数据基础Hadoop 2.x入门
    • TaskTracker
      • 执行任务
      • 汇报任务状态
  2. MapReduce作业执行过程

    大数据基础Hadoop 2.x入门

MapReduce的容错机制

  1. 重复执行
    • 重复4次仍旧失败放弃
  2. 推测执行
    • 假设有个TaskTracker执行特别慢,它会启动另一个TaskTracker执行相同的任务,两个谁先执行完,就放弃另一个

MapReduce应用

WordCount单词计数

  1. 由于我是docker安装,具体例子可以参考如下

https://blog.csdn.net/qq_16563637/article/details/81702633

  1. docker安装的容器里,自带了例子,位置是/usr/local/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar

参考 https://www.imooc.com/video/7777