在CDH中重启YARN组件时,JobHistoryServer服务启动失败

问题描述

在CDH中重启YARN组件的JobHistoryServerJobHistoryServer服务时,遇到如下错误。

错误一:

Stopping JobHistory 上午10点44:40.553分 INFO AbstractService Service org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer failed in state INITED; cause: org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Error creating done directory: [hdfs://nameservice1:8020/user/history/done] org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Error creating done directory: [hdfs://nameservice1:8020/user/history/done] at org.apache.hadoop.mapreduce.v2.hs.HistoryFileManager.tryCreatingHistoryDirs(HistoryFileManager.java:696) at org.apache.hadoop.mapreduce.v2.hs.HistoryFileManager.createHistoryDirs(HistoryFileManager.java:630) at org.apache.hadoop.mapreduce.v2.hs.HistoryFileManager.serviceInit(HistoryFileManager.java:591) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:164) at org.apache.hadoop.mapreduce.v2.hs.JobHistory.serviceInit(JobHistory.java:97) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:164) at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:108) at org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer.serviceInit(JobHistoryServer.java:150) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:164) at org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer.launchJobHistoryServer(JobHistoryServer.java:226) at org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer.main(JobHistoryServer.java:236) Caused by: org.apache.hadoop.security.AccessControlException: Permission denied. user=mapred is not the owner of inode=/user/history/done at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkOwner(FSPermissionChecker.java:303) at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:270) at org.apache.sentry.hdfs.SentryINodeAttributesProvider
ClientNamenodeProtocol
Server
Server.call(RPC.java:991) at org.apache.hadoop.ipc.Server
RpcCall.run(Server.java:815) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1875) at org.apache.hadoop.ipc.Server
11.next(FileContext.java:1008) at org.apache.hadoop.fs.FileContext
SentryPermissionEnforcer.checkPermission(SentryINodeAttributesProvider.java:86) at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:194) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1855) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkPermission(FSDirectory.java:1839) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.checkOwner(FSDirectory.java:1784) at org.apache.hadoop.hdfs.server.namenode.FSDirAttrOp.setPermission(FSDirAttrOp.java:64) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.setPermission(FSNamesystem.java:1861) at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.setPermission(NameNodeRpcServer.java:856) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.setPermission(ClientNamenodeProtocolServerSideTranslatorPB.java:509) at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos
2.callBlockingMethod(ClientNamenodeProtocolProtos.java) at org.apache.hadoop.ipc.ProtobufRpcEngine
ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:523) at org.apache.hadoop.ipc.RPC
RpcCall.run(Server.java:869) at org.apache.hadoop.ipc.Server
Handler.run(Server.java:2675) at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1499) at org.apache.hadoop.ipc.Client.call(Client.java:1445) at org.apache.hadoop.ipc.Client.call(Client.java:1355) at org.apache.hadoop.ipc.ProtobufRpcEngine
Invoker.invoke(ProtobufRpcEngine.java:116) at com.sun.proxy.
Call.invokeMethod(RetryInvocationHandler.java:165) at org.apache.hadoop.io.retry.RetryInvocationHandler
Call.invokeOnce(RetryInvocationHandler.java:95) at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:359) at com.sun.proxy.$Proxy17.setPermission(Unknown Source) at org.apache.hadoop.hdfs.DFSClient.setPermis

错误二:

ERROR JobHistoryServer Error starting JobHistoryServer org.apache.hadoop.yarn.exceptions.YarnRuntimeException: Error creating done directory: [hdfs://nameservice1:8020/user/history/done] at org.apache.hadoop.mapreduce.v2.hs.HistoryFileManager.tryCreatingHistoryDirs(HistoryFileManager.java:696) at org.apache.hadoop.mapreduce.v2.hs.HistoryFileManager.createHistoryDirs(HistoryFileManager.java:630) at org.apache.hadoop.mapreduce.v2.hs.HistoryFileManager.serviceInit(HistoryFileManager.java:591) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:164) at org.apache.hadoop.mapreduce.v2.hs.JobHistory.serviceInit(JobHistory.java:97) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:164) at org.apache.hadoop.service.CompositeService.serviceInit(CompositeService.java:108) at org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer.serviceInit(JobHistoryServer.java:150) at org.apache.hadoop.service.AbstractService.init(AbstractService.java:164) at org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer.launchJobHistoryServer(JobHistoryServer.java:226) at org.apache.hadoop.mapreduce.v2.hs.JobHistoryServer.main(JobHistoryServer.java:236) Caused by: org.apache.hadoop.security.AccessControlException: Permission denied. user=mapred is not the owner of inode=/user/history/done at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkOwner(FSPermissionChecker.java:303) at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:270) at org.apache.sentry.hdfs.SentryINodeAttributesProvider
ClientNamenodeProtocol
Server
Server.call(RPC.java:991) at org.apache.hadoop.ipc.Server
RpcCall.run(Server.java:815) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1875) at org.apache.hadoop.ipc.Serve

