windows - Hadoop start-all.cmd 命令:datanode 正在关闭
问题描述
我正在尝试在我的 Windows 10 中安装 hadoop
Hadoop start-all.cmd 命令成功启动 namenode 、 resourceManager 和 nodeManager 但 datanode 未启动
错误 ::
checker.StorageLocationChecker: Exception checking StorageLocation [DISK]file:/C:/hadoop-3.1.1/data/datanode
java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$POSIX.stat(Ljava/lang/String;)Lorg/apache/hadoop/io/nativeio/NativeIO$POSIX$Stat;
at org.apache.hadoop.io.nativeio.NativeIO$POSIX.stat(Native Method)
at org.apache.hadoop.io.nativeio.NativeIO$POSIX.getStat(NativeIO.java:455)
at org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.loadPermissionInfoByNativeIO(RawLocalFileSystem.java:796)
at org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.loadPermissionInfo(RawLocalFileSystem.java:710)
at org.apache.hadoop.fs.RawLocalFileSystem$DeprecatedRawLocalFileStatus.getPermission(RawLocalFileSystem.java:678)
at org.apache.hadoop.util.DiskChecker.mkdirsWithExistsAndPermissionCheck(DiskChecker.java:233)
at org.apache.hadoop.util.DiskChecker.checkDirInternal(DiskChecker.java:141)
at org.apache.hadoop.util.DiskChecker.checkDir(DiskChecker.java:116)
at org.apache.hadoop.hdfs.server.datanode.StorageLocation.check(StorageLocation.java:239)
at org.apache.hadoop.hdfs.server.datanode.StorageLocation.check(StorageLocation.java:52)
at org.apache.hadoop.hdfs.server.datanode.checker.ThrottledAsyncChecker$1.call(ThrottledAsyncChecker.java:142)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
2018-12-28 11:19:03,023 ERROR datanode.DataNode: Exception in secureMain
org.apache.hadoop.util.DiskChecker$DiskErrorException: Too many failed volumes - current valid volumes: 0, volumes configured: 1, volumes failed: 1, volume failures tolerated: 0
at org.apache.hadoop.hdfs.server.datanode.checker.StorageLocationChecker.check(StorageLocationChecker.java:220)
at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:2762)
at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:2677)
at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:2719)
at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:2863)
at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:2887)
2018-12-28 11:19:03,031 INFO util.ExitUtil: Exiting with status 1: org.apache.hadoop.util.DiskChecker$DiskErrorException: Too many failed volumes - current valid volumes: 0, volumes configured: 1, volumes failed: 1, volume failures tolerated: 0
2018-12-28 11:19:03,079 INFO datanode.DataNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at BHARTI/192.168.2.161
************************************************************/
解决方案
我正在发布对我有用的东西。在 etc/hadoop/core-site.xml 中保留以下配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
在 etc/hadoop/hdfs-site.xml 中保留以下配置
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///C:/hadoop-3.2.2/data/namenode</value> //Your path to namenode may be different
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>datanode</value>
</property>
</configuration>
现在hdfs namenode -format
在 bin 目录下运行命令,在 sbin 目录下运行start-dfs.cmd
。如果没有错误,Datanode 现在应该运行。
如果您无法上传文件,则需要更改权限。例如,假设您使用命令创建了一个名为 user 的目录hdfs dfs -mkdir user
。默认情况下,权限将为“drwxr-xr-x”。您需要使用命令更改它hdfs dfs -chmod 777 /user
。权限将设置为“drwxrwxrwx”。现在您可以上传和下载文件了。
推荐阅读
- postgresql - 试图允许远程访问 postgresql 总是超时过期
- python - django-rest-framework 中的通用关系序列化
- javascript - 关于验证确认密码和纯字母文本是否正确
- java - Spring&Hibernate:“字段列表”中的未知列,但列名匹配
- python - 使用 Selenium 查找元素,文本和类属性存在但无法找到元素?
- sql - Spring Data JPA Native Query - 如何使用 Postgres ARRAY 类型作为参数
- python - 为什么 Python Turtle 不响应我的运动输入?
- android - 在android上安装多个ttf字体文件
- karate - 如何在空手道中向 xml 文件添加元素/属性
- python - moduleNotFoundError:没有在 Visual Studio 代码中命名的模块