Hadoop基础(一)

Hadoop基础

  1. 什么是大数据?

    1. 为了处理海量数据所产生的技术
    2. 通过分布式技术处理数据
  2. 应用

    1. 数据挖掘
  3. 分布式

    1. 将多台服务器集中,每台服务器做不同的事情

    2. 分布式系统:一个硬件或软件,其组件会分布在不同的计算机上,并可以通过网络进行通信和协调

    3. 常用技术

      1. 分布式数据存储:HDFS

        image-20230908111118455

      2. 分布式计算:MapReduce

        image-20230908111628094

    4. 集群

      1. 多台不同服务器部署相同的应用或服务模块

      2. 负载均衡,提供服务

        image-20230908111920678

      3. 资源调度:YARN

        1. 去中心化模式:没有主服务器,基于特定规则同步协调
      4. 中心化模式:有一个主服务器,都由主服务器统一调度分配

    5. Hadoop框架

      1. 核心工作
      2. 数据存储
        1. HDFS:分布式存储
        2. HBase:NoSQL(key-value)
        3. Kudu
        4. 云平台存储
        1. 数据计算
          1. MapReduce
          2. Hive
          3. Spark
          4. Flink
        2. 数据传输
          1. Sqoop(ETL工具)
          2. Flume(流式数据采集)
          3. Kafka(分布式消息系统)
          4. Pulsar(分布式消息系统)
    6. 入门

      1. Hadoop优势

      2. 扩容能力

        1. 成本低
        2. 效率高
        3. 可靠性
      3. HDFS

        1. NameNode:主节点
        2. secondaryNameNode:辅助主节点,备份元数据
        3. DataNode:存储集群中的数据
      4. YARN

        1. ResourceManager:接收用户计算请求任务,负责集群资源分配
      5. NodeManager:执行主节点分配任务

      6. MapReduce(分而治之)

        image-20230908153408050

    7. Hadoop启动

      image-20230908170147540

    8. HDFS上使用shell命令

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      # 法一
      hadoop fs -<args> #既可以操作HDFS,也可以操作本机系统
      # 法二
      hdfs dfs -<args> #只能操作HDFS系统

      # 实例
      hdfs dfs 回车 查看所有命令
      hdfs dfs -help 帮助
      hdfs dfs -ls 显示文件列表
      -R # 递归显示文件列表
      hdfs dfs -mkdir 创建目录
      -mkdir -p 创建多级目录
      hdfs dfs -mv 重命名文件或目录或移动文件或目录
      hdfs dfs -touch /a/a.txt 创建a.txt文件
      hdfs dfs -cp 复制文件或目录
      hdfs dfs -rm 删除文件或目录
      hdfs dfs -cat 查看文件内容
      hdfs dfs -put 上传本地文件或目录到hdfs上
      hdfs dfs -get 下载hdfs上的文件或目录到本地
      hdfs dfs -appendToFile /path/to/local/h.txt /user/hadoop/itcast/a.txt 将本地文件中的内容追加到HDFS上的文件里面

      # 启动例子统计词频
      cd /export/server/hadoop/share/hadoop/mapreduce
      hadoop jar hadoop-mapreduce-examples-3.3.0.jar wordcount /input /output
    9. Hadoop目录结构

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      # tree查看一级目录
      tree -L 1

      hadoop
      ├── bin # Hadoop最基本的管理脚本和使用脚本所在的目录
      ├── etc # 存放一些hadoop的配置文件
      ├── include # 编程库头文件,用于C++程序访问HDFS或者编写MapReduce程序
      ├── lib # 存放的是Hadoop运行时依赖的jar包,Hadoop在执行时会把lib目录下面的jar全部加到classpath中
      ├── libexec # 各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息
      ├── LICENSE-binary
      ├── licenses-binary
      ├── LICENSE.txt
      ├── logs # Hadoop运行的日志
      ├── NOTICE-binary
      ├── NOTICE.txt
      ├── README.txt
      ├── sbin # 管理脚本的所在目录,重要是对hdfs和yarn的各种开启和关闭和单线程开启和守护
      └── share # 各个模块编译后的jar包所在的目录

    10. Hadoop框架

      image-20230912180704021