原因分析:

错误一:

在尝试创建/user/history/done目录时,用户mapred没有足够的权限。要解决这个问题,我们需要确保mapred用户对/user/history/done目录有正确的权限。

错误二:

这个错误是由于JobHistoryServer在启动时,无法创建hdfs://nameservice1:8020/user/history/done目录,因为当前用户mapred不是目录的所有者,没有足够的权限。


解决方案:

1. 检查当前用户权限:

使用如下命令查看/user/history/done目录的权限设置。

hdfs dfs -ls /user/history/done

确认mapred用户是否是目录的所有者或者是否有写权限。

2. 修改目录权限:

如果mapred用户不是目录的所有者,可以使用如下命令将目录的所有权更改为mapred。

hdfs dfs -chown mapred /user/history/done

如果mapred用户需要写权限,可以使用如下命令给予mapred用户写权限。

hdfs dfs -chmod 755 /user/history/done

之后重新启动,JobHistoryServer 启动成功。

启动 JobHistoryServer 成功后的异常

在 JobHistoryServer 启动成功后,查看角色日志,发现又报了如下异常。

ERROR	HistoryFileManager	
Error while trying to scan the directory hdfs://nameservice1:8020/user/history/done_intermediate/hive
org.apache.hadoop.security.AccessControlException: Permission denied: user=mapred, access=READ_EXECUTE, inode="/user/history/done_intermediate/hive":hive:hadoop:drwxrwx---

这个错误表明,用户 mapred 没有足够的权限来读取和执行目录 /user/history/done_intermediate/hive 中的内容。目录的权限设置为 drwxrwx—,这意味着:

目录所有者(hive)有读、写和执行权限。
目录所属组(hadoop)有读、写和执行权限。
其他用户没有任何权限。

解决方法:

更改目录权限:通过HDFS命令行更改 hdfs 目录权限,以允许 mapred 用户读取和执行目录内容。可以将目录权限更改为 drwxrwxr-x,这样所有用户都有读取和执行权限,但只有所有者和组有写权限。

hdfs dfs -chmod 775 /user/history/done_intermediate/hive

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/28792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eNSP由于Cloud网卡设置错误引起的STP环路机制问题

现象:SW1和SW2之间直连(vlan13)不可达,但是断开左边的Cloud云的虚拟之后可达(设置g0/0/1口为down) ,接口协议均up,配置正确。 查看生成树状态: 发现,SW2的g0/0/4接口为阻塞状态&…

[机器学习] Stable Diffusion初体验——基于深度学习通过神经网络的强大AI平台

文章目录 前言平台介绍 一.创建应用 Stable Diffusion WebUI初始化上传模型,VAE,lora 介绍sd模型,vae,lora模型进入应用文生图工作区调参区图生图 结语 前言 在这个信息爆炸的时代,AI技术正以前所未有的速度发展着。图…

微服务开发与实战Day07 - MQ高级篇

一、消息可靠性问题 首先,分析一下消息丢失的可能性有哪些。 消息从发送者发送消息,到消费者处理消息,需要经过的流程是这样的: 消息从生产者到消费者的每一步都可能导致消息丢失: 发送消息时丢失: 生产…

2024.6.17 刷题总结

2024.6.17 **每日一题** 522.最长特殊序列 Ⅱ,本题为前者的升级版,从两个字符串变成一个字符串序列了,所以我们需要依次枚举字符串来进行判断。先写一个判断两字符串是否相等的函数,然后枚举字符串逐个判断是否相等,若…

逆风破浪之中国半导体产业迈向全球舞台的坚实步伐

在科技飞速发展的今天,芯片技术已成为推动现代科技进步的核心动力。在这个全球芯片市场的激烈竞争中,中国作为“后来者”,不仅没有被淘汰,反而凭借惊人的发展潜力和创新能力,逐步崭露头角,成为全球芯片行业…

引调水设计乙级资质中技术负责人安排哪个专业?

引调水设计乙级资质中的技术负责人一般应具备与水利工程特别是引调水工程相关的专业背景。技术负责人通常需要满足以下条件: 大专以上学历;至少10年的设计工作经验;具有中级以上专业技术职称;在引调水工程方面具有至少2项项目设计…

