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

第八周

Hadoop 集群的稳定运行离不开完善的监控体系,搭建涵盖集群负载监控与日志收集的监控系统,可实时掌握集群运行状态,及时发现潜在问题。在集群负载监控方面,Ganglia 是常用的分布式监控工具,能够收集并展示集群中各节点的 CPU 使用率、内存占用量、磁盘 IO 速率、网络流量等关键指标,帮助运维人员实时了解节点负载情况。Ganglia 的架构包含 gmond(Ganglia Monitoring Daemon)、gmetad(Ganglia Meta Daemon)和 Web 前端三部分:gmond 运行在每个被监控节点上,定期采集节点的系统资源指标,并通过多播或单播方式将指标数据发送给其他节点或 gmetad;gmetad 运行在监控主节点上,负责收集多个 gmond 发送的指标数据,存储到 RRDtool(Round Robin Database tool)数据库中,并支持聚合多个集群的监控数据;Web 前端基于 PHP 开发,通过读取 RRDtool 数据库中的数据,以图表形式直观展示集群负载趋势(如 CPU 使用率变化曲线、内存占用饼图等),运维人员可通过浏览器访问 Web 界面,实时查看集群状态,当某个节点的 CPU 使用率持续过高或内存不足时,可及时介入处理,避免影响集群服务。
在日志收集方面,ELK(Elasticsearch + Logstash + Kibana)栈是 Hadoop 集群日志管理的常用方案,能够实现日志的收集、存储、检索与可视化分析。Logstash 作为日志收集工具,可部署在 Hadoop 集群的 NameNode、DataNode、ResourceManager 等节点上,通过配置输入(Input)、过滤(Filter)、输出(Output)插件,收集各节点的 Hadoop 日志(如 NameNode 的 hadoop-hdfs-namenode-xxx.log、DataNode 的 hadoop-hdfs-datanode-xxx.log)。例如,在 Logstash 的配置文件中,通过file输入插件指定日志文件路径,通过grok过滤插件解析日志格式(如提取日志时间、日志级别、日志内容等字段),通过elasticsearch输出插件将解析后的日志数据发送到 Elasticsearch 中存储。以下是一个 Logstash 收集 Hadoop DataNode 日志的配置示例
input {
file {
path => "/var/log/hadoop/hdfs/hadoop-hdfs-datanode-*.log"
start_position => "beginning"
sincedb_path => "/dev/null"
type => "datanode-log"
}
}

filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:log_time} %{LOGLEVEL:log_level} [%{DATA:thread}] %{DATA:class} - %{GREEDYDATA:log_content}" }
}
date {
match => [ "log_time", "yyyy-MM-dd HH:mm:ss,SSS" ]
target => "@timestamp"
}
}

