day03-Hadoop框架

day03-Hadoop框架

一、分布式介绍

分布式:将多台服务器集中在一起,每台服务器都实现总体中的不同业务,做不同的事情

服务的运行方式:

  • 单机模式也叫本地模式(对服务器要求高、对于的成本也高)
  • 使用一台服务器

在这里插入图片描述

  • 分布式模式
    • 使用多台服务器(对服务器要求低,对于的成本也降低)
    • 分布式服务一般都有主从分配
      • 主服务 —— 管理
      • 从服务 —— 干活

在这里插入图片描述

二、集群介绍

集群:指一组独立的计算机系统构成的一多处理器系统,它们之间通过网络实现进程间的通信,让若干台计算机联合起来工作(服务),可以是并行的,也可以是做备份。

服务的安装部署方式:

  • 单机安装
    • 将服务安装到一台服务器上
  • 集群安装
    • 将服务器安装到多台服务器上(👇图为集群示例)

在这里插入图片描述

  • 分布式和集群区别
    • 分布式
      • 主要工作是分解任务,将职能拆解,多个人在一起做不同的事
    • 集群
      • 主要是将同一个业务,部署在多个服务器上 ,多个人在一起做同样的事

三、Hadoop介绍

3-1 介绍

Hadoop是Apache旗下的一个用Java语言实现开源软件框架,是一个存储计算大规模数据的软件平台。

Hadoop 的三个核心组件:

  • HDFS 分布式文件存储
    • 负责海量数据的存储
  • MapReduce 分布式计算
    • 负责海量数据的计算
  • Yarn 分布式资源调度
    • 负责给计算任务分配资源

3-2 Hadoop的服务架构说明

在这里插入图片描述

  • MapReduce 计算需要的数据和产生的结果需要 HDFS 来进行存储
    • 具体是 DataNode 储存数据
    • NameNode 只是提供 MapReduce 存储块位置,让MapReduce 知道数据在哪(或存在哪)
  • MapReduce 的运行需要由 Yarn 集群来提供资源调度。

