文档章节

windows下搭建hadoop开发环境(Eclipse)

庸人谷
 庸人谷
发布于 2012/11/16 09:19
字数 1342
阅读 785
收藏 19

windows下搭建hadoop开发环境(Eclipse)

注:hadoop 是java 编写的,可以通过java 直接编译出 hadoop 包。因此,操作系统影响

不大,只是需要剥去 linux这个外壳。 
 
材料: 
1. JDK 版本"1.7.0_01" 
2. Cygwin——在线安装 
3. Eclipse SDK版本3.3.2 
4. Hadoop版本  hadoop-0.20.2 
5. windows 7 
本教程适合以上版本,特别是 hadoop 版本和Eclipse 版本。如果换别的搭配,不一定成
功。提示:hadoop0.20.2 版本下的Eclipse 插件只适合3.3.2的eclipse ,Eclispe 版本高不
能运行。另外,hadoop 0.20.203 版本在和sygwin 搭配上有bug,不能启动jodtracker 。 
实施: 
1.   安装JDK 
详细步骤略去。要注意的是:jdk 的安装 
1.   下载cygwin 的setup.exe 进行在线安装,setup版本:2.764 
1.1  install from Internet 
1.2  设置cygwin 最好简短,地址中间不带空格 
1.3  Direct Connection 
1.4  选择down site (网易163:  mirrors.163.com) 
1.5  开始选择需要安装的组件 
1.5.1  Net Category  下的两个OpenSSL(重要) 
 
1.5.2  Base Category 下的sed 
 
1.5.3  Editor Category 下的vim 
 

1.5.4  Devel Category下的subversion 

 
1.5.5  点击下一步开始下载并安装,一气呵成,否则重新安装。 
1.6  配置系统环境变量 
JAVA_HOME=C:\Java\jdk1.7.0_01 
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 
PATH=%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;C:\windows\system32\; 
1.7 BINGO 用户中的变量 
PATH=D:\study\cygwin\bin;D:\study\cygwin\usr\bin 
2.   在cygwin 中安装ssh 
2.1  打开cygwin 会提示用户没有权限的问题,按照提示敲入相应两个命令解决,待参数
-l 
2.2  敲入命令 ssh-host-config开始配置ssh。遇到问题“should privilege separation be used? ”
回答no ,其他的按默认,它会询问是否注册为系统服务,回答是。 
2.3  在“管理”- “服务”里开启 CYGWIN sshd服务。 
2.4  配置SSH 空密码登录 
执行以下命令: 
ssh-keygen    生成本机密钥 
cd      ~/.ssh/ 
cp id_rsa.pub authorized_keys 
关闭cygwin ,重新打开cygwin 。尝试ssh localhost连接。 
2.5但是,在 cygwin 中无法执行命令ssh localhost,提示,Connection closed by 1.  这是权
限问题。 
解决方案:1、开端——运行——services.msc2、右键  CYGWIN  sshd—— 属性——登录
选项卡——选择“ 此账户”—— 浏览——高级——立即查找——选择你的账户名(必须为
管理员权限)——输进密码(必须  要有,空密码不将不被接受)——确定。3 、重启
CYGWIN sshd即可。 
2.6  执行命令 ssh localhost正常 
3.   Hadoop 
入门:cygwin 中看到的windows 文件全部都在/cygwin/ 目录下。这个目录下的文件夹对
应这windows 系统中的c 盘,d 盘… 
因此,如果在 windows 目录下的路径是c:\1.txt 
那么,在linux目录下的路径是/cygdrive/c/1.txt 
3.1  解压hadoop 到D:\study\hadoop-0.20.2 
3.2  配置hadoop 
3.2.1 配置conf 下的hadoop-env.sh 
# The java implementation to use.    Required. 
export JAVA_HOME=/cygdrive/c/Java/jdk1.7.0_01 
记得去掉export 前面的注释 
3.2.2 分别从src 下的core ,hdfs 和mapred 三个目录下的core-default.xml ,hdfs-default.xml
和mapred-default.xml 拷贝到conf 目录中;分别替换掉目录下的core-site.xml,hdfs-site.xml
和mapred-site.xml 
3.2.3 编辑core-site.xml 
<name>fs.default.name</name> 
    <value>hdfs://localhost: 8888</value> 
