当前位置: 首页 > 知识库问答 >
问题:

Hadoop:多用户的伪分布式模式

仲俊豪
2023-03-14

我很感激你事先的帮助。

我使用root用户凭据在伪分布式模式下设置了Hadoop。我想为多个用户(比如hadoop1、hadoop2等)提供访问权限,以便能够在这个集群上提交和运行MapReduce作业。我们怎么做?

到目前为止我做了什么?

> - Setup Hadoop to run in Pseudo-distributed mode
> - Used "root" user credentials to set this up.
> - Added users hadoop1 and hadoop2 to a group called "hadoop".
> - Added root also to be part of the group "hadoop".
> - Created a folder called hdfstmp and set this as the path for hadoop.tmp.dir.
> - Started the cluster using bin/start-all.sh
> - Ran MapReduce jobs using hadoop1 and hadoop2 users.

我得到了下面的错误:

Exception in thread "main" java.io.IOException: Permission denied
        at java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.io.File.createNewFile(File.java:1006)
        at java.io.File.createTempFile(File.java:1989)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:119)
  • 为了克服此错误,我授予组“hadoop”对文件夹hdfstmp的rwx权限。此文件夹上的权限类似于drwxrwxr-x。
  • 使用hadoop1和hadoop2用户登录提交了MapReduce作业。作业运行良好,没有任何错误。

但是,如果我执行stop-all.sh然后执行start-all.sh,DataNode(有时甚至NameNode)不会启动。当我检查日志时,我看到如下错误:

2013-09-21 16:43:54,518 WARN org.apache.hadoop.hdfs.server.datanode.datanode:dfs.data.dir中的目录无效:/data/hdfstmp/dfs/data的权限不正确,应为:rwxr-xr-x,实际为:rwxrwxr-x

现在,如果不更改hdfstmp目录的组所有权,不同用户提交的MR作业就不会运行。但是当NameNode重新启动时,我得到了上面的问题。

我如何克服这个问题?什么是相同的最佳实践?

另外,是否有一种方法可以监视不同用户提交的作业?我假设Web UI应该允许我这样做。请确认一下。

问候

共有1个答案

龙高歌
2023-03-14

添加专用Hadoop系统用户

我们将使用一个专用的Hadoop用户帐户来运行Hadoop。虽然这不是必需的,但还是推荐的,因为它有助于将Hadoop安装与运行在同一台机器上的其他软件应用程序和用户帐户分开(想想:安全性、权限、备份等)。

#addgroup hadoop
#adduser --ingroup hadoop hadoop1
#adduser --ingroup hadoop hadoop2

这将把用户hduser和组hadoop添加到本地计算机。

chown -R hduser:hadoop hadoop
#mkdir -p /app/hadoop/tmp
#chown hduser:hadoop /app/hadoop/tmp

如果你想加强安全,chmod从755降至750...

#chmod 750 /app/hadoop/tmp
 类似资料:
  • 大佬可以帮忙看看怎么解决这个问题吗这个是hadoop伪分布式集群环境搭建出现的

  • 一 JDK的安装 下载JDK安装包,建议去Oracle官方下载,地址自行百度 下载Hadoop2.6的安装包,建议官方下载,地址自行百度 如果是在Windows端进行终端操作,建议使用XFTP与XShell,有Free版本 之后用XFTP将JDK安装包与Hadoop安装包上传到实验主机上 将Java SDK解压,并将解压文件复制到/usr/lib/jvm中 配置环境变量 如果系统中已经有默认的Op

  • 我尝试使用hadoop作为分布式模式,并且我进行了设置,但是发生了一个错误。我将在下面描述安装过程: 0/etc/hosts 已安装的软件包 获取hadoop 0/etc/hadoop/core-site.xml 0/etc/hadoop/hdfs-site.xml 0/etc/hadoop/mapred-site.xml 主服务器是 节点服务器是 然后我尝试使用这个命令 结果如下: 0node1

  • 我无法在hadoop fs-ls/命令上查看HDFS中的文件,我想这是因为name节点没有运行。我尝试了格式化namenode,并将core-site.xml中的端口更改为不同的值,但我的JPS没有列出namenode。 下面是这些文件:1)core-site.xml 3)mapred-site.xml JPS输出为: 21043作业跟踪器 20839数据阳极

  • 本文向大家介绍Hadoop 2.x伪分布式环境搭建详细步骤,包括了Hadoop 2.x伪分布式环境搭建详细步骤的使用技巧和注意事项,需要的朋友参考一下 本文以图文结合的方式详细介绍了Hadoop 2.x伪分布式环境搭建的全过程,供大家参考,具体内容如下 1、修改hadoop-env.sh、yarn-env.sh、mapred-env.sh 方法:使用notepad++(beifeng用户)打开这三

  • 我已经在ubuntu上安装了hadoop,它运行在VirtualBox上。当我第一次安装hadoop时,我可以毫无问题地启动hdfs和创建目录。 但是当我重新启动虚拟机后,当尝试在HDFS上运行ls命令时,我得到了“拒绝连接”的错误。然后,我根据Hadoop集群设置在sshd_config中添加了“端口9000”-java.net.connectException:Connection Relec