在Windows下部署hadoop前,都需要安装cygwin软件,那么我们先来看一下,如何安装和配置cygwin
一、cygwin的安装与配置
1、什么是cygwin
cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。
2、cygwin的安装
(1)下载安装程序,下载地址为: http://www.cygwin.com/setup.exe
(2)选择必须安装的包,根据实践有如下包必须选择安 装,否则很可能cygwin安装失败!
Net Category下的OpenSSL,OpenSSH;
Base Category下的sed;
Editors Category下的vim,Emacs;
Devel Category下的subversion,binutils,gcc,gcc-mingw,gdb
(3)点击下一步。一直到完成
说明:虽然cygwin提供在线安装,个人建议先 完全下载到本地,再进行安装,因为在线安装会出现许多莫名奇妙的问题。
2、cygwin的配置
(1)配置环境变量
CLASSPATH= .;C:\Java\jdk1.6.0_11\lib\dt.jar;C:\Java\jdk1.6.0_11\lib\tools.jar
CYGWIN=ntsec;
JAVA_HOME=C:\Java\JDK1.6.0_11;C:\Java\jre6;
在PATH环境变量中加入如下路径C:\cygwin\bin;C:\cygwin\usr\i686-pc-cygwin\bin;C:\Java\jdk1.6.0_11\bin;
(2)安装sshd服务
启动cygwin输入命令:ssh-host-config;
根据提示进行相应的操作直至安装完成,安装成功后立即启动名称为“CYGWIN sshd”的服务。
(3)配置ssh登录
执行ssh-keygen命令,然后根据提示按三次回车键,最后输入如下命令:
cd ~/.ssh/;
cp id_rsa.pub authorized_keys
至此,cygwin的安装与配置成功,你可以享受cygwin带来的乐趣。
二、hadoop多节点的安装与部署
1、下载hadoop;
本实验用的版本是:hadoop-0.20.1;
2、外部配置
选中一台机子做为jobTracker,namenode, datanode这个机子为master,这个机器的ip设置为192.168.1.140。另外两台做datanode,TaskTracker为slave,这个机器的ip为192.168.1.141,192.168.1.142
3、为了实现无密码登录ssh服务器,在master机器cygwin的控制台中输入如下命令:
cd ~/.ssh;
chmod 600 authorized_keys;
scp authorized_keys Administrator@192.168.1.141:~/.ssh/ authorized_keys;
scp authorized_keys Administrator@192.168.1.142:~/.ssh/ authorized_keys;
假如是所用的客户端计算机是第一次登陆SSH服务器,命令行中会提示“Are you sure you want to continue connecting (yes/no) ?”,只要输入yes即可,SSH服务器会自动将这次的登陆信息存储在/.ssh/known_host文件中。当显示“Fanfare!!! You are successfully logged in to this server!!!”时,说明已经成功登陆到ssh服务器计算机内了,需要注重的是,此时在当前控制台内输入的命令都将在ssh服务器计算机里运行。
4、master机器Hadoop机器环境部署:
(1)将安装包解压到F:\hadoop\run中;
(2)修改conf目录下的hadoop-env.sh
export JAVA_HOME="/cygdrive/c/Java/jdk1.6.0_11"
(3)修改conf目录下的core-site.xml;
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.1.140:9000<value>
......................................
(4)修改conf目录下的hdfs-site.xml;
<property>
<name>dfs.datanode.handler.count</name>
<value>1<value>
......................................
<property>
<name>dfs.replication</name>
<value>1<value>
......................................
(5)修改conf目录下的mapred-site.xml
<property>
<name>mapred.job.tracker</name>
<value>192.168.1.140:9001<value>
......................................
(6)修改conf目录下的masters文件
输入192.168.1.140
(7)修改conf目录下的slaves文件
输入:192.168.1.140
192.168.1.141
192.168.1.142
(7)配置hadoop在cygwin中的环境
用vi打开/etc/profile文件,在文件的末尾追加如下代码:
export HADOOP_HOME=/cygdrive/f/hadoop/run
export PATH=$PATH:$HADOOP_HOME/bin
(8)格式化一个新的分布式文件系统
cd $HADOOP_HOME
bin/hadoop namenode -format
5、slave机器Hadoop机器环境部署
把master机器上的F:\hadoop拷贝到slave机器上的F盘的根目录下即可。
6、关闭master,slave机器上的Cygwin,然后重启Cygwin。
7、启动master上的hadoop,执行如下命令:
ssh localhost
cd $HADOOP_HOME
bin/start-dfs.sh
bin/start-mapred.sh
jps
8、运行wordcount程序
$ bin/hadoop dfs -put ./test-in input
$ bin/hadoop jar hadoop-0.16.0-examples.jar wordcount input output
$ bin/hadoop dfs -cat output/*
9、停止hadoop进行
$ bin/stop-all.sh
10、配置hadoop的开发环境
(1)下载hadoop-0.20.1-eclipse-plugin.jar
(2)将其复制到Eclipse安装目录下的 plugins子目录下。
(3)删除org.eclipse.update目录,重启 Eclipse.
(4) 配置一个Map/Reduce对象,即DFS location ,将Map/Reduce Master一栏中的host设置为192.168.140,port设置为9001;将DFS Master 一栏中的host设置为192.168.140,port设置为9000;
(5)运行wordcout程序
创建一个Map/Reduce Project,将wordcount.java拷贝到该工程的src目录下,运行程序。
至此,如果以上没有问题的话,hadoop多节点的运行环境与开发环境配置完毕了,你可以开发Map/Reduce程序了。