gpt4 book ai didi

ubuntu - java.io.IOException : All directories in dfs. datanode.data.dir 无效

转载 作者:可可西里 更新时间:2023-11-01 15:04:01 25 4
gpt4 key购买 nike

我试图让 hadoop 和 hive 在我的 linux 系统上本地运行,但是当我运行 jps 时,我注意到数据节点服务丢失了:

vaughn@vaughn-notebook:/usr/local/hadoop$ jps
2209 NameNode
2682 ResourceManager
3084 Jps
2510 SecondaryNameNode

如果我运行 bin/hadoop datanode,会出现以下错误:

    17/07/13 19:40:14 INFO datanode.DataNode: registered UNIX signal handlers for [TERM, HUP, INT]
17/07/13 19:40:14 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/07/13 19:40:15 WARN datanode.DataNode: Invalid dfs.datanode.data.dir /home/cloudera/hdata/dfs/data :
ExitCodeException exitCode=1: chmod: changing permissions of '/home/cloudera/hdata/dfs/data': Operation not permitted

at org.apache.hadoop.util.Shell.runCommand(Shell.java:559)
at org.apache.hadoop.util.Shell.run(Shell.java:476)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:723)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:812)
at org.apache.hadoop.util.Shell.execCommand(Shell.java:795)
at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:646)
at org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:479)
at org.apache.hadoop.util.DiskChecker.mkdirsWithExistsAndPermissionCheck(DiskChecker.java:140)
at org.apache.hadoop.util.DiskChecker.checkDir(DiskChecker.java:156)
at org.apache.hadoop.hdfs.server.datanode.DataNode$DataNodeDiskChecker.checkDir(DataNode.java:2285)
at org.apache.hadoop.hdfs.server.datanode.DataNode.checkStorageLocations(DataNode.java:2327)
at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:2309)
at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:2201)
at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:2248)
at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2424)
at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2448)
17/07/13 19:40:15 FATAL datanode.DataNode: Exception in secureMain
java.io.IOException: All directories in dfs.datanode.data.dir are invalid: "/home/cloudera/hdata/dfs/data/"
at org.apache.hadoop.hdfs.server.datanode.DataNode.checkStorageLocations(DataNode.java:2336)
at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:2309)
at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:2201)
at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:2248)
at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2424)
at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2448)
17/07/13 19:40:15 INFO util.ExitUtil: Exiting with status 1
17/07/13 19:40:15 INFO datanode.DataNode: SHUTDOWN_MSG:
/************************************************************

SHUTDOWN_MSG: Shutting down DataNode at vaughn-notebook/127.0.1.1

那个目录看起来很不寻常,但我不认为它在技术上有什么问题。以下是目录的权限:

vaughn@vaughn-notebook:/usr/local/hadoop$ ls -ld /home/cloudera/hdata/dfs/data
drwxrwxrwx 2 root root 4096 Jul 13 19:14 /home/cloudera/hdata/dfs/data

我还删除了 tmp 文件夹中的所有内容并格式化了 hdfs 名称节点。这是我的 hdfs 站点文件:

<configuration>

<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.
The actual number of replications can be specified when the file is created.
The default is used if replication is not specified in create time.
</description>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/cloudera/hdata/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/cloudera/hdata/dfs/data</value>
</property>

</configuration>

还有我的核心站点文件:

<configuration>

<property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/cloudera/hdata</value>
</property>

</configuration>

在我的谷歌搜索中,我看到有人建议运行“sudo chown hduser:hadoop -R/usr/local/hadoop_store”,但是当我这样做时,我收到错误“chown: invalid user: 'hduser:hadoop' ”。我必须创建这个用户和组吗?我不是很熟悉这个过程。在此先感谢您的帮助。

最佳答案

1.sudo chown vaughn:hadoop -R/usr/local/hadoop_store

其中 hadoop 是组名。使用

grep vaughn /etc/group

在您的终端中查看您的群组名称。

2.清理临时目录。

3.格式化名称节点。

希望这对您有所帮助。

关于ubuntu - java.io.IOException : All directories in dfs. datanode.data.dir 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45092670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com