`
zorufa876
  • 浏览: 82723 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Hadoop学习之路--运行MapReduce作业做集成测试(转)

 
阅读更多


网上找到的一篇文章,基本上windows上按照这个流程就能配置好hadoop的环境,并且能够测试

运行MapReduce作业做集成测试

准备工作
以windows环境为例:
 安装jdk,设置环境变量JAVA_HOME为jdk安装目录
 安装Cygwin,安装时注意选择安装软件包openssh – Net 类,安装完成将cygwin/bin加入环境变量path。
 确认ssh。打开cygwin命令行,分别执行以下命令
  安装sshd:$ ssh-host-config
  启动sshd服务:$ net start sshd
  检查可登录localhost:$ ssh localhost
 下载稳定的hadoop版本,点此选择下载 ,我选择的是0.20.2版本。
 下载后解压,编辑conf/hadoop-env.sh,修改JAVA_HOME为jdk安装目录。

至此,Windows环境下的Hadoop的安装和配置完成,为了运行还需要打包MapReduce作业。我们用maven的 assembly插件来将程序打包。
配置如下:

<build>
 <plugins>
   <plugin>
     <artifactId>maven-assembly-plugin</artifactId>
     <configuration>
       <descriptorRefs>
	<descriptorRef>jar-with-dependencies</descriptorRef>
       </descriptorRefs>
     </configuration>
   </plugin>
  </plugins>
</build>

 

在pom.xml里加入以上配置,运行mvn assembly:assembly命令就可以打包了。

单机运行

  • 特点:
  •  单台机器、单线程运行、不需要启动hadoop进程,利于调试,但没有模拟hadoop集群多个进程的情况,只支持一个reducer。

  • 运行方式:
  • $ bin/hadoop jar --config standalone path/xx.jar WordCount input output

  • 注意点:
  •  用–config指定单机运行时的配置目录(示例中配置目录文件夹名为standalone,在0.20.2版本这个文件夹可以为空目录,不要别的配置文件)
     WordCount为包含运行作业main函数的的类,如果有包名需要加上包名。
     Input文件夹下放置输入的文件。
     output为输出的目录,在运行job前需保证该目录不存在,否则会报错。

    伪分布式运行

  • 特点:
  •  单台机器,启动hadoop所有进程(如NameNode, DataNode, TaskTracker, JobTracker, SecondaryNameNode),较好的模拟hadoop集群情况。

  • 配置:
  •  conf/core-site.xml

    <configuration>
     <property>
             <name>fs.default.name</name>
             <value>hdfs://localhost:9000</value>
         </property>
    </configuration>
    

     

    conf/hdfs-site.xml

    <configuration>
         <property>
             <name>dfs.replication</name>
             <value>1</value>
         </property>
    </configuration>
    

     

    mapred-site.xml

    <configuration>
      <property>
             <name>mapred.job.tracker</name>
             <value>localhost:9001</value>
         </property>
    </configuration>
    

     

  • 运行:
  •  格式化分布式文件系统:$ bin/hadoop namenode –format
     启动hadoop进程:$ bin/start-all.sh
     检查是否启动成功,可访问以下url
      NameNode – http://localhost:50070/
      JobTracker – http://localhost:50030/
     如果不能访问,检查logs目录下的日志分析原因。
     将输入文件复制到分布式文件系统:$ bin/hadoop fs -put local input
     运行作业:$ bin/hadoop jar path/xx.jar WordCount input output
     检查输出:$ bin/hadoop fs -cat output/*
     停止hadoop进程:$ bin/stop-all.sh

    完全分布式运行测试
    完全分布式运行需要利用多台机器,实现hadoop的分布式集群,通过高仿真环境进行集成测试。关于完全分布式运行测试环境搭建可见Cluster Setup

    集成测试总结
    在掌握了如何运行hadoop作业后,测试要做的事就是通过脚本/代码将这个过程自动化起来,一般流程是:
    预设置(准备输入文件、启动hadoop进程等)->运行作业->输出结果跟预期结果的对比->报告导致失败的原因。

    在运行集成测试时需要考虑几个问题:
     集成环境的搭建:需要考虑机器资源,维护成本。
     输入构造:在单元测试时我们可以很容易的构造一些小的键值对,其输出结果可以很好的预期,但在集成测试时小文件意义已经不大了,我们需要仿真的大批量的数据来发现程序的问题,仿真度越高,发现问题的可能性越大。
     输出分析: 我们面对的输入是仿真的海量数据,不可能做输出结果的精确预期,需要借助日志或对输出进行二次分析。在开发时需要考虑这些情况,将有用信息通过日志或输出 的方式存储。在完全分布式模式运行,日志散落在各台机器上,如何有效获取这些日志集中起来做分析?这个我们可以借助Scribe 工具。同样,输出结果也可能为海量数据,如何高效对此进行分析,这可能需要针对输出数据编写测试的MapReduce任务来分析结果。

    分享到:
    评论

    相关推荐

      hadoop-eclipse-plugin-3.1.1.tar.gz

      Hadoop-Eclipse-Plugin-3.1.1是一款专为Eclipse集成开发环境设计的插件,用于方便地在Hadoop分布式文件系统(HDFS)上进行开发和调试MapReduce程序。这款插件是Hadoop生态系统的组成部分,它使得Java开发者能够更加...

      eclipse运行mr插件hadoop-eclipse-plugin-2.6.0.jar

      通过这个插件,开发者可以便捷地在本地开发环境中编写和测试MapReduce程序,然后直接部署到远程Hadoop集群,降低了开发和调试的复杂性。需要注意的是,由于Hadoop的不断升级和优化,不同版本的插件可能与不同版本的...

      hadoop-eclipse-plugin-2.6.0.jar.zip_2.6.0_hadoop_hadoop plugin

      这个插件是针对Hadoop 2.6.0版本设计的,主要目标是集成Eclipse IDE,使得开发者可以在本地环境中便捷地创建、调试和管理Hadoop MapReduce项目。 一、插件功能详解 1. **项目创建与导入**:通过Hadoop Eclipse插件...

      好用的hadoop-eclipse-plugin-2.6.4.jar

      它是Eclipse集成开发环境的一个扩展,允许开发者直接在Eclipse内部创建、管理和运行Hadoop MapReduce项目。通过该插件,开发者可以将Java代码编写、编译和测试的流程无缝集成到熟悉的Eclipse界面中,无需离开IDE就能...

      hadoop-common-2.6.0-bin-master.zip

      4. 测试运行:通过hadoop fs -ls等命令验证Hadoop集群是否正常工作,同时可以编写并运行简单的MapReduce程序,检验本地master环境的可用性。 三、Hadoop 2.6.0的改进与优化 在Hadoop 2.6.0版本中,重点优化了资源...

      hadoop2x-eclipse-plugin

      这个插件允许开发者直接在Eclipse环境中创建、编译、运行和调试Hadoop MapReduce项目,极大地提升了开发效率。 一、安装Hadoop2x-eclipse-plugin 1. 下载插件:首先,你需要从官方网站或者可靠的第三方源下载...

      hadoop-eclipse-plugin-2.6.5.jar插件下载

      通过该插件,开发者无需离开熟悉的Eclipse环境,就能完成对Hadoop MapReduce任务的开发、调试和测试,大大提高了开发效率。 安装Hadoop Eclipse Plugin 2.6.5非常简单,只需要将下载的jar文件(如:hadoop-eclipse-...

      spark-2.3.1-bin-hadoop2.9-without-hive.tgz

      Hadoop 2.9.0是用于分布式存储和计算的开源框架,它是Spark运行的基础之一。在描述中提到的"spark-2.3.1-bin-hadoop2.9-without-hive.tgz"是一个特别构建的Spark发行版,不包含Hive的支持,意味着这个版本的Spark...

      hadoop-lzo-0.4.21-SNAPSHOT.jar

      4. 集成测试:压缩库往往需要进行严格的测试,确保在各种场景下都能正常工作。在提供的文件列表中,我们看到有一个名为“lzo-test-master”的文件,这可能是一个测试用例或测试代码仓库,用于验证Hadoop LZO的功能和...

      hadoop-2.8.3-eclipse-plugin插件包

      Hadoop-2.8.3-Eclipse-Plugin插件包...总之,Hadoop-2.8.3-Eclipse-Plugin是Hadoop开发的重要工具,通过它,开发者可以在熟悉的Eclipse环境中高效地开发、测试和部署Hadoop应用,有效降低了学习曲线和提高了开发效率。

      hadoop-eclipse-plugin-2.7.1.jar

      总的来说,Hadoop Eclipse Plugin 2.7.1 提供了一个直观、高效的开发环境,让Hadoop开发者能在熟悉的Eclipse界面下实现大数据应用的快速开发和测试,降低了Hadoop学习和使用的门槛,对于推动大数据技术的应用和普及...

      hadoop-common-2.7.5-bin-master

      【描述】中提到的"Hadoop.dll"是Hadoop在Windows平台上运行时的一个关键动态链接库文件,它提供了Hadoop在Windows系统上执行作业和任务所需的接口。Hadoop2.7.5版本是一个稳定且广泛使用的版本,具有良好的兼容性和...

      hadoop-eclipse-plugin2.7.2-2.7.3-2.5.1.zip

      总的来说,Hadoop Eclipse Plugin 2.7.2是Hadoop开发者必备的工具之一,它简化了MapReduce应用程序的开发流程,同时也提供了强大的远程调试功能,使得开发者能够在本地环境中高效地开发和测试Hadoop应用,然后无缝...

      hadoop-eclipse-plugin-2.7.3.jar

      然而,对于开发者来说,有效地开发、测试和调试Hadoop应用程序通常需要一个便捷的集成环境。这就是Hadoop-Eclipse-Plugin插件的用武之地。这个插件是专门为Eclipse IDE设计的,使得开发人员可以在Eclipse中直接编写...

      hadoop-eclipse-plugin-2.7.7.jar.zip

      Hadoop Eclipse Plugin是一款强大的开发工具,它将Apache Hadoop的开发环境与Eclipse IDE紧密集成,为Hadoop开发者提供了一种高效、便捷的开发体验。这款插件允许用户在Eclipse中直接创建、编辑、构建和调试...

      hadoop-eclipse-plugin-2.7.0.zip

      Hadoop-eclipse-plugin正是将这两者结合,让开发者在Eclipse中可以直接创建、运行和调试Hadoop MapReduce程序,简化了开发流程。 在安装了hadoop-eclipse-plugin-2.7.0.jar后,开发者可以享受到以下优势: 1. 直接...

      hadoop-eclipse-plugin-2.8.5.jar插件下载

      它将Hadoop的功能集成到Eclipse中,允许开发者直接在IDE内创建、编辑、构建和运行MapReduce作业,无需离开熟悉的开发环境。 在下载并安装hadoop-eclipse-plugin-2.8.5.jar后,你需要按照以下步骤配置Eclipse: 1. ...

      hadoop2.2.0-lib-native-macos.zip

      通过运行Hadoop的相关测试或者简单的MapReduce任务,你可以验证是否成功解决了“cannot load native library”的问题。 这个过程对于在本地开发环境或者生产环境中部署Hadoop至关重要,特别是当你需要在Mac OS这样...

      基于Eclipse的hadoop-eclipse-plugin-2.0.0插件

      `hadoop-eclipse-plugin`是Apache Hadoop项目提供的一款Eclipse集成插件,它允许开发者在Eclipse环境中直接创建、编辑、运行和管理Hadoop MapReduce项目。通过此插件,开发者可以将Hadoop作业直接部署到本地或远程...

    Global site tag (gtag.js) - Google Analytics