VMWare虚拟机安装CentOS 7 Linux及Hadoop与Eclipse学习环境(3-Eclipse开发环境)
来源:互联网 发布:单片机开发板怎么做得 编辑:程序博客网 时间:2024/05/21 11:25
4. 安装Eclipse
4.1. 安装Java IDE版Eclipse
由于Java环境是JDK1.7版本,则Eclipse不能使用较新版本,按同事推荐使用Eclipse 4.4 版本,下载地址为:eclipse-java-luna-SR2-linux-gtk-x86_64.tar.gz
要把eclipse安装到hadoop用户下,因为以后的开发也都是在hadoop用户下进行,否则会有一些权限的问题导致后面无法继续。
拷贝Eclipse压缩包到/home/hadoop下,并解压(网上资料一般是解压到 /opt 目录下)。
[hadoop@hadoop_master ~]$ cp /mnt/hgfs/dev/eclipse-java-luna-SR2-linux-gtk-x86_64.tar.gz eclipse-java-luna.tar.gz[hadoop@hadoop_master ~]$ tar -zvxf eclipse-java-luna.tar.gz
符号链接的用法 ln -s 源文件 目标文件 ,-s 是符号的意思(symbolic)软连接,命令的意思是,在/usr/bin/eclipse 目录下创建一个同步连接,而源文件在/home/hadoop/eclipse/eclipse目录下
[hadoop@hadoop_master ~]$ su root[hadoop@hadoop_master ~]$ cd eclipse[root@hadoop_master eclipse]# ln -s /home/hadoop/eclipse/eclipse /usr/bin/eclipse[root@hadoop_master eclipse]# vim /usr/share/applications/eclipse.desktop
创建一个 Gnome 启动(桌面应用程序)
[Desktop Entry]Encoding=UTF-8Name=Eclipse 4.4.2Comment=Eclipse LunaExec=/usr/bin/eclipseIcon=/home/hadoop/eclipse/icon.xpmCategories=Application;Development;Java;IDEVersion=1.0Type=ApplicationTerminal=0
检查 app 是否已经被添加,在菜单“应用程序”->“编程”下,将出现Eclipse 4.4.2。
设置Eclipse的Workspace。
4.2. 安装Eclipse hadoop插件
[hadoop@hadoop_master ~]$ cd eclipse/plugins[hadoop@hadoop_master plugins]$ cp /mnt/hgfs/dev/hadoop-eclipse-plugin-2.7.3.jar hadoop-eclipse-plugin-2.7.3.jar
关于参数配置和问题调整:
启动Eclipse,进入菜单 Window->Peferences,找到Hadoop插件,按Browse按钮,设置当前主机上的Hadoop安装目录(/home/hadoop/hadoop-2.7.3
)。
进入菜单 Window ->Open Perspective->Others,选择Map/Reduce
主窗口会出现插件视图,在Location区域单击右键,选择 New Hadoop Location。
Hadoop Location配置窗口,location name随便起一个有意义的名字就可以,这里为myhadoop。
Map/Reduce Mater的Host/Port有两种情况:
(1)如果是以传统的JT/TT模式运行M/R任务,这个值要根据mapred_site.xml 当中的 mapreduce.jobtracker.address 参数设定
(2)如果是以YARN资源管理模式运行M/R任务,这个值要根据 yarn_site.xml 当中的 yarn.resourcemanager.scheduler.address 参数设定
在本例中:host为localhost,port为50070。
DFS Master的Host/Port值是要根据 core_site.xml 当中的 fs.defaultFS 参数设定。
上面参数设定完成后,就可以在图形界面上,看到HDFS系统的目录树和文件了。
启动hadoop:
用sbin/start-dfs.sh来启动hadoop,就可以在eclipse中连接和查看hadoop了。
5. 编写WordCount例子
在hadoop包中的hadoop-2.7.3->share->hadoop->mapreduce中的hadoop-mapreduce-examples 2.7.3.jar(源码在hadoop-mapreduce-examples-2.7.3-sources.jar)包中。
package org.apache.hadoop.examples;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> [<in>...] <out>"); System.exit(2); } Job job = Job.getInstance(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); for (int i = 0; i < otherArgs.length - 1; ++i) { FileInputFormat.addInputPath(job, new Path(otherArgs[i])); } FileOutputFormat.setOutputPath(job, new Path(otherArgs[otherArgs.length - 1])); System.exit(job.waitForCompletion(true) ? 0 : 1); }}
点击 File 菜单,选择 New -> Project…:
选择 Map/Reduce Project,点击 Next。
填写 Project name 为 WordCount 即可,点击 Finish 就创建好了项目。
此时在左侧的 Project Explorer 就能看到刚才建立的项目了。接着右键点击刚创建的 WordCount 项目,选择 New -> Class。
需要填写两个地方:在 Package 处填写 org.apache.hadoop.examples;在 Name 处填写 WordCount。
粘贴代码到Eclipse的代码编辑窗口中。
在运行 MapReduce 程序前,还需要执行一项重要操作(也就是上面提到的通过复制配置文件解决参数设置问题):将/home/hadoop/hadoop-2.7.3/etc/hadoop 中将有修改过的配置文件(如伪分布式需要 core-site.xml 和 hdfs-site.xml),以及 log4j.properties 复制到 WordCount 项目下的 src 文件夹(~/workspace/WordCount/src)中:
[hadoop@hadoop_master examples]$ cp /home/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml core-site.xml[hadoop@hadoop_master examples]$ cp /home/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml hdfs-site.xml[hadoop@hadoop_master examples]$ cp /home/hadoop/hadoop-2.7.3/etc/hadoop/log4j.properties log4j.properties
点击工具栏中的 Run 图标,或者右键点击 Project Explorer 中的 WordCount.java,选择 Run As -> Run on Hadoop,就可以运行 MapReduce 程序了。不过由于没有指定参数,运行时会提示 “Usage: wordcount “,需要通过Eclipse设定一下运行参数。
右键点击刚创建的 WordCount.java,选择 Run As -> Run Configurations,在此处可以设置运行时的相关参数(如果 Java Application 下面没有 WordCount,那么需要先双击 Java Application)。切换到 “Arguments” 栏,在 Program arguments 处填写 “input output” 就可以了。
注:在运行时报错:Exception in thread “main” org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: file:/home/hadoop/workspace/WordCount/input。
解决办法是:手工在WordCount下建input目录。
参考:
[1].VMWare虚拟机安装CentOS 7 Linux及Hadoop与Eclipse学习环境(2-伪分布模式hadoop环境) 肖永威 2016.11
[2].使用Eclipse编译运行MapReduce程序 Hadoop2.6.0_Ubuntu/CentOS
- VMWare虚拟机安装CentOS 7 Linux及Hadoop与Eclipse学习环境(3-Eclipse开发环境)
- VMWare虚拟机安装CentOS 7 Linux及Hadoop与Eclipse学习环境(2-伪分布模式hadoop环境)
- Hadoop学习笔记(一)----环境搭建之VMware虚拟机安装及创建CentOS
- Hadoop+eclipse开发环境
- ubuntu+hadoop+eclipse开发环境安装与配置
- Linux:CentOS安装包+VMware安装包+Linux连接工具(xmanager)+Hadoop安装包+Eclipse Hadoop插件及Eclipse软件+相关工程:
- CentOS下安装Eclipse C++开发环境
- linux下eclipse开发hadoop-环境搭建
- ubuntu linux eclipse 集成hadoop开发环境
- hadoop搭建与eclipse开发环境设置
- hadoop搭建与eclipse开发环境设置
- hadoop搭建与eclipse开发环境设置
- hadoop搭建与eclipse开发环境设置
- virtualbox ubuntu虚拟机安装配置android开发环境(eclipse+ndk+sdk)及注意事项
- Hadoop开发环境的配置(安装eclipse)
- 使用VMWare虚拟机创建CentOS版本的Linux学习环境
- Linux下安装Java开发环境及Eclipse
- Linux(centos)环境+xmanager+eclipse安装使用
- win7(64bit)下pyspider的安装
- Chrome浏览器扩展开发系列之五:Page Action类型的Chrome浏览器扩展
- SAE基本使用
- ps命令的英文帮助文档
- Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds问题解决
- VMWare虚拟机安装CentOS 7 Linux及Hadoop与Eclipse学习环境(3-Eclipse开发环境)
- bulkload向hbase表中入数据
- Chrome浏览器扩展开发系列之六:options 页面
- js 时间戳转为日期格式
- 微型投影仪第五篇——Metro UI
- Git远程操作详解
- Planar Homographies (平面单应矩阵)
- 原生js中创建ajax
- 有趣的KVC-几行代码打造一个万能容器对象