[原创] 毕设---在myeclipes中安装Hadoop开发插件

1、安装Hadoop开发插件

hadoop安装包contrib/目录下有个插件hadoop-0.20.2-eclipse-plugin.jar,拷贝到myeclipse根目录下/dropins目录下。

2、 启动myeclipse,打开Perspective:

【Window】->【Open Perspective】->【Other...】->【Map/Reduce】->【OK】

3、 打开一个View:

【Window】->【Show View】->【Other...】->【MapReduce Tools】->【Map/Reduce Locations】->【OK】

4、 添加Hadoop location:

location name: 我填写的是:localhost.
Map/Reduce Master 这个框里
Host:就是jobtracker 所在的集群机器,这里写localhost
Hort:就是jobtracker 的port,这里写的是9999
这两个参数就是mapred-site.xml里面mapred.job.tracker里面的ip和port
DFS Master 这个框里
Host:就是namenode所在的集群机器,这里写localhost
Port:就是namenode的port,这里写8888
这两个参数就是core-site.xml里面fs.default.name里面的ip和port
(Use M/R master host,这个复选框如果选上,就默认和Map/Reduce Master这个框里的host一样,如果不选择,就可以自己定义输入,这里jobtracker 和namenode在一个机器上,所以是一样的,就勾选上)

user name:这个是连接hadoop的用户名,因为我是用lsq用户安装的hadoop,而且没建立其他的用户,所以就用lsq。下面的不用填写。
然后点击finish按钮,此时,这个视图中就有多了一条记录。

重启myeclipse并重新编辑刚才建立的那个连接记录,现在我们编辑advance parameters tab页
(重启编辑advance parameters tab页原因:在新建连接的时候,这个advance paramters tab页面的一些属性会显示不出来,显示不出来也就没法设置,所以必须重启一下eclipse再进来编辑才能看到)

这里大部分的属性都已经自动填写上了,其实就是把core-defaulte.xml、hdfs-defaulte.xml、mapred-defaulte.xml里面的一些配置属性展示出来。因为在安装hadoop的时候,其site系列配置文件里有改动,所以这里也要弄成一样的设置。主要关注的有以下属性:
fs.defualt.name:这个在General tab页已经设置了
mapred.job.tracker:这个在General tab页也设置了
dfs.replication:这个这里默认是3,因为我在hdfs-site.xml里面设置成了1,所以这里也要设置成1
hadoop.job.ugi:这里要填写:lsq,Tardis,逗号前面的是连接的hadoop的用户,逗号后面就写死Tardis(这个属性不知道我怎么没有...)
然后点击finish,然后就连接上了(先要启动sshd服务,启动hadoop进程),连接上的标志如图:

5、新建Map/Reduce Project:

【File】->【New】->【Project...】->【Map/Reduce】->【Map/Reduce Project】->【Project name: WordCount】->【Configure Hadoop install directory...】->【Hadoop installation directory: D:\cygwin\home\lsq\hadoop-0.20.2】->【Apply】->【OK】->【Next】->【Allow output folders for source folders】->【Finish】

6、新建WordCount类:

添加/编写源代码:

D:\cygwin\home\lsq\hadoop-0.20.2/src/examples/org/apache/hadoop/examples/WordCount.java

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> <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);

}

}

7、上传模拟数据文件夹。

为了运行程序,需要一个输入的文件夹和输出的文件夹。输出文件夹,在程序运行完成后会自动生成。我们需要给程序一个输入文件夹。

(1)、在当前目录(如hadoop安装目录)下新建文件夹input,并在文件夹下新建两个文件file1、file2,这两个文件内容分别如下:

file1

Hello World Bye World
file2
Hello Hadoop Goodbye Hadoop

(2)、.将文件夹input上传到分布式文件系统中。
在已经启动Hadoop守护进程终端中cd 到hadoop安装目录,运行下面命令:
bin/hadoop fs -put input in
8、 配置运行参数:

①在新建的项目WordCount,点击WordCount.java,右键-->Run As-->Run Configurations
②在弹出的Run Configurations对话框中,点Java Application,右键-->New,这时会新建一个application名为WordCount
③配置运行参数,点Arguments,在Program arguments中输入“你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹”,如:

