第一天我先在window环境里搭建的这个本人当时什么都不懂 就感受方便就在这里搞了 不过通过这个我也知道了什么是hadoop 环境了 受益不浅 。 java
在Windows下部署hadoop前,都须要安装cygwin软件,如何安装和配置cygwin node
1、cygwin的安装与配置 linux
一、什么是cygwin
cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了不少好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操做环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工做,尤为是使用gnu工具集在windows上进行嵌入式系统开发,很是有用。随着嵌入式系统开发在国内日渐流行,愈来愈多的开发者对cygwin产生了兴趣。
二、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 vim
(3)点击下一步。一直到完成
说明:虽然cygwin提供在线安装,我的建议先 彻底下载到本地,再进行安装,由于在线安装会出现许多莫名奇妙的问题。 windows
二、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”的服务。 eclipse
(3)配置ssh登陆
执行ssh-keygen命令,而后根据提示按三次回车键,最后输入以下命令:
cd ~/.ssh/;
cp id_rsa.pub authorized_keys ssh
至此,cygwin的安装与配置成功,你能够享受cygwin带来的乐趣。 分布式
2、hadoop多节点的安装与部署 工具
一、下载hadoop;
本实验用的版本是:hadoop-0.20.1;
二、外部配置
选中一台机子作为jobTracker,namenode, datanode这个机子为master,这个机器的ip设置为192.168.1.102。另外两台作datanode,TaskTracker为slave,这个机器的ip为192.168.1.101,192.168.1.103
三、为了实现无密码登陆ssh服务器,在master机器cygwin的控制台中输入以下命令:
cd ~/.ssh;
chmod 600 authorized_keys;
scp authorized_keys Administrator@192.168.1.102:~/.ssh/ authorized_keys;
scp authorized_keys Administrator@192.168.1.103:~/.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服务器计算机里运行。
四、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.101: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.101:9001<value>
......................................
(6)修改conf目录下的masters文件
输入192.168.1.101
(7)修改conf目录下的slaves文件
输入:192.168.1.101
192.168.1.102
192.168.1.103
(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
五、slave机器Hadoop机器环境部署
把master机器上的F:\hadoop拷贝到slave机器上的F盘的根目录下便可。
六、关闭master,slave机器上的Cygwin,而后重启Cygwin。
七、启动master上的hadoop,执行以下命令:
ssh localhost
cd $HADOOP_HOME
bin/start-dfs.sh
bin/start-mapred.sh
jps
八、运行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/*
九、中止hadoop进行
$ bin/stop-all.sh
十、配置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.101,port设置为9001;将DFS Master 一栏中的host设置为192.168.101,port设置为9000;
(5)运行wordcout程序
建立一个Map/Reduce Project,将wordcount.java拷贝到该工程的src目录下,运行程序。
至此,若是以上没有问题的话,hadoop多节点的运行环境与开发环境配置完毕了,你能够开发Map/Reduce程序了。