hadoop_eclipse及HDT插件的使用

Hadoop Development Tools (HDT)是开发hadoop应用的eclipse插件,http://hdt.incubator.apache.org/介绍了其特点,安装,使用等,针对Windows版的eclipse,介绍一种不同的安装方式、和使用方式。

1 下载HDT

打开:http://hdt.incubator.apache.org/download.html,部分页面:

下载HDT 0.0.2.incubating (Binary)版。点击“tar.gz”,跳转到:

http://www.apache.org/dyn/closer.cgi/incubator/hdt/hdt-0.0.2.incubating/hdt-0.0.2.incubating-bin.tar.gz,部分页面:

点击红框部分的连接,下载HDT,解压看到文件夹内容:

2 安装HDT插件

下载当前最新版(eclipse oxygen)

点击Download Packages。

下载64bit版本。文件为:eclipse-jee-oxygen-3a-win32-x86_64.zip,解压:

将HDT的features和plugins中的文件,对应放到上面的文件夹内。

3 下载hadoop并配置环境变量

下载Hadoop

输入网址:http://hadoop.apache.org/,看到下面的部分。

点击Download进入下载页面:

下载3.0.2版本的binary,注意下载的时候选择一个国内的镜像,这样下载的速度会比较快。解压到指定目录,例如:E:\hadoop-3.0.2。文件夹包括:

配置环境变量

配置HADOOP_HOME、HADOOP_USER_NAME环境变量、PATH(系统变量)

HADOOP_HOME配置为E:\hadoop-2.6.5,PATH添加%HADOOP_HOME%\bin

Windows下开发

为了能在Windows平台下做开发,还需要两个文件winutils.exe和hadoop.dll

4 安装HDT

1)点击顺序:File->Other->展开Hadoop,入下面两幅图所示:

2)选择

,如下图:

给项目取一个名称:MapReduce_4_27,并选择“Use default Hadoop”(默认的设置)。

3)配置Hadoop安装目录

点击2)步奏中的进行配置,其中配置的就是刚才hadoop解压文件的路径。

点击“Apply and Close”,显示如下界面:

点击

,显示如下界面:

最后点击“Finish”。

4)导入开发包和javadoc文档

右键->项目属性->选择Property->在弹出的对话框左侧列表中选择Java Build Path->选择Libraries->选择Add Library->弹出窗口内选择User Library->点击Next->点击User Libraries->点击New->在弹出的窗口内输入必要信息->将必要的jar包添加进去。

所需的开发包在E:\hadoop-3.0.2\share\hadoop,这个文件夹是刚才解压hadoop安装包解压的文件夹。

导入doc文档

右键lib文件夹->点击Build Path->点击Config Build Path

点击Javadoc Location->点击Browse选择doc文档路径。

点击validate可以验证是否是正确的路径,下面分别展示了正确的路径和非正确的路径验证信息。

5 使用HDT(MapReduce编程)

Mapper:创建Mapper类的子类

例,模板自动生成的map函数框架

import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

public class Tmap extends Mapper<LongWritable, Text, Text, IntWritable> {

    public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
    }

}

Reducer:创建Reducer类的子类

例:模板自动生成的reduce函数框架

import java.io.IOException;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

public class Treduce extends Reducer<Text, IntWritable, Text, IntWritable> {

    public void reduce(Text key, Iterable<IntWritable> values, Context context)
            throws IOException, InterruptedException {
        while (values.iterator().hasNext()) {
            // replace ValueType with the real type of your value
            // process value
        }
    }

}

MapReduce Driver:创建驱动

例:模板自动生成的驱动框架

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.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class TMR {

    public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {
      Job job = new Job();
    
      job.setJarByClass( ... );
    
      job.setJobName( "a nice name"  );
    
      FileInputFormat.setInputPaths(job, new Path(args[0]));
      FileOutputFormat.setOutputPath(job, new Path(args[1]));
    
      // TODO: specify a mapper
    job.setMapperClass( ... );
    
      // TODO: specify a reducer
    job.setReducerClass( ... );
    
      job.setOutputKeyClass(Text.class);
      job.setOutputValueClass(IntWritable.class);
    
      boolean success = job.waitForCompletion(true);
      System.exit(success ? 0 : 1);
        };

}

New MR Cluster:集群配置

可以点击下图中的New MR Cluster配置集群

也可以点击eclipse的图标来配置集群:

配置页面如下:

Resource Manager Node:配置资源管理节点,对应Hadoop配置文件

DFS Master:配置分布式文件系统主节点,即NameNode节点的端口号。对应配置文件fs.default.name的值

--------------------------------------------------------------------

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

函数使得索引列失效

      在索引列上使用函数使得索引失效的是常见的索引失效原因之一,因此尽可能的避免在索引列上使用函数。尽管可以使用基于函数的索引来 解决索引失效的问题,但...

723
来自专栏杨建荣的学习笔记

浅谈exp/imp(上) (r5笔记第81天)

作为DBA,经常需要在不同数据库环境间做数据的导入导出,exp/imp就是这样的轻便快捷的客户端工具,可以很方便的在不同数据库之间转移数据对象,即使数据库位于不...

2598
来自专栏木宛城主

SharePoint 2013 Step by Step—— How to Upload Multiple Documents in Document Library

How to Upload Multiple documents in SharePoint 2013,Options to add multiple file...

1869
来自专栏乐沙弥的世界

Oracle 12c手工建库(非CDB及CDB创建)

对于Oracle数据库的创建,Oracle除了支持dbca(GUI界面),同时也支持手工方式创建数据库,即使用CREATE DATABASE语句创建数据库。使用...

651
来自专栏积累沉淀

Hive与HBase实现数据互导

建立与HBase的识别表 hive> create table hive_hbase_1(key int,value string)     > stored...

1928
来自专栏运维前线

Mac OS X 设置指南

由于公司的IOS离职,侥幸获得其Mac Pro的使用权,因此特地总结了下小白使用Mac OS X的初始配置。 ? 1、系统首选项(system preefe...

1958
来自专栏乐沙弥的世界

使用RMAN迁移文件系统数据库到ASM

在实际的工作过程中,由于ASM磁盘管理的便利性,因此很多时候需要将文件系统的数据库迁移到ASM,本文演示了如何将文件系统数据库迁移到ASM实例。

492
来自专栏乐沙弥的世界

Oracle大表清理truncate .. reuse storage

a、通过上述测试,当使用reuse storage与普通方式并无明显差异 b、truncate table 是ddl操作,无法回滚 c、尽管无明显性能差...

764
来自专栏Netkiller

Linux磁盘分区加密

本文节选自《Netkiller Cryptography 手札》 出处: http://netkiller.github.io/cryptography/ind...

3284
来自专栏Linux驱动

Linux-tar命令(2)

tar 用于可以为文件和目录创建档案。可以为某一特定文件打包(备份文件), 也可以在档案中改变文件,或者向档案中加入新的文件。 主选参数: ...

1728

扫码关注云+社区