(如果运行时报java.lang.OutOfMemoryError: Java heap space 配置VM arguments(在Program arguments下)

-Xms512m -Xmx1024m -XX:MaxPermSize=256m


8、点击Run,运行程序

点击Run,运行程序,过段时间将运行完成,等运行结束后,可以在终端中用命令如下,查看是否生成文件夹output:

bin/hadoop fs -ls

用下面命令查看生成的文件内容:

bin/hadoop fs -cat output/*

如果显示如下,说明已经成功在myeclipse下运行第一个MapReduce程序了。

Bye 1
Goodbye 1
Hadoop 2
Hello 2
World 2

转载于:https://www.cnblogs.com/jasonHome/p/6816453.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/416774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu安装显卡驱动

1.卸载系统里低版本的英伟达驱动 sudo apt-get purge nvidia* 2.把显卡驱动加入PPA sudo add-apt-repository ppa:graphics-drivers sudo apt-get update 3.查找英伟达显卡驱动最新版本号 sudo apt-cache search nvidia 使用终端命令查看Ubuntu推荐的驱动版本 ubuntu-driver…

[转]cubemap soft shadow

https://community.arm.com/graphics/b/blog/posts/dynamic-soft-shadows-based-on-local-cubemap转载于:https://www.cnblogs.com/wantnon/p/6819103.html

flutter打开第三方应用

添加依赖 url_launcher: ^5.4.1 ————————main.dart import package:url_launcher/url_launcher.dart;void main() > runApp(MyApp());const String TITLEwhqtest;class MyApp extends StatelessWidget {overrideWidget build(BuildContext context) {return Materi…

vue2 watch引用类型 失败原因

vue中watch基本用法&#xff1a;  new Vue({el: #t1,data: {a: {b: 1,c: 2},},methods: {ch() {this.a.d5   //不打印ok 原理是watch只watch挂在data中的数据&#xff0c;初始化时给他们分别赋予setter与getter&#xff0c;如果是中途加上的属性&#xff0c;由于没有sette…

flutter webview浏览器及与js交互、打开第三方app

添加pubspec.yaml依赖 url_launcher: ^5.4.1 webview_flutter: ^0.3.181 --------------main.dart import package:flutter/material.dart; import package:url_launcher/url_launcher.dart; import package:webview_flutter/webview_flutter.dart;void main() > runApp(M…

Flutter1.12与原生Android交互(kotlin)

开发原生部分&#xff0c;还是点击Open for Editing in Android Studio好用&#xff0c;提示、自动引用功能都能正常使用。 -----------android/app/src/main/kotlin/com/glodon/gzzjy_app/MainActivity.kt import android.os.Bundle import android.os.PersistableBundle impo…

IP及端口号

IP&#xff1a;代表一台机器 端口号&#xff1a;每一个程序都有一个端口号与之对应 一个域名对应一个虚拟主机转载于:https://www.cnblogs.com/hwgok/p/6822372.html

Greenplum5单机部署连接报错 System was started in master-only utility mode问题修复

psql连接单机部署的Greenplum5会报错&#xff1a; psql: FATAL: System was started in master-only utility mode - only utility mode connections are allowed 命令可以使用 PGOPTIONS-c gp_session_roleutility psql -d postgres 但是程序、客户端都不行&#xff0c; …

ArcEngine临时数据存储 创建内存工作空间

参考网址&#xff0c;这里 工作中有时候需要使用临时数据&#xff0c;以前都是创建一个默认的shapefile或者gdb&#xff0c;今天发现esri官方帮助文档给出了一个方法&#xff0c;可以创建内存工作空间&#xff0c;代码如下&#xff1a; public static IWorkspace CreateInMemor…

postgresql数据库迁移技巧(降低版本迁移到GreenPlum pg11-pg8)

工具&#xff1a;navicat12 步骤&#xff1a; 1.创建scheme 2.导出源scheme的结构sql 3.在目标数据库执行源scheme结构sql中创建序列部分 4.直接操作拷贝scheme所有表&#xff08;使用生成sql会有版本不兼容的问题&#xff0c;我是从11降到8&#xff0c;跨度比较大&#xff09…

“约见”面试官系列之常见面试题之第九十六篇之active-class是谁的属性(建议收藏)

active-class 属于vue-router的样式方法&#xff0c;当router-link标签被点击时将会应用这个样式 一、首先&#xff0c;active-class是什么&#xff0c;active-class是vue-router模块的router-link组件中的属性&#xff0c;用来做选中样式的切换&#xff1b;相关可查阅文档&…

centos8安装中文(zh_CN)语言包

首先查看当前字符集 locale 看看有没有zh_CN.utf8 locale -a |grep CN 没有就安装 yum install -y langpacks-zh_CN 安装后再次确认配置 vi /etc/locale.conf LANG"zh_CN.UTF-8" 修改后重启即可

[转载][QT][SQL]sql学习记录3_sqlite之update delete like

转载自:详见 : http://www.runoob.com/sqlite/sqlite-create-table.html 约束表实例 下面是一个实例&#xff0c;它创建了一个 COMPANY 表&#xff0c;ID 作为主键&#xff0c;NOT NULL 的约束表示在表中创建纪录时这些字段不能为 NULL&#xff1a; sqlite> CREATE TABLE CO…

VirtualBox虚拟机与主机互相访问开启

VirtualBox主机网络管理器上创建一个网络&#xff08;默认名vboxnet0&#xff09; 虚拟机设置 网卡1 NAT&#xff08;默认&#xff09; 添加网卡2 选择Host-Only网络&#xff0c;界面名称选vboxnet0即可。 端口映射可以添加在NAT网卡上。

“约见”面试官系列之常见面试题之第九十七篇之怎么定义vue-router的动态路由(建议收藏)

在router目录下的index.js文件中&#xff0c;对path属性加上/:id。 使用router对象的params.id 例如 : this.$route.params.id

一段比较好的加1操作。能够防止简单的++造成的溢出。

自编代码。#include#includetypedef uint16_t DdHalfWord;#define DD_MAXREF ((DdHalfWord) ~0)#define cuddSatInc(x) ((x) (x) ! (DdHalfWord)DD_MAXREF)int main(){DdHalfWord X0xFFFE;printf("%x\n",cuddSatInc(X));getchar();getchar();}上述代码中&#xff0c…

ubuntu等linux系统给windows共享文件

安装 sudo apt-get install samba 修改配置添加共享目录 /home/whq sudo gedit /etc/samba/smb.conf & 添加 [ShareFiles]comment Shared Folder require passwordpath /home/whq/valid users whqavailable yesread only nobrowsable yespublic yeswritable yes…

“约见”面试官系列之常见面试题之第九十九篇之router的钩子函数(建议收藏)

当使用路由参数时&#xff0c;例如从 /user/aside导航到 /user/foo&#xff0c;原来的组件实例会被复用。因为两个路由都渲染同个组件&#xff0c;比起销毁再创建&#xff0c;复用则更加高效。不过&#xff0c;这也意味着组件的生命周期钩子不会再被调用。 注意: &#xff08…

ubuntu18虚拟机添加网卡后,不自动启用dhcp

使用命令ifconfig查看&#xff0c;没有这个新网卡 使用命令ifconfig -a 查看有这个新网卡&#xff0c;叫enp0s 接下来修改网卡配置&#xff0c;启用该网卡的dhcp sudo vi /etc/netplan/50-cloud-init.yaml 注意&#xff1a;ubuntu18采用netplan进行网络配置管理&#xff0c;…

“约见”面试官系列之常见面试题之第九十八篇之vue-router有哪几种导航钩子(建议收藏)

目录 1.导航钩子的作用 2.导航钩子的分类 3.全局守卫 4.路由独享守卫 5.局部守卫 6.路由跳转导航解析流程&#xff0c;当由A路由–>B路由的时候 1.导航钩子的作用 vue-router提供的导航钩子主要用来拦截导航&#xff0c;让它完成跳转或取消。 2.导航钩子的分类 全局守…