hadoop伪分布式模式-datanode和tasktracker未启动

kcwpcxri  于 2021-06-04  发布在  Hadoop
关注(0)|答案(3)|浏览(428)

我正在运行一个red hat enterprise linux server 6.4版(santiago)发行版,上面安装了hadoop 1.1.2。我已经做了必要的配置来启用伪分布式模式。但是在尝试运行hadoop时,datanode和tasktracker不会启动。
我无法将任何文件复制到hdfs。

  1. [hduser@is-joshbloom-hadoop hadoop]$ hadoop dfs -put README.txt /input
  2. Warning: $HADOOP_HOME is deprecated.
  3. 13/05/23 16:42:00 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /input could only be replicated to 0 nodes, instead of 1

也是在尝试之后 hadoop-daemon.sh start datanode 我得到的信息是:

  1. starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-hduser-datanode-is-joshbloom-hadoop.out

tasktracker也是如此。但是当我对namenode,secondarynamenode,jobtracker尝试相同的命令时,它们似乎正在运行。

  1. namenode running as process 32933. Stop it first.

我尝试了以下解决方案:
重新格式化namenode
重新安装hadoop
安装不同版本的hadoop(1.0.4)
似乎都没用。我在mac和amazon ubuntu vm上都遵循了相同的安装步骤,效果非常好。
如何让hadoop工作?谢谢!

  • 更新**

这是namenode的日志条目

  1. 2013-05-23 16:27:44,087 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG:
  2. /************************************************************
  3. STARTUP_MSG: Starting DataNode
  4. STARTUP_MSG: host = java.net.UnknownHostException: is-joshbloom-hadoop: is-joshbloom-hadoop
  5. STARTUP_MSG: args = []
  6. STARTUP_MSG: version = 1.1.2
  7. STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.1 -r 1440782; compiled by 'hortonfo' on Thu Jan 31 02:03:24 UTC 2013
  8. ************************************************************/
  9. 2013-05-23 16:27:44,382 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
  10. 2013-05-23 16:27:44,432 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered.
  11. 2013-05-23 16:27:44,446 ERROR org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Error getting localhost name. Using 'localhost'...
  12. java.net.UnknownHostException: is-joshbloom-hadoop: is-joshbloom-hadoop
  13. at java.net.InetAddress.getLocalHost(InetAddress.java:1438)
  14. at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.getHostname(MetricsSystemImpl.java:463)
  15. at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configureSystem(MetricsSystemImpl.java:394)
  16. at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.configure(MetricsSystemImpl.java:390)
  17. at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.start(MetricsSystemImpl.java:152)
  18. at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.init(MetricsSystemImpl.java:133)
  19. at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.init(DefaultMetricsSystem.java:40)
  20. at org.apache.hadoop.metrics2.lib.DefaultMetricsSystem.initialize(DefaultMetricsSystem.java:50)
  21. at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1589)
  22. at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1608)
  23. at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1734)
  24. at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1751)
  25. Caused by: java.net.UnknownHostException: is-joshbloom-hadoop
  26. at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
  27. at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866)
  28. at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258)
  29. at java.net.InetAddress.getLocalHost(InetAddress.java:1434)
  30. ... 11 more
  31. 2013-05-23 16:27:44,453 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
  32. 2013-05-23 16:27:44,453 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started
  33. 2013-05-23 16:27:44,768 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source ugi registered.
  34. 2013-05-23 16:27:44,914 INFO org.apache.hadoop.util.NativeCodeLoader: Loaded the native-hadoop library
  35. 2013-05-23 16:27:45,212 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.net.UnknownHostException: is-joshbloom-hadoop: is-joshbloom-hadoop
  36. at java.net.InetAddress.getLocalHost(InetAddress.java:1438)
  37. at org.apache.hadoop.security.SecurityUtil.getLocalHostName(SecurityUtil.java:271)
  38. at org.apache.hadoop.security.SecurityUtil.login(SecurityUtil.java:289)
  39. at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:301)
  40. at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1651)
  41. at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1590)
  42. at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1608)
  43. at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1734)
  44. at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1751)
  45. Caused by: java.net.UnknownHostException: is-joshbloom-hadoop
  46. at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
  47. at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866)
  48. at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258)
  49. at java.net.InetAddress.getLocalHost(InetAddress.java:1434)
  50. ... 8 more
  51. 2013-05-23 16:27:45,228 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:
  52. /************************************************************
  53. SHUTDOWN_MSG: Shutting down DataNode at java.net.UnknownHostException: is-joshbloom-hadoop: is-joshbloom-hadoop
  54. ************************************************************/
  • 更新***

的内容 /etc/hosts ```
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

olmpazwi

olmpazwi1#

问题似乎是conf/slaves下的slaves文件中什么都没有。
检查conf/slaves中的slaves文件。删除所有内容并在该文件中添加localhost。删除hdfs-site.xml下dfs.name.dir和dfs.data.dir属性中提到的名称和数据目录。
格式化hdfs文件系统,然后再次启动守护进程。

pqwbnv8z

pqwbnv8z2#

修改你的 /etc/hosts 要包含主机名环回Map,请执行以下操作:

  1. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  2. 127.0.1.1 is-joshbloom-hadoop
  3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

您的问题是您的计算机不知道如何解析主机名 is-joshbloom-hadoop 到特定的ip地址。通常有两个位置/方法进行解析-通过dns服务器或使用本地主机文件(主机文件优先)。
上面对hosts文件的修改允许您解析计算机名 is-joshbloom-hadoop 到ip地址 127.0.1.1 . 操作系统具有该范围的内部环回地址 127.0.0.0/8 ,所以你可以说出这里的任何地址。在我的ubuntu笔记本电脑上,它使用 127.0.1.1 我确信它在操作系统之间会发生变化,但我猜是因为不使用 127.0.0.1 如果将来更改机器名,则不必在localhost行中搜索它。

8ulbf1ek

8ulbf1ek3#

检查hadoop\u home/conf中的core-site.xml。它将具有fs.default.name属性。它应该具有在/etc/hosts中指定的主机名。/etc/hosts中没有“is hadoop”主机名。请改用localhost

  1. <property>
  2. <name>fs.default.name</name>
  3. <value>hdfs://localhost:54310</value>
  4. </property>
  5. </configuration>

相关问题