开发人员只需要编写计算代码即可,内部的执行过程是Hadoop自己完成。(别学我,我这是自我麻痹

3-3 Hadoop部署方式

  • 单机部署

对单台服务器设备要求较高,内存大,读取速度要快,同时成本也大

在这里插入图片描述

  • 集群部署

对单台服务器要求较低,存储可以少一点,读取速度可以慢一点,成本减少

在这里插入图片描述

# 为什么单机要比集群效率低?(通常情况下)
单机:一台服务器:内存50G 读取速度500m/s。 实际1台    
=>总内存:50G 同一时间读取速度500m/s

集群:一台服务器:内存20G 读取速度200m/s。 实际3台    
=>总内存:60G 同一时间读取速度(200*3)m/s

3-4 Hadoop的服务启动

将node1、node2、node3服务器都开机

在这里插入图片描述

使用 Finalshell 软件连接 node1 虚拟机(自己操作,没有演示)

  • 启动指令

    • sh start-all.sh
  • 关闭

    • sh stop-all.sh
  • 查看服务器的启动信息

    • sh jps

在这里插入图片描述

3-5 Hadoop的基本使用

可以访问web页面,在页面中操作 HDFS

使用 ip 地址( HDFS 端口号 9870 )访问:http://192.168.88.100:9870/

使用域名访问,但是需要配置 windos 域名解析文件,如果没有该文件可以自己创建相同名称的文件

  1. 找到域名解析文件 host (目录:C:\Windows\System32\drivers\etc)

在这里插入图片描述

  1. 将文件拖拽到桌面

在这里插入图片描述

  1. 选择打开方式

在这里插入图片描述

  1. 添加域名信息,并保存
192.168.88.100 node1 node1.ecut.cn
192.168.88.101 node2 node2.ecut.cn
192.168.88.102 node3 node3.ecut.cn

在这里插入图片描述

  1. 将保存后的文件拖拽到原来文件夹中

在这里插入图片描述

  1. 访问服务器

http://node1:9870/

在这里插入图片描述

  1. 操作 HDFS

在这里插入图片描述

  1. 界面说明

在这里插入图片描述

3-6 MapReduce的使用

使用 hadoop 提供的案例代码实现圆周率计算

  • 圆周率计算
# 打开对于目录文件
cd /export/server/hadoop/share/hadoop/mapreduce/

# 执行hadoop自带的计算pi的案例代码
hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 2 100
  • 第一个参数 (2):代表的是用于计算的 样本数
    • 在计算 π 时,这个数字表示将要生成的点的总数。 (我这里的样本数是 2 )
    • 每个点都有一个随机的 x 和 y 坐标,范围为 [0, 1)×[0, 1)。
    • 该参数越高,计算的 π 值会越接近实际的 π 值。
  • 第二个参数 (100):代表的是 每个 Mapper 处理的样本数
    • 这意味着每个 Mapper 将处理的样本数为 100。
    • 在 Hadoop MapReduce 程序中,通常会对数据进行分片,然后由多台机器并行处理。

在这里插入图片描述

在这里插入图片描述

扩展:在Hadoop中计算π值通常采用的是蒙特卡洛方法

基本思想:通过随机数的比例来估算圆周率 π

原理解析:

  1. 蒙特卡洛方法
    • 在一个单位正方形内(边长为1),嵌套一个内接的四分之一圆
    • 四分之一圆的半径为1,面积为 π*1 2 ​ ^2​ 2
    • 正方形的面积为1*1=1
    • 如果我们在这个正方形内随机生成N个点,那么落在四分之一圆内的点的比例与圆的面积就会有直接关系
  2. 点的生成
    • 随机生成N个点((x,y)),其中(x,y)都在区间[ 0,1 ]内
    • 判断这些点是否落在四分之一圆内,条件为 ( x 2 ^2 2 + y 2 ^2 2 = 1 )
  3. π的估算
    • 设落在圆内的点数为:M,则可以得到:
      • M N ≈ 圆的面积 正方形的面积 = 1 4 π 1 ​ \frac{M}{N} \approx \frac{\text {圆的面积} }{\text {正方形的面积} } = \frac{\frac{1}{4} \pi}{1}​ NM正方形的面积圆的面积=141π
    • 由此可以推导出 π 的近似值
      • π ≈ 4 ⋅ M N \pi \approx 4 \cdot \frac{M}{N} π4NM

在这里插入图片描述

使用 hadoop 提供的案例代码实现词频统计

  • 词频统计
  1. word.txt 文件(含有数据)上传 HDFS

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 使用案例代码执行词频统计计算
hadoop jar hadoop-mapreduce-examples-3.3.0.jar wordcount /data /result

在这里插入图片描述

  1. HDFS 上查看计算结果

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

四、HDFS详解

4-1 HDFS的基本介绍

  • HDFS(分布式文件存储系统)
    • 以文件的方式存储数据
    • 文件在存储数据 一次写入多次读取
    • 支持追加写入
    • 不支持修改原始数据
  • HDFS的架构
    • Clinet客户端
    • NameNode
    • DataNode
    • SecondaryNameNode

4-2 HDFS的架构说明

Clinet客户端

负责文件上传,将上传的文件拆分多个块 block,每个块的大小默认是128M
使用客户端操作 HDFS

NameNode服务

  • 管理者角色,负责管理整个hdfs服务
  • 处理所有客户端请求
  • 管理HDFS的元数据,包含文件信息
    • 文件的存储位置
    • 文件大小
    • 文件名字
    • DataNode信息数据
    • 块信息等等数据

DataNode服务

  • 从服务,负责具体文件数据的存储
  • DataNode启动后会自动和NameNode保持通讯,汇报自身情况

SecondaryNameNode服务

  • 协助NameNode对元数据进行持久化存储
  • 在NameNode运行期间,会将元数据保存在内存中,一但服务器出现异常,内存数据容易丢失,元数据丢失后就会找不到文件,文件中存储的数据也就无法找回,所以HDFS会让SecondaryNameNode定期将内存上的元数据持久保存在磁盘上

在这里插入图片描述

4-3 HDFS的副本机制

HDFS为了保证数的安全可靠,会将块数据存储多份,默认是3副本,也就是会将块数据存储三份
将副本存储在不同的服务器(如上图)

五、Hive概述

hive 本身是一个数据查询工具,可以将文件的文本数据转为结构化数据,使用SQL的方式对结构化数据进行查询计算。

可以使用hive实现数据仓库的搭建

5-1 数据仓库

数据仓库对公司过往海量历史数据进行分析计算,为公司决策提供数据支持。

数据仓库的搭建需要依赖一套完整数据处理流程体系

  • 数据采集
  • 数据存储
  • 数据计算
  • 数据分析
  • 数据展示

Hive 在数据仓库开发中主要的作用就是将 sql 转为 MapReduce 计算,降低了开发人员的开发成本

在这里插入图片描述

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
flink-shaded-hadoop3和flink-shaded-hadoop3-uber是Apache Flink项目中与Hadoop 3.x版本集成相关的两个模块。 首先,Hadoop是一个分布式计算框架,用于处理大规模数据。而Flink是一个快速而可扩展的流式处理引擎,它可以在实时和批处理任务之间无缝切换。为了与Hadoop集成,并且能够在Flink中使用Hadoop生态系统的各种功能和工具,例如HDFS、YARN和MapReduce等,Flink提供了与Hadoop版本兼容的特殊模块。 flink-shaded-hadoop3模块是Flink所提供的一个可防止与Hadoop 3.x版本依赖冲突的模块。在Flink应用程序中,当需要使用Hadoop 3.x相关功能时,可以将flink-shaded-hadoop3模块添加到项目的依赖中。该模块会将特定版本的Hadoop 3.x依赖项重新打包,以避免与Flink自身或其他依赖项产生冲突。这样一来,Flink就能够与Hadoop 3.x版本协同工作,平滑地使用Hadoop的功能。 而flink-shaded-hadoop3-uber模块则是更加完整和庞大的用于集成Hadoop 3.x版本的模块。它将包含Hadoop 3.x依赖的所有必需库和资源等,以便于使用和编译。相比于flink-shaded-hadoop3模块,flink-shaded-hadoop3-uber模块更像是一个“全能版”,其中包含了实现与Hadoop 3.x版本深度集成所需的所有组件。这使得开发人员能够方便地构建和部署Flink应用程序,并且在与Hadoop生态系统进行交互时更加方便。 总的来说,flink-shaded-hadoop3和flink-shaded-hadoop3-uber模块都是Flink为了与Hadoop 3.x版本无缝集成,提供的两个特殊模块。它们通过重新打包Hadoop依赖,解决了可能产生的冲突问题,使得Flink能够顺利使用并利用Hadoop的功能和工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌神想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值