启动hadoop时常见错误

本文解决了Hadoop启动时遇到的JAVA_HOME未设置问题及hadoop fs -ls /命令提示连接重试错误。通过调整环境变量与配置文件,确保Hadoop能够正确启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

启动hadoop时错误 。
(1) ./start-all.sh   提示  :JAVA_HOME is not set

解决这个问题的思路如此:

JAVA_HOME is not set  指的是找不到java_home
可以用java -version  看一下如果 ,可以出来java的有关版本问题说明 本地的环境变量是没有问题的。
那么还报 JAVA_HOME  is not set  这个问题出在哪儿了 。既然本地的环境变量没有问题。那么就有可能出在
在hadoop conf 文件夹下的xml配置出了问题

看了一下 conf 下的 hadoop-env.sh 文件
export  JAVA_HOME=C:\Program Files\Java\jdk1.6.0_05

貌似是没有问题的。我用 echo $JAVA_HOME   打印出来的是  C:\Program
也就是说,hadoop 中的JAVA_HOME 没有被识别。然后我又用
export  JAVA_HOME=C:\Program Files\Java\jdk1.6.0_05 命令 。提示‘Files\Java\jdk1.6.0_05  ’   not a valid identifier

问题找出来了 也就是说 Program Files 带空格的这个路径 不认识。 所以 我就把jdk重新装了一下。路径改了一下。 测试后OK 
一切顺利 。hadoop 启动成功。


这是上述容易出现的问题。如果这两个地方都没问题,还报这个错的话。 建议你检查一下你有没有犯一个巨2的问题
 hadoop-env.sh  文件里的配置注释符#没有去掉

 

下边这种方法是我从网上找到了 试了一下也可以的。

在Cygwin上配置Hadoop的Java_home,首先到了${HADOOP_HOME}的conf目录下,修改hadoop-env.sh文件。主要分为如下几步:

1. 找到JAVA_HOME,修改JAVA_HOME的路径指向你本机安装的Jdk路径。注意,这里的路径不能以window的路径出现,应该用unix的形式出现,例如c:\Program Files\Java\jdk1.6.0,应该写成/cygdrive/c/Program Files/Java/jdk1.6.0.而且,还有一点要注意的是,如果路径有空格,如Program Files间的空格,则应该将路径用双引号括起("/cygdrive/c/Program Files/Java/jdk1.6.0")。

2. 修改完hadoop-env.sh文件后,如果马上启动Hadoop,仍会报错,出现“/bin/java: No such file or directoryva/jdk1.6.0_10 ”的错误。经过上网查证,发现是dos环境与Unix的字符编码的问题,可以用dos2unix来实现 DOS <=> UNIX text file 转换。所以切换到conf目录下,对hadoop-env.sh进行Unix文本转化:dos2unix hadoop-env.sh.如此就可以正常启动Hadoop了!

 


(2)./hadoop fs -ls /   提示INFO ipc.Client: Retrying connect to server: 10.142.111.60:9000
hadoop安装完成后,必须要用haddop namenode format格式化后,才能使用,如果重启机器
在启动hadoop后,用hadoop fs -ls命令老是报 10/09/25 18:35:29 INFO ipc.Client: Retrying connect to server: 10.142.111.60:9000. Already tried 0 time(s).的错误,
用jps命令,也看不不到namenode的进程, 必须再用命令hadoop namenode format格式化后,才能再使用
    原因是:hadoop默认配置是把一些tmp文件放在/tmp目录下,重启系统后,tmp目录下的东西被清除,所以报错
    解决方法:在conf/core-site.xml (0.19.2版本的为conf/hadoop-site.xml)中增加以下内容
   <property>
   <name>hadoop.tmp.dir</name>
   <value>/var/log/hadoop/tmp</value>
  <description>A base for other temporary directories</description>
  </property>
  重启hadoop后,格式化namenode即可  ./hadoop namenode -format
方案2
c.Client: Retrying connect to server错误解决方案
运行Hadoop: The Definitive Guide 2nd Ediction第51页的例子里面的例子出现了如下错误:
* 12/01/10 16:29:32 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 0 time(s).
* 12/01/10 16:29:33 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 1 time(s).
* 12/01/10 16:29:34 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 2 time(s).
* 12/01/10 16:29:35 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 3 time(s).
* 12/01/10 16:29:36 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 4 time(s).
* 12/01/10 16:29:37 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 5 time(s).
* 12/01/10 16:29:38 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 6 time(s).
* 12/01/10 16:29:39 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 7 time(s).
* 12/01/10 16:29:40 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 8 time(s).
* 12/01/10 16:29:41 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 9 time(s).
解决方案:
在命令行使用ifconfig查看本机IP,然后进入conf/core-site.xml将hdfs://localhost:9000改为hdfs://你的IP地址:9000
<?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://192.168.1.101:9000</value>
     </property>
</configuration>

 

方案3:

  1. <?xml version="1.0"?>  
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  3.   
  4. <!-- Put site-specific property overrides in this file. -->  
  5.   
  6. <configuration>  
  7.   
  8. <property>  
  9.          <name>fs.default.name</name>  
  10.          <value>hdfs://127.0.0.1:9000</value>  
  11.      </property>  
  12.   
  13. <property>  
  14.     <name>hadoop.tmp.dir</name>  
  15.     <value>/home/hadoopdata/tmp</value>  
  16.     <description>A base for other temporary directories.</description>  
  17. </property>  
  18.    
  19. <property>  
  20.     <name>dfs.name.dir</name>  
  21.     <value>/home/hadoopdata/filesystem/name</value>  
  22.     <description>Determines where on the local filesystem the DFS name node should store the name table. If this is a comma-delimited list of directories then the name table is replicated in all of the directories, for redundancy. </description>  
  23. </property>  
  24.    
  25. <property>  
  26.     <name>dfs.data.dir</name>  
  27.     <value>/home/hadoopdata/filesystem/data</value>  
  28.     <description>Determines where on the local filesystem an DFS data node should store its blocks. If this is a comma-delimited list of directories, then data will be stored in all named directories, typically on different devices. Directories that do not exist are ignored.</description>  
  29. </property>  
  30.    
  31. <property>  
  32.     <name>dfs.replication</name>  
  33.     <value>1</value>  
  34.     <description>Default block replication. The actual number of replications can be specified when the file is created. The default isused if replication is not specified in create time.</description>  
  35. </property>  
  36.   
  37. </configuration>  

dfs.name.dir是NameNode持久存储名字空间及事务日志的本地文件系统路径。当这个值是一个逗号分割的目录列表时,nametable数据将会被复制到所有目录中做冗余备份。

dfs.data.dir是DataNode存放块数据的本地文件系统路径,逗号分割的列表。当这个值是逗号分割的目录列表时,数据将被存储在所有目录下,通常分布在不同设备上。

dfs.replication是数据需要备份的数量,默认是3,如果此数大于集群的机器数会出错。

注意:此处的name1、name2、data1、data2目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值