• MapReduce


    1、MapReduce编程模型:

    1)  Map阶段

    1. 输入数据格式的解析,InputFormat
    2. 输入数据处理,Mapper
    3. 数据分组(map函数处理以后的结果数据),Partitioner

    2)  Reduce阶段

    1. 数据远程拷贝
    2. 数据按照key排序
    3. 数据处理,Reduce
    4. 数据输出格式(Reduce函数处理以后的结果数据),OutputFormat

     2、实现map和reduce函数的编写。其主要包括:

    1. Mapper区域
    2. Reduce区域
    3. Client区域

    正常情况下开发流程如上图所示,但是在实际开发过程中,这样开发会非常的繁琐,比较慢。写完代码后不知道对错,只能走一遍流程才知道程序哪里出了问题。能不能有一个更好的方法?答案是肯定的,因此我们需要安装Hadoop Eclipse插件并使用Eclipse查看文件系统,安装成功后的效果如下所示。(插件的安装的详细流程请参考本人博客:https://www.cnblogs.com/ltolstar/p/9743506.html

    接下来就要创建Map/Reduce工程,进行MapReduce编程。程序完成后直接在Eclipse中即可运行。如果各配置正常,则会直接在控制台输出处理信息。

    但是,可能出现以下问题。

    第一,如下图所示。这种情况一般是由于hadoop.dllwinutils.exe和当前安装的hadoop的版本不一致所造成的。或者在%HADOOP_HOME%in下面根本就没有这两个文件。这时就要在网上根据自己hadoop的版本下载并放在%HADOOP_HOME%in目录下,并且将hadoop.dllC:WindowsSystem32下也放一份。如果还不能解决问题,在代码中强制加载hadoop.dll试试。参考:https://blog.csdn.net/weixin_37624828/article/details/83302631

     

    第二,在执行代码的过程中,可能在控制台无法打印进度信息的问题。可以在工程的src文件夹下创建log4j.properties文件。并在文件中编辑如下信息,即可解决问题。

    log4j.rootLogger=INFO, stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
    log4j.appender.logfile=org.apache.log4j.FileAppender
    log4j.appender.logfile.File=target/spring.log
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

    最后,利用JDBC做了一个操作Hive的工具类。利用eclipse可以进行操作Hive,包括创建数据库,创建表,查询,导入数据,删除表等。详细情况参考代码HiveUtils.java

  • 相关阅读:
    Chrome自带恐龙小游戏的源码研究(四)
    Chrome自带恐龙小游戏的源码研究(三)
    Chrome自带恐龙小游戏的源码研究(二)
    Chrome自带恐龙小游戏的源码研究(一)
    使用HTML5制作简单的RPG游戏
    EventListener中的handleEvent
    canvas drawImage方法不显示图片的解决方案
    canvas转盘抽奖的实现(二)
    股市高手的领悟
    《最伟大的投资习惯》读书笔记
  • 原文地址:https://www.cnblogs.com/ltolstar/p/9900136.html
Copyright © 2020-2023  润新知