output {
elasticsearch {
hosts => ["192.168.1.100:9200"]
index => "hadoop-datanode-log-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}
Elasticsearch 作为分布式搜索引擎,负责存储 Logstash 发送的日志数据,并提供高效的全文检索能力,运维人员可通过 Elasticsearch 的查询 API,根据日志级别、时间范围、关键字等条件快速检索日志(如查询 “ERROR” 级别的 DataNode 日志)。Kibana 作为可视化工具,基于 Elasticsearch 的数据,提供日志仪表盘、趋势图表等功能,运维人员可通过 Kibana 查看日志分布情况、错误日志统计等,快速定位日志中的异常信息,提高故障排查效率。
在 Hadoop 集群运维中,常见故障的及时处理是保障集群稳定的关键。当 DataNode 磁盘写满时,会导致 DataNode 无法存储新的数据块,影响 HDFS 的正常读写,此时需采取应急方案:首先通过hdfs dfsadmin -report命令查看各 DataNode 的磁盘使用情况,定位磁盘写满的 DataNode 节点;然后登录该节点,检查 HDFS 数据目录(如/data/hadoop/hdfs/data)下的文件占用情况,若存在非 HDFS 的冗余文件(如日志备份、临时文件),可删除冗余文件释放磁盘空间;若磁盘空间仍不足,可添加新的磁盘到 DataNode 节点,修改 HDFS 配置文件hdfs-site.xml中的dfs.datanode.data.dir参数,添加新磁盘的挂载路径,重启 DataNode 服务,使新磁盘生效;同时,可通过hdfs balancer命令将该 DataNode 上的部分数据块迁移到其他磁盘空闲的 DataNode 节点,平衡磁盘负载。
NameNode 堆内存溢出是另一常见故障,由于 NameNode 需要存储 HDFS 的元数据(如文件与数据块的映射关系),当集群中文件数量过多时,若堆内存配置不足,会导致 NameNode 内存溢出,进而影响整个 HDFS 集群的可用性。解决该问题需调优 NameNode 的堆内存参数(-Xmx):首先分析 NameNode 的内存使用情况,通过jstat -gc <NameNode进程ID>命令查看堆内存的使用情况(如 Eden 区、Old 区的使用率),估算所需的堆内存大小(通常每百万个文件需要 1GB 左右的堆内存);然后修改 Hadoop 的配置文件hadoop-env.sh,找到HADOOP_NAMENODE_OPTS参数,设置堆内存大小,例如export HADOOP_NAMENODE_OPTS="-Xms4g -Xmx8g -XX:+HeapDumpOnOutOfMemoryError",其中-Xms设置初始堆内存,-Xmx设置最大堆内存,-XX:+HeapDumpOnOutOfMemoryError配置内存溢出时生成堆转储文件,便于后续分析溢出原因;最后重启 NameNode 服务,使配置生效,同时通过jmap -heap <NameNode进程ID>命令验证堆内存配置是否生效,确保 NameNode 有足够的内存存储元数据。
Hadoop 集群的安全实践同样重要,Kerberos 认证和 HDFS 权限控制是保障集群安全的关键手段。Kerberos 作为网络认证协议,可实现 Hadoop 集群中各节点与用户的身份认证,防止未授权访问。配置 Kerberos 认证的步骤如下:首先部署 Kerberos 服务器(如 MIT Kerberos),创建 Kerberos 数据库和管理员账号;然后在 Hadoop 集群的所有节点上安装 Kerberos 客户端,配置krb5.conf文件,指定 Kerberos 服务器地址和 Realm 信息;接着为 Hadoop 的各服务(如 NameNode、DataNode、ResourceManager)创建 Kerberos 主体(Principal),并生成密钥表文件(Keytab),将密钥表文件分发到对应的服务节点;修改 Hadoop 的配置文件(如core-site.xml、hdfs-site.xml),启用 Kerberos 认证,配置相关参数(如hadoop.security.authentication设置为kerberos,hadoop.security.authorization设置为true);最后重启 Hadoop 集群服务,用户需通过kinit命令认证身份后,才能访问 HDFS 或提交任务,确保集群的访问安全。
HDFS 权限控制通过 ACL(Access Control List)实现更精细的权限管理,除了传统的所有者、所属组、其他用户的权限控制(r:读权限,w:写权限,x:执行权限),ACL 还允许为特定用户或用户组设置权限,满足复杂的权限需求。例如,某个 HDFS 目录/user/project的所有者为user1,所属组为dev,默认权限为rwxr-xr--,若需要让用户user2拥有该目录的写权限,可通过 ACL 命令设置:首先执行hdfs dfs -setfacl -m user:user2:rwx /user/project,为user2添加读、写、执行权限;然后通过hdfs dfs -getfacl /user/project命令查看 ACL 配置,验证权限是否生效。此外,还可通过hdfs dfs -setfacl -x user:user2 /user/project删除user2的 ACL 权限,或通过hdfs dfs -setfacl -b /user/project清除所有 ACL 权限,恢复默认权限控制。通过 ACL 命令集,运维人员可灵活管理 HDFS 目录和文件的权限,确保数据的安全性与访问可控性。

相关文章:

第八周

Hadoop 集群的稳定运行离不开完善的监控体系,搭建涵盖集群负载监控与日志收集的监控系统,可实时掌握集群运行状态,及时发现潜在问题。在集群负载监控方面,Ganglia 是常用的分布式监控工具,能够收集并展示集群中各节点的 CPU 使用率、内存占用量、磁盘 IO 速率、网络流量等…...

Tita 项目一体化管理:驱动项目全周期高效运营的引擎

一、企业项目管理的常见痛点 (一)项目启动规划阶段 目标模糊不清:项目启动时缺乏明确可量化的目标,团队成员对项目核心价值和预期成果理解不一致,导致后续工作方向偏离。例如,某研发项目因 “提升产品竞争力” 这一模糊目标,在功能开发中反复调整方向,浪费大量资源。计…...

飞行 NED坐标系(北东地坐标系):

在NED坐标系(北东地坐标系)中,飞机的‌天向速度‌、‌东向速度‌、‌北向速度‌的关系如下: 速度定义‌北向速度‌(N):飞行器在北方向上的移动速度。 ‌东向速度‌(E):飞行器在东方向上的移动速度。 ‌天向速度‌(D):飞行器在垂直地面向上的移动速度(通常为正)。…...

windows与linux环境下网络编程

windows与linux环境进行网络编程,使用的库是不一样的, 下面主要说一下windows环境下的网络编程; 网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用。网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包…...

在飞牛系统中通过docker形式部署Nginx proxy manager

在飞牛系统中通过docker形式部署Nginx proxy manager本文仅用用于记录。 目标: 分别通过以飞牛的图形化界面和docker compose实现以docker的方式部署Nginx proxy manager。 首先,管理员应当新建2个文件夹用于持久化数据存储(就是你想要留着的数据找个地方放好) 1.data 存放…...

Es索引同步异步Canal解耦方案

Es索引同步异步Canal解耦方案 首先传统的Es索引同步耦合性太高需要使用业务逻辑来同步,一旦在同步的时候服务器出现异常就用可能同步失败导致影响到其他业务,这里使用的是Canal中间件来实现异步同步索引。 简述: ​ 这里以电商项目为例,当需要添加,修改或删除商品时为了电…...

在Ubuntu上配置phpMyAdmin和WordPress环境

在Ubuntu中配置phpMyAdmin和WordPress环境需要执行一系列的步骤,包含安装LAMP(Linux, Apache, MySQL, PHP)栈,配置数据库,然后安装phpMyAdmin和WordPress。 下面是具体的配置步骤分解: 安装LAMP环境更新系统首先更新你的Ubuntu系统: sudo apt update sudo apt upgrade安装…...

“四人过河”经典问题

一、什么是“四人过河”经典问题 最早版本见于 MBA/奥数/信息学趣题: N 个人(通常 N=4)要从左岸到右岸,只有一条小船,容量至多 2 人;船划行时间 = 船上所有人中最大的那一项; 船不能空驶,每次必须有人把船划回来; 问:让所有人到达对岸的最短总时间是多少?二、通用数…...

完整教程:C#语言入门详解(18)传值、输出、引用、数组、具名、可选参数、扩展方法

完整教程:C#语言入门详解(18)传值、输出、引用、数组、具名、可选参数、扩展方法pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &q…...

DevOps On Kubernetes

OSChina在深圳举办的”源创会年终盛典”上,华为云容器服务技术总监发表了名为《DevOps On Kubernetes》的主题演讲,演讲就如何将DevOps理念与容器技术相结合,实现容器化场景下的快速交付进行介绍,并重点介绍了华为云容器服务提供的持续交付工具——容器交付流水线(Contain…...

深耕Linux系统的道与术

- [著名系统内核专家张银奎老师Boolan直播间开讲:《深耕Linux系统的道与器》\_哔哩哔哩\_bilibili](https://www.bilibili.com/video/BV1pK42187EY/?vd_source=589169a942bb977a9dbcdd5f0ea6318b) - [张银奎 | 2024全球C++及系统软件技术大会](https://www.cpp-summit.org/sp…...

Debugging via Intel DCI 小蓝盒

- [PowerPoint 演示文稿](http://advdbg.org/gdk/download/20200722-DCI_DBG_FullStack.pdf)- [使用DCI单步调试Intel CPU,调试运行在其上的UEFI代码 - 程序员大本营](https://www.pianshen.com/article/4402459283/)- [[讨论]使用Intel DCI调试12代笔记本CPU来解决安装黑苹果…...

我做了个 AI 文档阅读神器,免费开源!

为了帮助大家免受文档的折磨,我用 AI 开发了个 AI 文档助手网站,可以帮你快速读懂各种复杂的文档、还帮你管理文档。大家好,我是程序员鱼皮。开学季到了,想必很多朋友要开始收集和阅读论文,像我自己学习新技术知识也会去阅读文档,我深知阅读文档的痛苦。明明每个词拆开都…...

20250913 P11503 [NordicOI 2018] Nordic Camping

P11503 [NordicOI 2018] Nordic Camping 二分 + DS 妙题 思路 首先我们可以发现。若有一个点 \((x, y)\),则我们可以通过二分求出以 \((x, y)\) 为左上角的最大空正方形的边长(记为 \(b[i][j]\)),check 就是判断以 \((x, y)\) 为左上角的边长为 \(mid\) 的正方形是否为空,…...

Dify实战训练营(基础班)(全免费值得收藏)

Dify实战训练营(基础班)(全免费值得收藏) Dify全链路实战【图文】 【01】【2025年最新版】Dify1.5.0升级部署实战指南 【02】Dify 代码执行节点实战:手把手解锁自定义业务开发能力 【03】Dify全链路实战 :TTS 实操,三步搭建语音化工作流 【04】【2025 年最新版】Dify 实…...

C 语言的历史和版本

C 语言的历史 1972年,贝尔实验室的 Dennis Ritchie 在开发 UNIX 操作系统时设计了 C 语言。C 语言是在 B 语言的基础上设计的。 C 语言的版本 K&R C K&R C 也叫 经典 C,以《The C Programming Language》【Brain Kernighan,Dennis Ritchie】(1987)(第 1 版)作为…...

PostgreSQL 上的向量搜索实践

本文整理自 IvorySQL 2025 生态大会暨 PostgreSQL 高峰论坛的演讲分享,演讲嘉宾:高策,TensorChord CEO。引言 本文主要分享如何在 PostgreSQL 上进行向量的搜索。 PostgreSQL 有非常多的 Extension,我们可以通过 Extension 的方式去扩展 PostgreSQL 能够支持的数据类型。这…...

【数据结构——图与邻接矩阵】 - 实践

【数据结构——图与邻接矩阵】 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important…...

(读书笔记)平衡掌控者

这本书比较短,主要是国内某数值设计师的MMORpg的设计经验。 虽然大部分是mmo制作的细节,可以不用太深挖,但还是有不少“游戏共性”可以参考和学习的。 主要是第2章和第4章的内容。 下面记录一些关键点并做了一些拓展。 ---------------------------------------------------…...

带头结点的单链表删除指定位置结点

1. 功能概述 bool ListDelete(LinkList &L, int i, ElemType &e) 函数的功能是:在带头结点的单链表 L 中,删除第 i 个位置的结点,并将被删除结点的数据通过引用参数 e 带回给调用者。函数名: ListDelete,清晰表达了其功能。 返回值: bool 类型。true 表示删除成功,…...

《文字、语言与数字的奇妙联结》读后感,大公司内部编码规范,本学期编码遵守规范

《文字、语言与数字的奇妙联结》读后感 读到 “文字和语言与数学,从产生起原本就有相通性,虽一度分道扬镳,最终仍能走到一起” 时,我被这种跨领域的深层联结深深触动。 最初,文字、语言与数学或许本是 “同根生”—— 它们都发源于人类认知世界、传递经验的需求。远古时期…...

[HTTP/Spring] RestTemplate : Spring的HTTP网络请求框架

0 序java应用开发中,使用http连接,访问第三方HTTP接口,通常使用的HTTP连接请求工具为HttpClient和OKHttp。这两种HTTP连接请求工具,使用起来比较复杂,新手容易出问题。如果使用spring框架,可以使用restTemplate来进行http连接请求。restTemplate默认的连接方式是java中的…...

深入解析:Linux使用-MySQL的使用

深入解析:Linux使用-MySQL的使用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; fo…...

博客园-我的博客-的皮肤更换

皮肤地址 GShang写的博客皮肤 最近用的这个博主写的 cnbook ,强力安利!...

Apache Commons Math3 使用指南:强大的Java数学库 - 教程

Apache Commons Math3 使用指南:强大的Java数学库 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", m…...

HarmonyOS图形处理:Canvas绘制与动画开发实战

本文将全面介绍HarmonyOS 5中Canvas组件的使用方法和动画开发技巧,通过详细的代码示例和最佳实践,帮助您掌握图形绘制和动态效果实现的核心技能。1. Canvas组件基础与核心API Canvas是HarmonyOS中用于2D图形绘制的重要组件,提供了丰富的绘图接口和灵活的动画支持。 1.1 Canv…...

应用的微服务化-容器化-CI/CD

第一阶段:需要对应用按照云原生架构进行应用的微服务化改造,容器化改造,以及对接CI/CD平台,使得应用具备云原生的特点 <1.> 微服务注册配置中心 业务系统在进行微服务化改造的过程中,会涉及微服务的注册,以便于被其他所依赖的上游服务发现,分别是Naco,Eureka和Zo…...

[转发和重定向] 的核心定义

重定向和转发 不废话: “转发” 的核心定义: 服务端内部主导跳转、客户端无感知(仅 1 次请求)、浏览器 URL 不改变,与传统 Web 开发中 “转发” 的本质逻辑完全一致,只是实现载体(Nginx 路由层 vs 上层业务框架)不同,不影响其 “转发” 的属性归属。 “重定向”核心定…...

script setup 在 Vue 3 中的核心作用及具体实现方式

​​一、核心作用​​ 1. ​​简化 Composition API 语法​​​​自动暴露顶层变量​​:无需手动通过 return 暴露属性或方法,直接声明即可被模板使用。 <script setup> const count = ref(0); // 自动暴露给模板 </script> <template><p>{{ count }…...

0voice-1.4.1-cmake

cmake介绍...

test test test

this test string...

容器化改造基本原理

虚拟化和容器化是项目云化不可避免的两个问题。虚拟化由于是纯平台操作,一个运行于linux操作系统的项目几乎不需要做任何改造就可以支持虚拟化。而项目如果要支持容器化则需要做许多细致的改造工作。容器化相对于虚拟化的优势也相当明显,运行于裸机性能高,秒级启停容器,更不…...

Blogroll 友链

Blogroll 友链愿我如星君如月,夜夜流光相皎洁。...

Java 字节码与 ASM 框架实战解析

Java 虚拟机(JVM)以字节码(Bytecode)为基础执行所有 Java 程序。对于希望深入理解 Java 底层运行机制,或开发自定义编译器、性能探测器、动态增强框架(如代理、AOP)的开发者来说,掌握 Java 字节码结构与 ASM 等字节码操作工具极为重要。 本篇文章将深入解析 Java 字节码…...

计算机大数据毕业设计选题:基于Spark+hadoop的全球香水市场趋势分析系统 - 详解

计算机大数据毕业设计选题:基于Spark+hadoop的全球香水市场趋势分析系统 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "…...

Dos的常用命令

常用的Dos命令 #盘符切换 #查看当前目录下的所有文件 dir #切换目录 cd change directory cd..返回上一级 #清理屏幕 cls(clear screen) #退出终端 exit #查看电脑的ip ipconfig #打开应用calc(计算器)mspaint(画图)notepad(笔记)#ping 命令 ping www.baidu.com#文件操作…...

持续集成自动化CI/CD

背景Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。持续集成(Continuous integration)是一种软件开发实践,即团队开…...

Lightroom Classic 2025(LRC 2025)安装教程(附直接安装包下载)+入门操作指南

一、LRC 2025下载及软件介绍 Lightroom Classic 2025 v14.0.1 是 Adobe 旗下专业图片后期处理软件,主打RAW 格式图片编辑,专为摄影师、摄影爱好者及数码摄影 / 图形设计从业者设计,提供从照片导入、整理到编辑、打印的全套服务。支持各类相机 RAW 文件解析,能高效完成照片调…...

2025/09/14 【二叉树11】完全二叉树的节点个数

222. 完全二叉树的节点个数 - 力扣(LeetCode)...

8888

jjjj...

接口限流代码 - 实践

接口限流代码 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 14p…...

OutGuess 安装与问题排查指南(Kali Linux 环境)

OutGuess 安装与问题排查指南(Kali Linux 环境) 本文档基于实际操作流程,整理了 OutGuess 工具从下载、编译安装到常见问题解决的完整步骤,适用于 CTF 隐写术场景下的工具配置需求。 一、工具简介 OutGuess 是经典隐写术工具,主要用于在 JPEG/PPM 图像 中隐藏 / 提取数据,…...

拓展操作码举例

拓展操作码举例 指令字长16位,每个地址码占4位: 那么如果要表示三地址操作码有16条 前四位表示操作码op,后面有3个4位长的地址字段A1,A2,A3 三地址指令 至少需要将1111留作扩展操作码之用,因此三地址指令只能有2^4 -1=15条 二地址指令 至少将 1111 1111 留作扩展操作码之…...

TryHackMe | Cicada-3301 Vol:1

TryHackMe | Cicada-3301 Vol:1 一、分析音频软件 先把文件下载到本地使用unzip解压缩,得到一个音频文件和一个图片我们这边先查看一下图片里面是什么内容大致意思:你好。我们正在寻找高智商的人。为了找到他们,我们设计了一个测试。 这张图片里藏有一条信息。找到它,它会指…...

[MCP][01]简介与概念

MCP简介与概念简介 MCP(全称为Model Context Protocol,模型上下文协议)是一种面向大模型交互过程的通用上下文协议标准。其核心目标在于为模型构建一个结构化、可控、可扩展的语义执行环境,使语言模型能够在统一的上下文管理体系下进行任务调度、工具调用、资源协作与状态保…...

完整教程:Word添加图/表题注

完整教程:Word添加图/表题注pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-s…...

CF819B Mister B and PR Shifts

CF819B Mister B and PR Shifts 题目描述 Some time ago Mister B detected a strange signal from the space, which he started to study. After some transformation the signal turned out to be a permutation $ p $ of length $ n $ or its cyclic shift. For the furthe…...

第一次自我介绍

大家好,我是李嘉倩,核心兴趣是《和平精英》《第五人格》这类竞技游戏,更擅长把游戏变成 “数据收集与分析” 的实践场,这也是我的核心优势。 为提升游戏策略,我坚持1 年半做了两件事:数据收集:用 Excel 记录《和平精英》200 + 局的落地点物资刷新率、对战淘汰 / 成盒原因…...

在Linux环境部署Flask应用并启用SSL/TLS安全协议

部署Flask应用通常涉及以下几个步骤:准备应用程序、选择合适的WSGI服务器、配置Web服务器代理、申请SSL证书以及配置SSL。 准备Flask应用 首先,你需要在Linux服务器上安装必要的软件,包括:Python和pip(Python包管理器) 虚拟环境(virtualenv或conda) Flask框架和依赖库使…...

0127_责任链模式(Chain of Responsibility)

责任链模式(Chain of Responsibility) 意图 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。 UML 图优点降低耦合度:请求发送者不需要知道哪个对象处理请求 动态组合:可以…...