Zxing_Piao 2023-07-26 01:20 采纳率: 50%
浏览 2
已结题

HDFS可以用hadoop用户启动是内部默认的吗?

最近学习Hadoop过程中发现
把hadoop文件夹的权限给hadoop用户可以启动集群
给root用户却不能启动(ps:需要在配置文件中额外设置)
请问这是Hadoop内部默认名为hadoop的用户可以启动的原因吗

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-26 04:14
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7623869
    • 这篇博客你也可以参考下:HDFS文件系统基本操作-Hadoop实践
    • 您还可以看一下 冯文凯老师的大数据HDFS详解课程中的 hadoop介绍小节, 巩固相关知识点
    • 除此之外, 这篇博客: Hadoop中的HDFS学习总结中的 HDFS文件读写流程(博主前面写了一篇,点超链接吧) 部分也许能够解决你的问题。
    • 以下回答由chatgpt基于相关博客总结生成:

      回答:

      在Hadoop的设计中,默认情况下确实使用名为"hadoop"的用户来启动集群。

      Hadoop在启动过程中需要访问操作系统的一些资源和文件,这些资源和文件通常会设置限制只能由特定的用户进行访问。如果使用"hadoop"用户启动集群,Hadoop就能够获取到这些限制资源的正确访问权限,从而成功启动集群。

      如果你将Hadoop文件夹的权限赋予了"root"用户,则root用户会拥有所有的系统权限,包括访问操作系统资源和文件的权限。虽然这样看似允许了所有的访问,但实际上Hadoop是有专门的安全机制的,它会通过配置文件的方式来限制某些操作。因此,如果你将权限赋予"root"用户,必须通过配置文件来设置Hadoop能够使用"root"用户进行操作。

      具体解决方案是修改Hadoop配置文件(比如core-site.xml、hdfs-site.xml等)中的相关配置项来指定使用的用户。以HDFS为例,在hdfs-site.xml中,你可以在"Property"标签中添加以下配置项:

      <property>
        <name>hadoop.tmp.dir</name>
        <value>/tmp/hadoop-${user.name}</value>
      </property>
      

      其中,user.name是Hadoop内置的一个系统变量,用于获取当前用户的名称。通过在配置项中使用${user.name},可以使Hadoop在启动过程中自动使用当前登录用户进行操作。

      请注意,修改配置文件后需要重新启动Hadoop集群才能生效。

      如果你不确定如何修改配置文件,请提供你使用的Hadoop版本和具体的配置文件,我可以给你提供更具体的代码示例。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月3日
  • 已采纳回答 7月26日
  • 创建了问题 7月26日

悬赏问题

  • ¥15 idea 编辑语言的选择
  • ¥15 Windows下部署Asmjit
  • ¥15 请问双层规划模型的上下层目标函数不一致,是如何保证迭代收敛性的
  • ¥15 微信小程序 前端页面内容搜索
  • ¥15 cpu是如何判断当前指令已经执行完毕,然后去执行下条指令的
  • ¥15 安装visual studio2022时visualstudiosetup启动不了,闪退。问题代号0x0和0x1389
  • ¥30 java spring boot2.5.3版本websocket连不上
  • ¥15 angular js调外部链接查看pdf
  • ¥15 openFOAM DPMFoam
  • ¥15 将查询到的值,赋值到table指定行中