hadoop-namenode配置及问题处理方案

第一步:修改core-site.xml,配置如下内容:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://localhost:9000</value>

<final>true</final>

</property>

 

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

 

第二步:修改hdfs-site.xml文件,配置如下内容:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>
 <name>dfs.name.dir</name>
 <value>/wen/hadoop/working/name</value>
 <final>true</final>
</property>

<property>
 <name>dfs.data.dir</name>
 <value>/wen/hadoop/working/data</value>
 <final>true</final>
</property>

<property>
 <name>fs.checkpoint.dir</name>
 <value>/wen/hadoop/working/checkpoint</value>
 <final>true</final>
</property>

</configuration>

第三步:修改mapred-site.xml配置如下内容:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

<property>
 <name>mapred.job.tracker</name>
 <value>hdfs://localhost:9001</value>
 <final>true</final>
</property>

<property>
 <name>mapred.local.dir</name>
 <value>/wen/working/dir1,/wen/hadoop/working/dir2</value>
 <final>true</final>
</property>

<property>
 <name>mapred.system.dir</name>
 <value>/wen/hadoop/working/system</value>
 <final>true</final>
</property>

</configuration>

 

第4步,进入cygwin客户端,执行

$ cd /wen/hadoop 【其中/d/hadoop 为hadoop安装目录】

$ bin/hadoop namenode –format 【格式化namenode】

第5步,修改工作目录权限

$ bin/hadoop dfs chmod 777 /wen/hadoop/working 【/wen/hadoop/working 为工作目录,默认是tmp】


第6步,启动hadoop

$ bin/start-all.sh 
$ ps –ef
通过ps查看进程,能看到5个java进程,即成功。


 

常见问题

(1)

执行 $ bin/hadoop start-all.sh之后,无法启动,在logs的namenode日志发现如下内容:

2011-08-03 08:43:08,068 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: java.lang.NullPointerException
 at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:136)
 at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:176)
 at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:206)
 at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:240)
 at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:434)
 at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1153)
 at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1162)

解决方法:此时是没有配置conf/mapred-site.xml的缘故. 配置core-site.xml文件

 <property>

<name>fs.default.name</name>

<value>hdfs://localhost:9000</value>

<final>true</final>

</property>

配置mapred-site.xml文件:

<property>

<name>mapred.job.tracker</name>

<value>hdfs://localhost:9001</value>
<final>true</final>
</property>

 

(2)执行 hadoop fs -ls
     显示结果:ls: Cannot access .: No such file or directory.

这是这个目录为空所致。执行

     hadoop fs -ls /

可以看到有一条结果。执行hadoop fs -mkdir hello 其中hello为文件夹名字,再执行ls命令,即可看到结果。

 

(3) TaskTracker无法启动,在logs中查看tasktracker日志,出现如下错误:

2011-08-03 08:46:45,750 ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Failed to set permissions of path: /wen/hadoop/working/dir1/ttprivate to 0700
 at org.apache.hadoop.fs.RawLocalFileSystem.checkReturnValue(RawLocalFileSystem.java:525)
 at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:499)
 at org.apache.hadoop.fs.RawLocalFileSystem.mkdirs(RawLocalFileSystem.java:318)
 at org.apache.hadoop.fs.FilterFileSystem.mkdirs(FilterFileSystem.java:183)
 at org.apache.hadoop.mapred.TaskTracker.initialize(TaskTracker.java:635)
 at org.apache.hadoop.mapred.TaskTracker.<init>(TaskTracker.java:1328)
 at org.apache.hadoop.mapred.TaskTracker.main(TaskTracker.java:3430)

解决方式:1.确认hadoop的版本,在0.20.203版本上有这个bug,切换会0.20.2版本;2. 执行第5步,授权

 

转载于:https://www.cnblogs.com/itgg168/archive/2012/11/24/2785631.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果Hadoop的NameNode无法启动,可能有多种原因导致。以下是一些可能的解决方案: 1. 检查配置文件:请确保Hadoop配置文件中的参数已正确设置,特别是fs.defaultFS和dfs.namenode.name.dir参数是否正确设置。 2. 检查磁盘空间:请确保NameNode所在的磁盘有足够的可用空间。 3. 检查端口号:请确保没有其他进程在使用NameNode所需的端口号。 4. 检查日志:请查看NameNode日志,以确定出现了什么错误,然后根据错误信息来调整配置和操作。 5. 删除临时文件:尝试删除dfs.namenode.name.dir目录下的所有临时文件,然后重新启动NameNode。 希望这些解决方案对你有所帮助。如果问题仍然存在,请提供更多细节,以便我们能够更好地帮助你解决问题。 ### 回答2: Hadoop的NameNodeHadoop分布式文件系统(HDFS)的关键组件之一,它负责管理整个系统的文件目录结构和元数据,并监控数据节点的状态。当NameNode无法启动时,可能会导致整个Hadoop集群无法正常工作。 NameNode启动失败可能是由于以下几个常见原因: 1. 配置问题:首先需要检查Hadoop配置文件是否正确配置。确保 namenode 配置文件中的文件路径是正确且存在的。还需要确保Hadoop集群的各个组件的配置文件一致,特别是 core-site.xml 和 hdfs-site.xml。 2. 资源问题:NameNode可能因为机器资源不足而无法启动。这包括内存、磁盘空间和CPU等资源。确保服务器有足够的资源来运行NameNode。 3. 数据完整性问题:如果NameNode之前的关闭是非正常的,可能会导致数据损坏或元数据不一致。在这种情况下,可能需要修复文件系统的一致性。可以尝试在启动NameNode之前运行fsck命令来检查和修复数据节点中的错误。 4. 端口冲突:检查是否有其他服务在使用NameNode默认的端口(例如,50070和9000)。如果是这样,可以尝试更改端口来解决冲突。 5. 日志检查:定位问题的另一种方法是检查NameNode的日志文件。日志文件中通常会提供有关启动失败的详细错误信息。根据错误信息,可以尝试解决问题或进一步排查。 如果上述方法都无法解决问题,建议搜索相关问题的解决方案。也可以向Hadoop社区的论坛或邮件列表寻求帮助,与其他有经验的用户交流,并尽快找到问题的解决办法,以确保Hadoop集群的正常运行。 ### 回答3: Hadoop的NameNode启动不了可能有多种原因。 首先,可能是由于配置文件错误导致NameNode无法启动。我们可以检查hadoop配置文件中的namenode相关参数是否正确,包括文件路径、端口号等。确保配置文件中的参数与实际环境一致。 其次,可能是由于硬件或操作系统问题导致NameNode无法正常启动。我们可以检查系统的内存和磁盘空间是否足够,以及文件权限是否正确设置。 此外,可能是由于网络问题导致NameNode无法启动。我们可以检查网络配置是否正确,并尝试使用ping命令检查与其他节点的连通性。 如果以上方法都无法解决问题,我们可以查看hadoop日志文件以获取更详细的错误信息。日志文件通常位于hadoop安装目录下的logs文件夹中,其中包含有关启动失败的详细错误信息,可用于进一步排查问题。 最后,如果问题仍然无法解决,我们可以在hadoop社区或论坛上提问,向其他有经验的用户或开发人员寻求帮助。他们可能能够提供更专业的建议和解决方案

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值