• 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进入下载页面:

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

    配置环境变量

    配置HADOOP_HOMEHADOOP_USER_NAME环境变量、PATH(系统变量

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

    Windows下开发

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

    winutils.exe放在E:hadoop-2.6.0in目录下,将hadoop.dll放在C:WindowsSystem32下

    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.2sharehadoop,这个文件夹是刚才解压hadoop安装包解压的文件夹。

    导入doc文档

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

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

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

    5 使用HDT(MapReduce编程)

    设置JVM参数

    创建好Map/Reduce Project后要设置JVM参数设置为:

    -Djava.library.path=$HADOOP_HOME/lib/native

    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的值

    转载与引用请注明出处。
    
    时间仓促,水平有限,如有不当之处,欢迎指正。
  • 相关阅读:
    NanUI for Winform发布,让Winform界面设计拥有无限可能
    使用Nginx反向代理 让IIS和Tomcat等多个站点一起飞
    jQuery功能强大的图片查看器插件
    Entity Framework 5.0 Code First全面学习
    封装EF code first用存储过程的分页方法
    NET中使用Redis (二)
    Redis学习笔记~Redis主从服务器,读写分离
    ID3算法
    定性归纳(1)
    js加密
  • 原文地址:https://www.cnblogs.com/hdwgxz/p/9001438.html
Copyright © 2020-2023  润新知