hadoop在window中的安装配置和使用

   搞了几天hadoop,网上虽然有好多资料,但还是遇到好多问题,在这里写写自己遇到的问题,希望能作为后车之鉴。
安装wygwin:
1,首先就是要下载cygwin(http://www.cygwin.com/setup.exe)然后运行,后面的步骤网上有好多资料,大家照着做就行,我当时也是跟着一路下来,但可能是我网速慢,过程中,提示setup.ini没有找到,我就没有留意,后来也装上了。但运行的时候怎么一直提示C:\cygwin\usr\bin下的一个文件没找到,我打开那个目录,发现根本就没有bin文件,我想可能没装完全,于是就卸了(控制面板没有该程序,我直接删了)重新装,可试了几次还这样,后来,我就换了个下载地址,结果就没出错。所以我感觉在下载的时候不一定非要选http://www.cygwin.cn。
      然后配置环境变量,把cygwin下的bin和usr\bin  以及吧usr\sbin 放在path环境变量中,接下里就可以安装启动sshd 首先执行ssh-host-config要求输入是,输入NO,但有个选择大概是什么as  service,好像就是要不要作为一个服务,要选择yes,这样接下来就可以在服务面板里启动CYGWIN sshd服务。配置ssh免密码登陆 可以如下:
     cd ~/.ssh/
    cp id_rsa.pub authorized_keys
   然后执行exit退出,重新运行 cygwin,执行ssh localhost 网上也好多资料,可以查查。不出问题的话安装就成功了。
2,配置hadoop:
   把网上下来的hadoop解压到C:\cygwin\home\Administrator下 配置环境变量HADOOP_HOME=C:/cygwin/home/Administrator/hadoop
  然后把%HADOOP_HOME%/bin放到path变量中,%HADOOP_HOME%/lib 放到classpath中。
  这里配置三个文件需要配置    在hadoop/config  下面core-site.xml
<configuration>
<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:9000</value>
</property>
</configuration>


  和hdfs-site.xml如下:
<configuration>
<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>
<property>
    <name>dfs.permissions</name>
    <value>false</value>
    <description>
       If "true", enable permission checking in HDFS.
       If "false", permission checking is turned off,
       but all other behavior is unchanged.
       Switching from one parameter value to the other does not change the mode,
       owner or group of files or directories.
    </description>
</property>
</configuration>


以及mapred-site.xml如下:
<configuration>
<property>
  <name>mapred.job.tracker</name>
  <value>localhost:9001</value>
</property>
</configuration>

另外需要修改hadoop-env.sh  
export JAVA_HOME=/cygdrive/c/jdk  前面的#号要去了,是注释。路径最好不要带空格,可以把jdk拷贝到别的路径。如果有空格可以用用双引号括起来(我没试)。然后需要需要将${HADOOP_HOME}/bin/hadoop-config.sh文件中的第190行的一下的内容
JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m ${HADOOP_JAVA_PLATFORM_OPTS} org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`

最后 就可以测试了
输入
bin/hadoop namenode -format
bin/hadoop start-all.sh
浏览器输入 http://loaclhost:50030
                  http://loaclhost:50030
如果能看见mapReduce和hdfs的页面,说明hadoop安装成功

3,运行wordcount程序
在%HADOOP_HOME%建立一个文件test 在里面放一些文本文件。如test.txt 里面随便输入 几个单词,不放如下:mu ha ha ni da ye da ye 然后输入:
bin/hadoop dfs -put test test

bin/hadoop jar hadoop-mapred-examples-0.21.0.jar wordcount test outfile
查看结果:bin/hadoop dfs -cat outfile/*
4,在eclipse中用hadoop
  下载hadoop-eclipse-plugin-0.20.3-SNAPSHOT.jar
https://issues.apache.org/jira/secure/attachment/12460491/hadoop-eclipse-plugin-0.20.3-SNAPSHOT.jar



    注意不要用hadoop-0.20.2下自带的eclise插件,那个是坑爹的。否则会导致run on Hadoop 无反应。这个插件的版本是配合eclipse3.5的。下载后将其重命名为hadoop-0.20.2-eclipse-plugin.jar,并放入到eclipse插件目录plugins中。

    启动eclipse:. 到‘Windows’ -> ‘Preference’ -> 'Hadoop Map/Reduce',配置Hadoop Installation Directory

    启动eclipse:打开windows->open perspective->other->map/reduce 可以看到map/reduce开发视图。设置Hadoop location.



    打开windows->show view->other-> map/reduce Locations视图,在点击大象后【new Hadoop location】弹出的对话框(General tab)进行参数的添加:

    Location name: 任意

    map/reduce master: 与mapred-site.xml里面mapred.job.tracker设置一致。

    DFS master:与core-site.xml里fs.default.name设置一致。

    User name: 服务器上运行hadoop服务的用户名。



    这些已经足够用。当然,如果你需要特殊设置,那么打开Advanced parameters设置面板,查看当前的选项以及修改其值.



    创建Map/Reduce Project。运行最简单的WordCount程序。



    点击Run on hadoop, 运行程序。你可以看到在output文件夹中出现文本段



    运行时可能会出现内存溢出的异常:

原因是客户端程序运行时java虚拟机内存分配不够,修改run configuration(run as >run configurations),选择Arguments选项卡,在VM arguments栏中加入-Xmx1024m,保存后执行没有问题(即将执行时虚拟机内存调大)

你可能感兴趣的:(java,eclipse,mapreduce,hadoop,wygwin)