Eclipse中MapReduce配置、应用以及Haoop的数据类型

前言: 本来计划昨天就写完这篇文章,但是由于hadoop-eclipse-plugin-2.6.0.jar插件的问题,耽误了一天,具体配置hadoop-eclipse-plugin的过程可以参考下面的网站:http://dblab.xmu.edu.cn/blog/hadoop-build-project-using-eclipse/,我分享一下自己在这个过程中的教训,免得大家像我一样浪费一天的时间。

hadoop2x-eclipse-plugi的下载:

要在 Eclipse 上编译和运行 MapReduce 程序,需要安装 hadoop-eclipse-plugin,可下载 Github 上的 hadoop2x-eclipse-plugin(备用下载地址:http://pan.baidu.com/s/1i4ikIoP)。

出现的问题:

  1. 我的Ubuntu系统无法从gituhb上下载安装包,一直提示下载失败。
  2. 在Windows中下在到U盘里,然后放到Ubuntu系统中解压后发现没有了放置hadoop-eclipse-plugin-2.6.0.jar的release文件夹。
  3. 在Windows下解压完毕,只copy其中的jar插件,在Ubuntu中直接无法打开文件。
  4. 在Ubuntu下载时出现两种文件(如下),都没用,打不开。
    在这里插入图片描述

(这就是我浪费时间的原因)

解决办法:

  1. 自行编译hadoop2.6.0的eclipse插件,参考下面网址
    https://www.cnblogs.com/myresearch/p/hadoop-eclipse-plugin-jar.html

  2. 找hadoop-eclipse-plugin-2.6.0.jar,我就是同学给了一个他的插件,有需要可以滴滴我,可能是上面网站压缩包中文件有问题。

注意
将hadoop-eclipse-plugin-2.6.0.jar插件放入eclipse下的dropins文件夹下,不要按照教程放入plugins下。其余的完全可以参照教程。

WordCount实例运行

代码在上述网站中可以找到,运行结果如下:
在这里插入图片描述看到一片红也别慌,真实结果在这个文件中
在这里插入图片描述在这里插入图片描述运行可能的报错
在这里插入图片描述
解决办法: 执行下面命令,删除output文件夹
/usr/loca/hadoop/bin/hadoop fs -rm -r output

Hadoop中数据类型

1、基本数据类型
Nullwritable:当< key, value>中的key或 value为空时使用
Text:使用UTF8格式存储的文本
LongWritable:长整型数
writable:整型数
Floatwritable:浮点数
Doublewritab|e:双字节数值
ByteWritable:单字节数值
BooleanWritable:标准布尔型数值

数据类型都实现 Writable接口,以便用这些类型定义的数据可以被序列化进行writable -value

2、用户自定义数据类型的实现

 1.继承接口Writable,实现其方法write()和readFields(), 以便该数据能被序列化后完成网络传输或文件输入/输出;
 2.如果该数据需要作为主键key使用,或需要比较数值大小时,则需要实现WritalbeComparable接口,实现其方法write(),readFields(),CompareTo() 
public class Point3D implements Writable<Point3D>

{

    private float x,y,z;

    public float getX(){return x;}

    public float getY(){return y;}

    public float getZ(){return z;}

 

    public void readFields(DataInput in) throws IOException

    {

        x = in.readFloat();

        y = in.readFloat();

        z = in.readFloat();

    }

 

    public void write(DataOutput out) throws IOException

    {

         out.writeFloat(x);

         out.writeFloat(y);

         out.writeFloat(z);

    }

}

 

 

 

public class Point3D implements WritableComparable<Point3D>

{

    private float x,y,z;

    public float getX(){return x;}

    public float getY(){return y;}

    public float getZ(){return z;}

    public void readFields(DataInput in) throws IOException

    {

        x = in.readFloat();

        y = in.readFloat();

        z = in.readFloat();

    }

    public void write(DataOutput out) throws IOException

    {

         out.writeFloat(x);

         out.writeFloat(y);

         out.writeFloat(z);

    }

 

    public int CompareTo(Point3D p)

    {

        //具体实现比较当前的空间坐标点this(x,y,z)与指定的点p(x,y,z)的大小

        // 并输出: -1(小于), 0(等于), 1(大于)

    }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lqcStar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值