主要流程分为4部分:
1.安装cygwin配置sshd服务
2.配置hadoop
3.配置eclipse访问hadoop
4.配置eclipse测试mapreduce
第1步是最容易出现各种问题的地方,我在配置服务的时候前后遇到解决过一二十个问题,建议1、2步如果出现什么问题最好完全卸载删除然后严格按照步骤重新来。
1.安装cygwin配置sshd服务
安装cygwin是为了给hadoop提供linux环境,sshd是为了提供hadoop的通信方式。
1.1安装cygwin
从官网上下载安装就好,安装选项的时候在net模块下需要选择安装openssh和openssl两个子模块,其他default就好
安装完成后需要配置系统变量,在Path里面加入cygwin的bin目录和usr/sbin目录
1.2取得cygwin的root权限
安装完成后运行一个bash窗口再关闭,在/home/目录下就会出现一个以你的用户名命名的文件夹(也就是cygwin为你创建了一个和windows一样的用户),例如我的就是/home/WANGCHAO,将这个文件夹改名为root
在/etc/passwd文件中找到你的用户名的哪一行,(WANGCHAO:unused:1000:513:U-WANGCHAO-PC\WANGCHAO,S-1-5-21-703394362-527095193-1703888876-1000:/home/WANGCHAO:/bin/bash)把这一行的用户名都改为root同时设置权限为最大(root:unused:0:0:U-WANGCHAO-PC\root,S-1-5-21-703394362-527095193-1703888876-1000:/home/root:/bin/bash)
保存完成以后再打开bash就会发现你的用户名变为了root并且通配符是#,这样就拿到了root权限并创建了root用户
1.3安装sshd服务
在bash里面运行ssh-host-config,第一个问题"Should privilege separation be used?"选no,后面就是创建sshd的用户名密码,自己设一下就好,最后告诉你"Have fun!"就是安装成功了,这时候执行net start sshd是启动不起来的,因为上一步配置服务的时候强制需要设置密码,但我们不需要密码,所以接下来在/etc/passwd里面追加一行
sshd:x:74:74rivilege-separated SSH:/var/empty/sshd:/sbin/nologin
重开一个bash运行net start sshd如果没有返回错误代码就可以在win7自己的查看服务里面看是不是有一个交CYGWIN_SSHD的服务以及启动了.
1.4建立sshd和localhost互信
运行ssh localhost,会让你输入密码,这是因为此时localhost还不在服务的信任列表中,需要
ssh-keygen -t dsa出现提示都回车就行。
cd ~/.ssh
cat id_dsa.pub >> authorized_keys
然后ssh localhost如果不需要密码就是设置成功了.
如果不成功,检查authorized_keys和.ssh目录的权限
chmod 644 authorized_keys
cd ~
chmod 700 .ssh
应该就可以了.
至此第一步就完成了,这一步可能会有非常多的错误,目前写得是最简单且成功的方法,请务必按照说明的步骤顺序严格执行.
2.配置hadoop
2.1下载hadoop
从官网上下载hadoop1.0.2版本的hadoop1.0.2.tar.gz,之所以下这个版本是因为要想在eclipse里面跑需要编译插件及修改源码,网上有人把这个版本做好了,咱们可以直接拿来用,否则需要找源代码自己修改打包,我在官网没找到src的包,所以就使用了这个版本,不过最新也才1.0.4,这个还不错
2.2配置java系统变量
这一步是必须的,因为hadoop自己的代码实现的问题,所以你的jdk必须要安装在C:\program\目录下.请注意不是program files,如果不是对应的位置就重装一下jdk吧.
配置环境变量,例如我的jdk在C:\Program\Java\jdk1.7.0_05下面,新建JAVA_HOME变量,值为jdk下面的jre目录,即C:\Program\Java\jdk1.7.0_05\jre;
在Path里面加入jdk的bin目录C:\Program\Java\jdk1.7.0_05\bin
2.3配置hadoop
将hadoop1.0.2.tar.gz解压到cygwin的目录下,例如我放在了/home/wangchao/,进入conf目录修改3个文件
2.3.1 hadoop-env.sh
在里面设置JAVA_HOME的路径,里面注释部分有写法示例,我的是export JAVA_HOME=C:\\Program\\Java\\jdk1.7.0_05\\jre
2.3.2 core-site.xml
在configuration节点里面加入两个property节点
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9100</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/log/hadoop/tmp</value>
<description>A base for other temporary directories</description>
</property>
第一个指明hadoop filesystem的路径,端口号可以自己设置;第二个指明fs的存储位置
2.3.3mapred-site.xml
在configuration节点里面加入property节点
<property>
<name>mapred.job.tracker</name>
<value>localhost:9101</value>
</property>
这个是指明mapreduce的时候的jobtrack路径,端口自己设
2.4启动hadoop
开一个bash进到hadoop的bin目录下,首先初始化filesystem的数据节点,运行./hadoop namenode -format;完成后运行./start-all.sh,如果没有出现有错误的信息就可以使用
./hadoop fs -ls / 命令看到hadoop 文件系统了
3.配置eclipse访问hadoop
3.1安装eclipse hadoop插件
在附件里面有我从别人那里下好的hadoop-eclipse-plugin-1.0.2.jar,把它放到eclipse的plugins目录下,打开eclipse在Window->open perspective里面就可以看到一个大象图表的Map/Reduce选项,选出来在console同级那里的窗口就可以看到一个mapreduce location窗口了,右键新建一个,
location name: localhost
Map/Reduce master端口:9101(自己设置的对应端口)
dfs master端口:9100
user name:root
即可新建出来,这样在左边显示Project Explorer窗口就可以看到一个Dfs location的选项了,点开如果正确就可以看到之前配好的hadoop的目录结构和文件了
4.配置eclipse测试mapreduce
这里可以直接参考 http://www.blogjava.net/yongboy/archive/2012/04/26/376486.html 里的内容了,我就懒得写进去了,呵呵
他提供的hadoop-core-1.0.2.jar包我也下好放在附件里面了,可以参照里面的例子测试就好,不过要注意的是最后的运行参数他写的是hdfs://master:9000/user/root/input2 dfs://master:9000/user/root/output2
对于我们来说应该是hdfs://localhost:9100/这样的路径
1.安装cygwin配置sshd服务
2.配置hadoop
3.配置eclipse访问hadoop
4.配置eclipse测试mapreduce
第1步是最容易出现各种问题的地方,我在配置服务的时候前后遇到解决过一二十个问题,建议1、2步如果出现什么问题最好完全卸载删除然后严格按照步骤重新来。
1.安装cygwin配置sshd服务
安装cygwin是为了给hadoop提供linux环境,sshd是为了提供hadoop的通信方式。
1.1安装cygwin
从官网上下载安装就好,安装选项的时候在net模块下需要选择安装openssh和openssl两个子模块,其他default就好
安装完成后需要配置系统变量,在Path里面加入cygwin的bin目录和usr/sbin目录
1.2取得cygwin的root权限
安装完成后运行一个bash窗口再关闭,在/home/目录下就会出现一个以你的用户名命名的文件夹(也就是cygwin为你创建了一个和windows一样的用户),例如我的就是/home/WANGCHAO,将这个文件夹改名为root
在/etc/passwd文件中找到你的用户名的哪一行,(WANGCHAO:unused:1000:513:U-WANGCHAO-PC\WANGCHAO,S-1-5-21-703394362-527095193-1703888876-1000:/home/WANGCHAO:/bin/bash)把这一行的用户名都改为root同时设置权限为最大(root:unused:0:0:U-WANGCHAO-PC\root,S-1-5-21-703394362-527095193-1703888876-1000:/home/root:/bin/bash)
保存完成以后再打开bash就会发现你的用户名变为了root并且通配符是#,这样就拿到了root权限并创建了root用户
1.3安装sshd服务
在bash里面运行ssh-host-config,第一个问题"Should privilege separation be used?"选no,后面就是创建sshd的用户名密码,自己设一下就好,最后告诉你"Have fun!"就是安装成功了,这时候执行net start sshd是启动不起来的,因为上一步配置服务的时候强制需要设置密码,但我们不需要密码,所以接下来在/etc/passwd里面追加一行
sshd:x:74:74rivilege-separated SSH:/var/empty/sshd:/sbin/nologin
重开一个bash运行net start sshd如果没有返回错误代码就可以在win7自己的查看服务里面看是不是有一个交CYGWIN_SSHD的服务以及启动了.
1.4建立sshd和localhost互信
运行ssh localhost,会让你输入密码,这是因为此时localhost还不在服务的信任列表中,需要
ssh-keygen -t dsa出现提示都回车就行。
cd ~/.ssh
cat id_dsa.pub >> authorized_keys
然后ssh localhost如果不需要密码就是设置成功了.
如果不成功,检查authorized_keys和.ssh目录的权限
chmod 644 authorized_keys
cd ~
chmod 700 .ssh
应该就可以了.
至此第一步就完成了,这一步可能会有非常多的错误,目前写得是最简单且成功的方法,请务必按照说明的步骤顺序严格执行.
2.配置hadoop
2.1下载hadoop
从官网上下载hadoop1.0.2版本的hadoop1.0.2.tar.gz,之所以下这个版本是因为要想在eclipse里面跑需要编译插件及修改源码,网上有人把这个版本做好了,咱们可以直接拿来用,否则需要找源代码自己修改打包,我在官网没找到src的包,所以就使用了这个版本,不过最新也才1.0.4,这个还不错
2.2配置java系统变量
这一步是必须的,因为hadoop自己的代码实现的问题,所以你的jdk必须要安装在C:\program\目录下.请注意不是program files,如果不是对应的位置就重装一下jdk吧.
配置环境变量,例如我的jdk在C:\Program\Java\jdk1.7.0_05下面,新建JAVA_HOME变量,值为jdk下面的jre目录,即C:\Program\Java\jdk1.7.0_05\jre;
在Path里面加入jdk的bin目录C:\Program\Java\jdk1.7.0_05\bin
2.3配置hadoop
将hadoop1.0.2.tar.gz解压到cygwin的目录下,例如我放在了/home/wangchao/,进入conf目录修改3个文件
2.3.1 hadoop-env.sh
在里面设置JAVA_HOME的路径,里面注释部分有写法示例,我的是export JAVA_HOME=C:\\Program\\Java\\jdk1.7.0_05\\jre
2.3.2 core-site.xml
在configuration节点里面加入两个property节点
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9100</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/log/hadoop/tmp</value>
<description>A base for other temporary directories</description>
</property>
第一个指明hadoop filesystem的路径,端口号可以自己设置;第二个指明fs的存储位置
2.3.3mapred-site.xml
在configuration节点里面加入property节点
<property>
<name>mapred.job.tracker</name>
<value>localhost:9101</value>
</property>
这个是指明mapreduce的时候的jobtrack路径,端口自己设
2.4启动hadoop
开一个bash进到hadoop的bin目录下,首先初始化filesystem的数据节点,运行./hadoop namenode -format;完成后运行./start-all.sh,如果没有出现有错误的信息就可以使用
./hadoop fs -ls / 命令看到hadoop 文件系统了
3.配置eclipse访问hadoop
3.1安装eclipse hadoop插件
在附件里面有我从别人那里下好的hadoop-eclipse-plugin-1.0.2.jar,把它放到eclipse的plugins目录下,打开eclipse在Window->open perspective里面就可以看到一个大象图表的Map/Reduce选项,选出来在console同级那里的窗口就可以看到一个mapreduce location窗口了,右键新建一个,
location name: localhost
Map/Reduce master端口:9101(自己设置的对应端口)
dfs master端口:9100
user name:root
即可新建出来,这样在左边显示Project Explorer窗口就可以看到一个Dfs location的选项了,点开如果正确就可以看到之前配好的hadoop的目录结构和文件了
4.配置eclipse测试mapreduce
这里可以直接参考 http://www.blogjava.net/yongboy/archive/2012/04/26/376486.html 里的内容了,我就懒得写进去了,呵呵
他提供的hadoop-core-1.0.2.jar包我也下好放在附件里面了,可以参照里面的例子测试就好,不过要注意的是最后的运行参数他写的是hdfs://master:9000/user/root/input2 dfs://master:9000/user/root/output2
对于我们来说应该是hdfs://localhost:9100/这样的路径