Hadoop2.2配置(windows)
来源:互联网 发布:天天德州 作弊器 知乎 编辑:程序博客网 时间:2024/06/18 00:29
hadoop-2.2.0配置eclipse插件(windows和linux平台)
目录(?)[+]
目前配置eclipse插件主要有两个版本,一个是在windows下重新编译配置,另一个是在linux在重新配置编译。
下面逐步讲解在linux下编译-配置eclipse插件的过程。
环境:
Ubuntu 12.04 64bit 3.2.0-29-generic eclipse-jee-luna-R-linux-gtk-x86_64.tar.gz Apache Ant(TM) version 1.8.2 JDK Version 1.7.0_67
安装前准备:
Ant、jdk、eclipse、Apache hadoop 2.2.0安装包都准备好
eclipse插件源代码准备好(https://github.com/winghc/hadoop2x-eclipse-plugin)
在集群上把Apache hadoop 2.2.0部署好进行插件编译:
将Apache hadoop 2.2.0的安装包和eclipse拷至任意目录,如/home/hadoop/Downloads/hadoop-2.2.0和/home/hadoop/Downloads/eclipse. 切记:整个路径中不能出现任何空格,否则ant编译过程会报错!
进入插件目录进行编译,如插件放在/home/hadoop/Downloads/hadoop2x-eclipse-plugin
$ cd /home/hadoop/Downloads/hadoop2x-eclipse-plugin/src/contrib/eclipse-plugin$ ant jar -Dversion=2.2.0 -Declipse.home=/home/hadoop/Downloads/eclipse -Dhadoop.home=/home/hadoop/Downloads/hadoop-2.2.0
注意:其中-Declipse.home和-Dhadoop.home需要指定eclipse的安装目录和hadoop安装文件的存放目录,切记:这两个目录的全路径中都不能存在空格
接下来就是漫长的等待了,主要慢的是target:ivy-download,ivy-resolve-common这两步。
最后生成的插件在:
hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.2.0.jar
接下来进行插件的安装与配置
将hadoop-eclipse-plugin-2.2.0.jar拷贝到eclipse的plugins目录下,启动eclipse
进入Window-->Preference配置根目录:
进入Window-->Open Perspective-->other-->Map/Reduce打开Map/Reduce窗口
打开Map/Reduce View,右键,选择
New hadoop location
配置location
注意:MR Master和DFS Master配置必须和mapred-site.xml和core-site.xml等配置文件一致
打开Project Explorer,查看HDFS文件系统:
新建Mapreduce项目
创建MapReduce程序
编写WordCount程序测试插件使用:
在MapReduce工程下新建WordCount.java程序,代码如下:
import java.io.IOException;import java.util.*;import org.apache.hadoop.fs.Path;import org.apache.hadoop.conf.*;import org.apache.hadoop.io.*;import org.apache.hadoop.mapred.*;import org.apache.hadoop.util.*;public class WordCount {public static class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {private final static IntWritable one = new IntWritable(1);private Text word = new Text();public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word.set(tokenizer.nextToken()); output.collect(word, one); }}}public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> {public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { int sum = 0; while (values.hasNext()) { sum += values.next().get(); } output.collect(key, new IntWritable(sum));}}public static void main(String[] args) throws Exception {JobConf conf = new JobConf(WordCount.class);conf.setJobName("wordcount");conf.setOutputKeyClass(Text.class);conf.setOutputValueClass(IntWritable.class);conf.setMapperClass(Map.class);conf.setReducerClass(Reduce.class);conf.setInputFormat(TextInputFormat.class);conf.setOutputFormat(TextOutputFormat.class);FileInputFormat.setInputPaths(conf, new Path(args[0]));FileOutputFormat.setOutputPath(conf, new Path(args[1]));JobClient.runJob(conf);}}
配置运行时参数:右键-->Run as-->Run Confiugrations
将程序放在hadoop集群上运行:右键-->Runas -->Run on Hadoop,最终的输出结果会在HDFS相应的文件夹下显示。至此,Linux下hadoop-2.2.0 eclipse插件配置完成。
配置过程中出先的问题:
在eclipse中无法向文件HDFS文件系统写入的问题,这将直接导致eclipse下编写的程序不能在hadoop上运行。
网上的解决方案有三个:
a. 取消hadoop hdfs的用户权限检查。打开conf/hdfs-site.xml,找到dfs.permissions属性,将其修改为false(默认为true).[我当初的配置文件中写成了dfs.permission,虽然这个值修改成了false,但依旧无效,从而导致这个环境配置不成功,泪奔了]b. 修改hadoop location参数,在advanced parameter选项卡中,找到hadoop.job.ugi选项,将此选项改为启动hadoop的用户名即可(注意,第一次设置的时候可能没有hadoop.job.ugi参数,在报错后去看就有了)[其实我怎么也没找到这个选项]
c. 因为eclipse使用hadoop插件提交作业是,会默认以DrWho身份去将作业写入hdfs文件系统中,对应的也是HDFS上的/usr/hadoop,由于DrWho用户对hadoop目录并没有写入权限,所以导致异常发生。解决方法为:放开hadoop目录的权限,命令如下:
$hadoop fs -chmod 777
[当初配置的时候,只放开了几个目录的权限,从而到导致作业无法提交写入到HDFS中,哭死了...]另外,eclipse插件的使用可能跟eclipse版本有关系,我使用的是eclipse-jee-luna-R-linux-gtk-x86_64.tar.gz版本的eclipse,在ubuntu 12.04 64bit下是可以使用的
下面来讲解一些在Windows下编译配置eclipse插件
环境:
Windows 7 64bit 专业版 eclipse-standard-luna-R-win32-x86_64 Apache Ant(TM) version 1.9.4 JDK Version 1.7.0_67
安装前准备:
Ant、jdk、eclipse、Apache hadoop 2.2.0安装包都准备好
eclipse插件源代码准备好(https://github.com/winghc/hadoop2x-eclipse-plugin)
在集群上把Apache hadoop 2.2.0部署好进行插件编译:
将Apache hadoop 2.2.0的安装包和eclipse拷至任意目录,如E:\hadoop-2.2.0和E:\eclipse. 切记:整个路径中不能出现任何空格,否则ant编译过程会报错!
进入插件目录进行编译,如插件放在E:\hadoop2x-eclipse-plugin
$ cd hadoop2x-eclipse-plugin/src/contrib/eclipse-plugin$ ant jar -Dversion=2.2.0 -Declipse.home=E:\eclipse -Dhadoop.home=E:\hadoop-2.2.0
注意:其中-Declipse.home和-Dhadoop.home需要指定eclipse的安装目录和hadoop安装文件的存放目录,切记:这两个目录的全路径中都不能存在空格
接下来就是漫长的等待了,主要慢的是target:ivy-download,ivy-resolve-common这两步。
最后生成的插件在:
hadoop2x-eclipse-plugin/build/contrib/eclipse-plugin/hadoop-eclipse-plugin-2.2.0.jar
配置window 7中hadoop环境变量:
在Window7中设置%HADOOP_HOME%,并把%HADOOP_HOME%\bin加入PATH环境变量[这一步如果不做的话,hadoop程序运行的过程中会出现空指针异常,从而到时程序运行失败]
另外还需要下载一个插件https://github.com/srccodes/hadoop-common-2.2.0-bin,解压后把下载的bin目录覆盖%HADOOP_HOME%\bin目录下的文件
注意,这两步是必须的,否则将导致各种奇葩错误
接下来的步骤与Linux版本配置方案中的4、5步骤相同
配置过程中出现的问题:
在使用ant编译eclipse插件的时候,会出现一堆警告,如
[javac] E:\hadoop-2.2.0\share\hadoop\hdfs\hadoop-hdfs-2.2.0.jar(org/apache/hadoop/hdfs/DistributedFileSystem.class): 警告: 无法找到类型 'LimitedPrivate' 的注释方法 'value()'[javac] E:\hadoop-2.2.0\share\hadoop\common\hadoop-common-2.2.0.jar(org/apache/hadoop/fs/FileSystem.class): 警告: 无法找到类型 'LimitedPrivate' 的注释方法 'value()'[javac] E:\hadoop-2.2.0\share\hadoop\common\hadoop-common-2.2.0.jar(org/apache/hadoop/fs/FileSystem.class): 警告: 无法找到类型 'LimitedPrivate' 的注释方法 'value()'[javac] E:\hadoop-2.2.0\share\hadoop\common\hadoop-common-2.2.0.jar(org/apache/hadoop/fs/FileSystem.class): 警告: 无法找到类型 'LimitedPrivate' 的注释方法 'value()'[javac] E:\hadoop-2.2.0\share\hadoop\common\hadoop-common-2.2.0.jar(org/apache/hadoop/fs/FSDataInputStream.class): 警告: 无法找到类型 'LimitedPrivate' 的注释方法 'value()'[javac] E:\hadoop-2.2.0\share\hadoop\common\hadoop-common-2.2.0.jar(org/apache/hadoop/fs/FSDataOutputStream.class): 警告: 无法找到类型 'LimitedPrivate' 的注释方法 'value()'[javac] 注: 某些输入文件使用或覆盖了已过时的 API。[javac] 注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。[javac] 注: 某些输入文件使用了未经检查或不安全的操作。[javac] 注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。[javac] 7 个警告
但最终还是会编译成功的,这些警告不用去管
插件的安装成功与否与eclipse版本有关系,我以前使用的是windows下64bit j2ee版本的eclipse,将其与插件一个通过ant编译后发现eclipse无法识别插件。
另外在下载eclipse插件的源代码中有一个已经编译好的eclipse插件,该插件是不能使用的,放在eclipse中使用的话会报classNotDefException
- Hadoop2.2配置(windows)
- Windows下部署/配置/调试hadoop2.2
- hadoop2.2安装配置
- hadoop2.2环境配置
- hadoop2.2环境配置
- Hadoop2.2配置详解
- Hadoop2 在windows上的配置
- (转载)Hadoop2.7.1配置
- hadoop2官方文档中文翻译(2)---单节点配置
- hadoop2.2安装配置日志(完全分布式)
- 配置Hadoop2.xx的高可用(Hadoop2.0 HA)
- Windows 7(64位) 配置Eclipse+Hadoop2.5.1开发环境
- Windows下配置Hadoop2.6-eclipse-plugin插件
- Windows平台安装配置Hadoop2.5.2(不借助cygwin)
- windows下 hadoop2.4.0 eclipse 插件安装及配置
- hadoop2.2+hive0.13安装和配置
- 在Hadoop2.2下安装配置Hive
- 安装配置Hadoop2.6.0(完全分布式)
- 对功率谱的一点理解
- UI基本控件-UILabel-UITextField-UIButton-UIAlertView
- 数组的指针特性
- DSP-BIOS使用入门
- Java多线程
- Hadoop2.2配置(windows)
- 初识 ServiceWorker
- weka csv文件出现错误
- thinkphp 3.2.3 上传文件
- Android 安装+配置+运行模拟器
- PHP5.6新特性介绍
- hdu 4089 Activation 概率dp
- ubuntu中SSH本机配置
- 使用Tcl脚本分配FPGA管脚