最近尝试在Windows环境下安装了Hadoop,遇到一些困难,在此记录一下以备忘。
1. 安装JDK。
① 默认JDK会安装在C:\Program Files下面,但是由于Cygwin在处理有空格的路径有问题,所以需要把JDK安装在例如D:\Java这样的目录中。另一种解决办法就是在Cygwin中设置一个link,例如2. 安装Cygwin。
$ ln -s /cygdrive/C/Program\ Files/Java/jdk1.6.0_20 /usr/local/jdk1.6.0_20
② 需要设置JAVA_HOME。
① 安装时需要选中openssh。(我还选择了openssl,安装好后觉得可能不需要安装openssl)3. 安装Hadoop。
② 需要安装sshd服务。安装方法是在Cygwin中输入ssh-host-config命令。
中间提示Should privilege separation be used?时,选择no。最后出现Have fun!提示。
③ 需要生成ssh的key-pair。我使用了Hadoop Quick Start中的方法,
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
④ 测试ssh是否好使,
$ ssh localhost
$ who
如果显示终端已经登录 mongoose tty0 2010-07-07 … 这样的字样的话,表示ssh运行成功。
① 如果在Windows下直接下载Hadoop,并解压缩的话,我尝试过只有部分文件可以正常释放;所以我采用在Cygwin的环境下释放。4. 启动Hadoop。
$ tar –gxvf hadoop-0.20.2.tar.gz
如果是tar文件的话,tar –xvf hadoop-0.20.2.tar。
② 修改conf/hadoop-env.sh。
export JAVA_HOME=/cygdrive/D/Java/jdk1.6.0_20
③ 修改conf/core-site.xml、mapred-site.xml、hdfs-site.xml。
我采用《Hadoop开发者》中的办法把src下面的default文件拷贝过来的办法。
core-site.xml中的fs.default.name改为hdfs://127.0.0.1:8888。
其实原本的files:///也是可以运行的。但是那样的话,就不能运用HDFS了。
另外,如果写作hdfs://localhost:8888可能是有问题的,在Cygwin中对localhost可能会不识别。
mapred-sit.xml中的mapred.job.tracker改为127.0.0.1:9999。
① 首先需要登录到主机,即启动之前输入ssh localhost。如果不这样做的话,好像会有问题。
② ./start-all.sh启动。
启动的Log会被放到logs目录中,要看一下,确保启动过程中没有异常发生。
我启动的时候就发生了异常,是因为我使用了Hadoop Quick Start中说的格式化命令./hadoop namenode -format。现在感觉可能不这么做也行。
③ 如果没有异常的话,可以查看HDFS系统是否运行正常。
$ ./hadoop fs –ls /
应该显示HDFS系统中的文件结构。另外,可以通过网页访问系统查看系统状态,
分布式存储系统 http://localhost:50070/
任务调度系统 http://localhost:50030/