3.2.4 编辑mapred-site.xml 
    <name>mapred.job.tracker</name> 
    <value>localhost:9999</value> 
3.3  格式化namenode,cd 到bin 目录下 
命令: 
$ ./hadoop namenode –format 
3.4  开启hadoop 
命令: 
./start-all.sh 
3.5  查询hdfs 文件 
./hadoop fs –ls / 
3.6  为了测试每个组件是否正常工作,可以开启五个 cygwin 窗口依次执行 
./hadoop namenode 
./hadoop secondarynamenode 
./hadoop jobtracker 
./hadoop datanode 
./hadoop tasktracker 
如果datanode 出问题,直接进 D:\tmp\hadoop-BinGo\dfs\data把这个目录删了!重新启动。 
4.   配置eclipse 插件 
在 hadoop 的 hadoop-0.20.2\contrib\eclipse-plugin 目 录 下 找 到
hadoop-0.20.2-eclipse-plugin.jar 插件 
4.1  将插件拷贝至 eclipse 的plugins 目录下。 
4.2  打开eclipse ,Window -> Open Perspective -> Other  选择Map/Reduce。下方将出现: 
 
4.3  点击右上方的 New Hadoop location...配置一下信息 
 
4.4  Window -> Preferences 选择  “Hadoop Map/Reduce” ,点击“Browse...” 选择Hadoop文
件夹的路径。 
这个步骤与运行环境无关,只是在新建工程的时候能将 hadoop 根目录和lib 目录下的所
有jar 包自动导入。 
4.5  确认插件是否成功。新建,删除操作后都要 refresh 一次目录 
 
5.   测试hadoop环境 
5.1  新建一个 Map/Reduce项目,测试WordCount.java。注:统计文件的单词数量 
 
WordCount.java  代码: 
import java.io.IOException; 
import java.util.StringTokenizer; 
 
import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.fs.Path; 
import org.apache.hadoop.io.IntWritable; 
import org.apache.hadoop.io.Text; 
import org.apache.hadoop.mapreduce.Job; 
import org.apache.hadoop.mapreduce.Mapper; 
import org.apache.hadoop.mapreduce.Reducer; 
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; 
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; 
import org.apache.hadoop.util.GenericOptionsParser; 
 
public class  WordCount { 
 
  public static class  TokenizerMapper  
       extends Mapper<Object, Text, Text, IntWritable>{ 
     
    private final  static IntWritable  one  =  new  IntWritable(1); 
    private Text word =  new  Text(); 
       
    public void map(Object key, Text value, Context context 
                    ) throws IOException, InterruptedException { 
      StringTokenizer itr = new  StringTokenizer(value.toString()); 
      while  (itr.hasMoreTokens()) { 
        word.set(itr.nextToken()); 
        context.write(word, one ); 
      } 
    } 
  } 
   
  public static class  IntSumReducer  
       extends Reducer<Text,IntWritable,Text,IntWritable> { 
    private IntWritable  result =  new  IntWritable(); 
 
    public void reduce(Text key, Iterable<IntWritable> values,  
                       Context context 
                       )  throws IOException, InterruptedException { 
      int  sum = 0; 
      for  (IntWritable val : values) { 
        sum += val.get(); 
      } 
      result.set(sum); 
      context.write(key, result); 
    } 
  } 
 