Leetcode275 H指数II

题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以…

第二证券:新股“肉签”不断,今日两只申购!光伏巨头小伙伴来了

本周(6月17日—6月21日),A股商场将迎来两只新股,分别为沪市主板的永臻股份和创业板的爱迪特,均将于本周一进行申购。 资料显现,永臻股份是国内领先的铝合金光伏结构件制造商,公司发行价为23.35…

俄罗斯方块小游戏(附源码)

游戏展示 一.导包 import turtle import random 二.定义一个Block类 定义一个Block类,用于表示游戏中的方块,包含颜色和形状。 class Block:def __init__(self, color, tiles):self.color colorself.tiles tiles三.定义了7个不同的Block对象 定义了7…

docker通过容器id查看运行命令;Portainer监控管理docker容器

1、docker通过容器id查看运行命令 参考:https://blog.csdn.net/a772304419/article/details/138732138 docker inspect 运行镜像id“Cmd”: [ “–model”, “/qwen-7b”, “–port”, “10860”, “–max-model-len”, “4096”, “–trust-remote-code”, “–t…

C# Winform内嵌窗体(在主窗体上显示子窗体)

在开发Winform项目中,经常会要切换不同的窗体。通常程序都有一个主窗体,在切换窗体时往往需要关闭其他子窗体,这个实例就来介绍MDI主窗体内嵌子窗体的实现方法。 MDI主窗体要设置一个比较重要的属性,IsMdiContainertrue。子窗体的…

论文阅读——ApeGNN- Node-Wise Adaptive Aggregation in GNNs for Recommendation

ApeGNN: Node-Wise Adaptive Aggregation in GNNs for Recommendation ApeGNN:GNN 中的节点自适应聚合以进行推荐 Abstract 近年来,图神经网络(GNN)在推荐方面取得了长足的进步。基于 GNN 的推荐系统的核心机制是迭代聚合用户-…

ThinkPHP 的老漏洞仍然被攻击者钟情

研究人员发现安全领域出现了令人不安的趋势:攻击者不仅对新披露的漏洞十分感兴趣,对已知的漏洞也丝毫不放过,尽管有些漏洞已经存在了好些年头,攻击者仍然能够通过老漏洞成功完成攻击。 典型的例子就是 ThinkPHP 远程代码执行漏洞…

轨迹优化 | 图解欧氏距离场与梯度场算法(附ROS C++/Python实现)

目录 0 专栏介绍1 什么是距离场?2 欧氏距离场计算原理3 双线性插值与欧式梯度场4 仿真实现4.1 ROS C实现4.2 Python实现 0 专栏介绍 🔥课程设计、毕业设计、创新竞赛、学术研究必备!本专栏涉及更高阶的运动规划算法实战:曲线生成…

[Linux] Linux三剑客使用手册

一 作用 三者的功能都是处理文本,但侧重点各不相同。 grep更适合单纯的查找或匹配文本sed更适合编辑匹配到的文本awk功能最强大,但也最复杂。awk更适合格式化文本,对文本进行较复杂格式处理。 二 grep 2.1 命令格式 grep [option] patter…

深度学习之激活函数

激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。在神经元中,输入的input经过一系列加权求和后作用于另一个函数,这个函数就是这里的激活函数。 1. 为什么需要激活…

【odoo | SQL】odoo使用sql语句操作数据库

概要 Odoo的SQL指的是在Odoo框架内使用SQL语句直接操作数据库。这些操作通常是通过Odoo提供的数据库游标(self.env.cr)来执行的。虽然Odoo主要鼓励使用其ORM(对象关系映射)来进行数据库操作,因为ORM更安全、易维护且与…

深入解析:数据库连接池的必要性与优化策略

引言 在现代的应用程序架构中,数据库连接池已成为提升性能和资源管理的关键组件。想象一下,如果没有连接池,每次用户请求都需建立新的数据库连接,这将是多么低效且资源浪费的场景。本文将深入探讨数据库连接池的必要性&#xff0…

configs

configs 部分 python import os # 导入os模块,用于系统级操作 emotion ["Valence"] # 定义情绪列表,只包含情绪维度"Valence" # 配置参数字典 config { "extract_class_label": 1, # 是否提取类别标签 &q…

鸿蒙开发:【线程模型】

线程模型 线程类型 Stage模型下的线程主要有如下三类: 主线程 执行UI绘制。管理主线程的ArkTS引擎实例,使多个UIAbility组件能够运行在其之上。管理其他线程的ArkTS引擎实例,例如使用TaskPool(任务池)创建任务或取消…