当前位置: 首页 > news >正文

七、Hadoop 历史追踪、数据安全阀与 MapReduce初体验

Hadoop 实战拾遗:作业历史追踪、数据安全阀与 MapReduce 巧算 π

一、追溯作业足迹:JobHistory Server 的配置与使用

Hadoop 集群高效运行的背后,离不开对已完成作业细致分析。JobHistory Server (JHS) 就像是作业的“黑匣子”,为我们保存宝贵的历史记录

  • 为何需要 JHS?
    YARN 中的Application 结束后,其运行时上下文随之消失。JHS 的存在就是为了持久化这些作业日志和统计信息,方便日后回溯

  • JHS 的工作核心
    JHS 默默收集 MapReduce (或其他兼容框架如 Spark on YARN) 作业在运行时产生的各类事件和配置,将其写入 HDFS 的指定目录。随后,它解析这些文件,并通过Web UI (通常是19888端口) 提供查询服务
    在这里插入图片描述

  • 关键配置与启动命令

  1. 配置 mapred-site.xml:
<property><name>mapreduce.jobhistory.address</name><value>hadoop01:10020</value> <!-- JHS RPC 服务地址 -->
</property>
<property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop01:19888</value> <!-- JHS Web UI 地址 -->
</property>
  1. 启动|停止 JobHistory Server:
mr-jobhistory-daemon.sh start|stop historyserver
  • jobhistory不受hadoop集群的启停命令的影响,每次都需单独启动和关闭
  • 历史作业的“时光机”
    配置并启动 JHS 后,只需在浏览器中输入 hadoop01:19888,即可进入历史作业的查询界面轻松追溯每个作业的前世今生

二、HDFS 的“后悔药”:垃圾桶 (Trash) 机制解析

手滑误删数据操作中的常见噩梦HDFS垃圾桶机制,就如同为我们的重要数据提供了一道安全防线

  • 垃圾桶的工作逻辑
    启用此功能后,执行 hdfs dfs -rm 命令删除文件或目录时,它们并不会立刻从磁盘抹去,而是被悄悄地移动到当前用户HDFS主目录下的 .Trash/Current/ 目录中,保留了其原始的路径结构

在这里插入图片描述

  • 配置与启用
    垃圾桶的核心配置core-site.xml 文件中。
  1. 设置保留时间:
<property><name>fs.trash.interval</name><value>1440</value> <!-- 文件在垃圾桶中保留的分钟数,例如 1440 分钟 = 24 小时 -->
</property>

(注意:如果此值为 0,则垃圾桶功能被禁用。)

  1. (可选) 设置检查点间隔:
<property><name>fs.trash.checkpoint.interval</name><value>60</value> <!-- 后台清理垃圾桶的检查点间隔(分钟),通常小于或等于 fs.trash.interval -->
</property>
  • “失而复得”的操作
    如果在保留期内意识到误删,可以找回数据。
  1. 查看垃圾桶内容 (示例):
hdfs dfs -ls /user/your_username/.Trash/Current/path/to/your/deleted_file
  1. 恢复文件/目录 (示例):
hdfs dfs -mv /user/your_username/.Trash/Current/path/to/your/deleted_file /original/path/deleted_file
  • 特别提醒
    • 使用 hdfs dfs -rm -skipTrash <path> 命令会直接跳过垃圾桶,永久删除
    • 垃圾桶会消耗存储空间,需合理规划保留策略。

三、MapReduce 趣味编程:蒙特卡洛法估算 π

MapReduce 不仅能处理枯燥数据统计,也能参与到一些有趣的数学实验中。用蒙特卡洛方法估算 π 就是一个经典案例

  • 核心思想:概率的魔法
    在一个正方形随机投点,统计落入其内切圆点的比例。这个比例乘以 4,就近似于 π。点投得越多,结果越准

在这里插入图片描述

  • hadoop-examples.jar 执行 π 估算
    Hadoop 通常自带一个名为 hadoop-examples.jar示例程序包,其中包含了用 MapReduce 实现的 PiEstimator (或类似名称的) π 估算程序。我们可以直接通过命令行运行它。
  1. 执行命令示例:
hadoop jar hadoop-mapreduce-examples-3.3.4.jar pi 2 4
  • pi: 指定要运行 hadoop-examples.jar 中的 PiEstimator 程序。
  • 2: 指定使用的 Map 任务数量
  • 4: 指定每个 Map 任务投掷的点数 (samples per map)。
    (总投掷点数 = Map 任务数 * 每个 Map 的点数 = 2 * 2 = 8)

运行后,该 MapReduce 作业会在集群中执行,并在控制台输出估算的 π 值以及作业的相关信息
在这里插入图片描述
在这里插入图片描述
想要查看详细的信息,可以去YARN ResourceManager Web UI界面看
在这里插入图片描述

  • 实验的启示
    这个命令行操作,让我们无需编写一行 Java 代码,就能体验 MapReduce 分布式计算魅力。它背后原理之前讨论Mapper/Reducer 逻辑一致的大量的随机投点分配多个 Map 任务并行处理,最终结果汇总得出 π 的估算值

相关文章:

  • 密码学--AES
  • 数据结构【二叉搜索树(BST)】
  • C语言| sizeof(array)占多少字节
  • K8S - GitLab CI 自动化构建镜像入门
  • 打造网络安全堡垒,企业如何应对DDoS、CC、XSS和ARP攻击
  • C++之运算符重载实例(日期类实现)
  • 【数据处理】MODIS中全球地表温度LST数据拼接(MRT工具处理+Python全代码)
  • Redis 主从复制集群搭建教程
  • 游戏引擎学习第267天:为每个元素添加裁剪矩形
  • 《大规模电动汽车充换电设施可调能力聚合评估与预测》MATLAB实现计划
  • 在一个FreeBSD的控制台,当移动鼠标时,就会有字符发生,这是怎么回事:35;62;18m35;60;
  • 【Python】Pycharm中安装库可靠的方法
  • 基础编程题目集 6-8 简单阶乘计算
  • 自定义Widget开发:复杂组件设计
  • Android 数据持久化之 文件存储
  • 超详细讲解注意力机制、自注意力机制、多头注意力机制、通道注意力机制、空间注意力机制
  • Java响应实体【R】
  • 如何对外包团队进行有效的管理?
  • Day19 常见的特征筛选算法
  • 代码随想录第39天:单调栈
  • 人民财评:网售“婴儿高跟鞋”?不能让畸形审美侵蚀孩子身心
  • 融创中国:今年前4个月销售额约112亿元
  • 追光|铁皮房、土操场,这有一座“筑梦”摔跤馆
  • 硅料巨亏后弘元绿能割肉求生:逾12亿元内蒙古公司股权转让协鑫
  • 纪录片《中国》原班人马打造,《船山先生》美学再升级
  • 司法部谈民营经济促进法:对违规异地执法问题作出禁止性规定