启动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格式化时会自动创建,如果预先创建反而会有问题。