  public static void main(String[] args) throws Exception { 
    Configuration conf = new  Configuration(); 
    String[] otherArgs = new  GenericOptionsParser(conf, 
args).getRemainingArgs(); 
    if (otherArgs.length != 2) { 
      System.err .println("Usage: wordcount <in> <out>"); 
      System.exit(2); 
    } 
    Job job =  new  Job(conf, "word count"); 
    job.setJarByClass(WordCount. class ); 
    job.setMapperClass(TokenizerMapper. class ); 
    job.setCombinerClass(IntSumReducer. class ); 
    job.setReducerClass(IntSumReducer.class ); 
    job.setOutputKeyClass(Text.class ); 
    job.setOutputValueClass(IntWritable.class ); 
    FileInputFormat. addInputPath(job, new  Path(otherArgs[0])); 
    FileOutputFormat.setOutputPath (job, new  Path(otherArgs[1])); 
    System.exit(job.waitForCompletion( true) ? 0 : 1); 
  } 

5.2  配置运行参数 
Run  As  ->  Open  Run  Dialog...  选择WordCount 程序,在Arguments中配置运行参数:
/tmp/hello/FileToMatrix.java /tmp/hello/Exon 
5.3  运行 
Run As -> Run on Hadoop  选择之前配置好的MapReduce 运行环境,点击“Finish”运行 
 
6.   参考文章 
http://www.cnblogs.com/hiddenfox/archive/2011/11/26/2264461.html  
http://blog.csdn.net/yanical/article/details/4474991 
http://blog.csdn.net/hongweigg/article/details/7197662  
http://www.tech126.com/eclipse-hadoop/ 
Hadoop开发者入门专刊.pdf 
 
2/26/2012 
Written by BinGo 

本文转载自:http://wenku.it168.com/d_000515018.shtml

庸人谷
粉丝 43
博文 159
码字总数 14788
作品 0
东城
私信 提问
eclipse上搭建hadoop开发环境

一、概述 1.实验使用的Hadoop集群为伪分布式模式,eclipse相关配置已完成; 2.软件版本为hadoop-2.7.3.tar.gz、apache-maven-3.5.0.rar。 二、使用eclipse连接hadoop集群进行开发 1.在开发主...

一语成谶灬
2017/09/07
0
0
【Hadoop] - windows开发环境搭建

文章说明:因Linux平台再GUI页面通过IDE进行Hadoop开发,会导致Linux在GUI上极度消耗资源,对于一些配置不是很高的PC,可能会出现卡顿的情况,非常影响程序编写,本文就详细介绍如何在windo...

ZeroneLove
02/24
23
0
hadoop环境搭建总结

最近一段时间在看Hadoop The Definitive Guide, 3rd Edition.pdf,学习hadoop,个人想不能总看书,不实践呀,于是准备搭建一套开发环境,果然遇到很多问题,最终调试出了运行结果,在此记录。...

火镜先生
2016/02/18
626
0
windows eclipse 搭建spark开发环境

1、Java下Spark开发环境搭建 1.1、jdk安装 安装oracle下的jdk,我安装的是jdk 1.7,安装完新建系统环境变量JAVAHOME,变量值为“C:Program FilesJavajdk1.7.079”,视自己安装路劲而定。 同时...

张欢19933
2016/10/26
242
0
Windows下单机安装Spark开发环境

机器:windows 10 64位。 因Spark支持java、python等语言,所以尝试安装了两种语言环境下的spark开发环境。 1、Java下Spark开发环境搭建 1.1、jdk安装 安装oracle下的jdk,我安装的是jdk 1.7...

涩女郎
2016/09/20
62
0

没有更多内容

加载失败,请刷新页面

加载更多

当阿里云工程师回到了家乡......

根据真实故事改编 略有浮夸 但重要的是 9月25日13:30-16:30 云栖大会「5G边缘计算专场」 一定要来哦 !!! 本文作者:樰篱 原文链接 本文为云栖社区原创内容,未经允许不得转载。...

Mr_zebra
12分钟前
2
0
文件操作工具类 FileUtils常用方法

文件操作工具类(FileUtils) 使用该工具类的前提是项目里导入commons-io 包 import org.apache.commons.io.FileUtils; List<String> lines=new ArrayList<String>(); lines.add("欢迎访问:......

AndLong
19分钟前
3
0
maven-shade-plugin

最近,用规则引擎(drools)的封装了一个jar包,给别人使用。用的是maven-assembly-plugin打的包,可以把多个jar包里的class 给打成一个jar,感觉还是满好用的,但是打包成功后,发现报空指针错...

internetafei
23分钟前
2
0
Cassandra repair 工具使用

前言 Cassandra是一款去中心化的分布式数据库。一份数据会分布在多个对等的节点上,即有多个副本。我们需要定期的对多个副本检查,看是否有不一致的情况。比如因为磁盘损坏,可能会导致副本丢...

阿里云官方博客
27分钟前
1
0
element-vue使用富文本编辑器【前端】

一、前言 1.富文本编辑器选择的为vue-quill-editor 官方地址:https://quilljs.com/docs/quickstart/ 2.安装 cnpm install vue-quill-editor cnpm install quill 3.在对应的页面引入,在com...

一代码农码一代
32分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部