前提准备条件
1:安装JDK 设置jdk环境变量
2:下载和安装cygwin 和设置环境变量
3:下载hadoop 并且解压
4:下载eclipse文件
OK 前提准备条件已经就绪 可以开始了。。。。。
1:安装JDK和设置jdk环境变量 略过。。。。。。。
2:安装cygwin 有以下几点需要注意的 就是在安装的过程当中 选中以下项进行安装
然后镜像选中163或者任何一个都可以 然后就慢慢等待吧。
安装完成以后 配置一下 F:\cygwin\bin;F:\cygwin\usr\sbin 到PATH变量里面去.
2:在cygwin中配置ssh服务
输入命令 ssh-host-config(输入命令会出现下面的注意三项)
配置中关键注意以下三项:
Should privilege separation be used? (yes/no) no
Do you want to install sshd as service? (yes/no) yes
Enter the value of cygwin for the daemon:ntsec
3:启动sshd服务
输入命令:net start sshd
启动失败的情况。
a.如果启动不顺利的话 可能会报错 具体的报错日志 存放在/var/log.sshd.log里面 可以打开看看 如果是报错 Privilege separation user sshd does not exist
解决办法:cd /etc/passwd里面 最下面添加1行 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 然后重启就ok
3:安装hadoop 本人用的hadoop是0.20.2版本的 本人下载的hadoop-0.20.2.tar.gz格式的 文件
a:解压:输入命令 tar xzvf hadoop-0.20.2.tar.gz 然后就会生成一个hadoop-0.20.2的文件夹目录
b:配置hadoop-0.20.0/conf/hadoop-env.sh文件 配置JAVA_HOME的路径 如下
# The java implementation to use. Required.
export JAVA_HOME=C:\\Java\\jdk1.6.0_16
c:配置conf目录下面的core-site.xml 内容如下
<?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://localhost:8888</value>
</property>
</configuration>
d:配置hdfs-site.xml 内容如下:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
c:配置mapred-site.xml 内容如下
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9999</value>
</property>
</configuration>
4:Eclipse中安装hadoop插件 本人下载的eclipse是 eclipse-SDK-3.3.2-win32.zip (不知道别的版本是否兼容hadoop-0.20.2的eclipse插件) 下载路径:
5:把hadoop-0.20.2\contrib\eclipse-plugin拷贝到\eclipse-SDK-3.3.2-win32\eclipse\plugins下面 然后启动eclipse
6:windows-首选项->map reduce->找到hadoop的安装路径 如下图
7:接下来 开始启动hadoop
cd /usr/jar/hadoop-0.20.2/bin目录下面
然后格式化dfs 输入下面的命令
./hadoop namenode -format
然后 启动hadoop的后台线程 输入命令
./start-all.sh
可以通过jps命令 查看是否成功启动 或者进入/tmp目录 下面查看 是否生成多个.pid文件。
8:打开eclipse 然后切换到map reduce视图 点击eclipse的右上角
然后看到
然后右击新增
最后成功看到eclipse的工作区多了一个dfs文件 如下图
然后尝试一下 往dfs上面上传文件 看是否成功 如果报错如下:
解决办法:关闭掉window机器上面的360等杀毒软件 然后重新启动hadoop就可以了
8:接下来 新建一个hadoop的map reduce的项目 然后copy hadoop-0.20.2\src\examples\org\apache\hadoop\examples的WordCount.java到src的包下面
如下图
然后在windows机器上面新建两个文件 1.txt 和 2.txt
1.txt的内容为 hello hadoop 2.txt内容为hello hi
然后在dfs上面新建usr文件夹(这个不是必须的) 然后把上面两个txt文件上传到dfs的usr文件夹下面 (在eclipse上面的dfs上面鼠标右键 点击上传文件就可以)效果如下图
然后 右键WordCount.java代码 配置如下
最后 右键WordCount-run on hadoop 就可以惊奇的看到效果了
效果如下
然后在dfs的out文件下面生成一个文件 文件就是统计的结果 类似如下
记住每次运行的时候 必须把输出文件或者文件夹给删除掉 对应本程序来说每次运行就必须删除掉dfs上面的out文件夹 否则会报错的。
如果上面都配置好了 如果在启动./start-all.sh的时候报java_home没有配置的话 那就打开hadoop目录下面的conf目录下面的hadoop-env.sh文件配置
export JAVA_HOME="/cygdrive/C/Java/jdk1.6.0_16"就可以解决了
如果右击run on hadoop没有反应 那很有可能是eclipse的hadoop插件有问题 可以换一个 这里有http://www.linuxidc.com/Linux/2012-05/60784.htm