准备工作
以windows环境为例: 安装jdk,设置环境变量JAVA_HOME为jdk安装目录 安装Cygwin,安装时注意选择安装软件包openssh - Net 类,安装完成将cygwin/bin加入环境变量path。 确认ssh。打开cygwin命令行,分别执行以下命令 安装sshd:$ ssh-host-config 启动sshd服务:$ net start sshd 配置免密码登录用户:$ ssh-user-config 检查可登录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学习笔记之四:运行MapReduce作业做集成测试 集成测试是在整个系统或部分系统组合后进行的测试,对于Hadoop项目,这通常意味着在真实或模拟的Hadoop集群上运行MapReduce作业。通过集成测试,可以验证应用...
总之,要在Windows下的Eclipse环境中成功运行MapReduce程序,关键在于正确配置Hadoop环境,导入所有必要的jar包,并理解如何设置和提交MapReduce作业。这个过程可能需要一些时间和实践,但一旦配置完成,将为高效...
3. **编写main方法**:设置MapReduce作业的配置信息,如指定输入输出路径、Mapper和Reducer类等,并启动作业执行。 ##### 实验目的 1. **掌握基本的MapReduce编程方法**:理解MapReduce的基本原理和编程流程,学会...
最后,通过Eclipse的"Run As"选项运行MapReduce作业,等待程序完成并查看输出结果。 总的来说,这个项目展示了如何利用Hadoop1的MapReduce进行大数据分析,通过Eclipse提供的便利工具进行开发和测试,这对于理解...
然后,运行Test类,它会启动一个MapReduce作业。作业会连接到HBase集群,执行预设的增删改查操作,并在控制台输出结果。 六、注意事项 在实际应用中,需要注意以下几点: - 确保HBase和MapReduce的版本兼容。 - ...
在Eclipse中,可以通过创建一个Java项目,然后将这些JAR包添加到项目的构建路径中,以便编译和运行MapReduce作业。当你的MapReduce程序完成开发并经过本地测试后,你可以使用Hadoop的命令行工具将其打包成JAR文件,...
2. **Eclipse Hadoop插件**:如`Hadoop-Eclipse-Plugin`,这个插件允许开发者直接在Eclipse中创建、编辑和运行MapReduce作业。它可以将作业提交到本地或远程的Hadoop集群,提供了方便的调试和测试环境。 3. **Maven...
综上所述,这个插件的安装和使用能够显著提升Hadoop MapReduce在Eclipse中的开发体验,使得开发、测试和部署MapReduce作业变得更加便捷。同时,提供的这些文件可能是为了在Windows环境下运行Hadoop或插件所需的依赖...
除了单元测试,了解如何本地运行MapReduce作业也是提升开发效率的关键。本地模式可以在不启动完整Hadoop集群的情况下运行MapReduce作业,这对于调试和快速验证改动非常有用。此外,理解MapReduce的调试机制,如日志...
8. **运行与调试**:一旦代码在本地验证无误,你可以在实际的Hadoop集群上运行MapReduce作业。使用Hadoop的命令行工具提交作业,并通过日志和输出数据进行调试。 总之,在Windows下编写MapReduce程序需要对Hadoop的...
在Eclipse中直接运行MapReduce程序,可以进行快速的本地测试和调试,减少了实际在集群上运行的时间。 任务3是对开发过程的总结和反思,通常包括遇到的问题、解决策略以及优化建议。在实践中,可能需要根据硬件资源...
Eclipse与Hadoop的集成使得开发者可以在本地环境中编写、测试和调试MapReduce作业,然后再将其部署到Hadoop集群上运行。 要开始在Eclipse中开发MapReduce项目,首先你需要安装以下关键的JAR包,这些包提供了Hadoop ...
标题中的"Idea运行MapperReduce本地环境配置(win10)"指的是使用IntelliJ ...这个过程对于Hadoop开发者来说是基础且重要的,因为它提供了快速测试和调试MapReduce作业的便捷途径,避免了频繁部署到生产集群的繁琐步骤。
MRUnit特别适用于Hadoop 2.x版本,它可以很好地与JUnit集成,帮助测试MapReduce作业的各个部分,如Mapper、Reducer、InputFormat、OutputFormat等。 在使用这些jar包进行单元测试时,开发者需要遵循以下步骤: 1. ...
在运行测试方面,Hadoop提供了一套测试框架,允许开发者对MapReduce作业进行单元测试和集成测试。这包括使用`MiniMRCluster`或`MiniDFSCluster`来模拟完整的Hadoop环境,以及使用`org.apache.hadoop.mapred....
接下来,编写你的MapReduce作业。在Java源代码中,你需要定义Mapper和Reducer类,以及main方法来提交作业。确保你的代码逻辑清晰,便于理解,这将有助于后期的调试工作。 在源码调试方面,Eclipse提供了强大的断点...
这款插件允许开发者在Eclipse集成开发环境中直接创建、配置、运行和调试MapReduce作业,极大地提高了开发效率。 首先,我们要了解Hadoop的核心组件:HDFS(Hadoop Distributed File System)和MapReduce。HDFS是...
3. **Amazon EMR支持**:对于需要在更大规模上运行MapReduce作业的情况,`mrjob`可以直接与Amazon Elastic MapReduce (EMR) 集成,轻松创建和管理EMR集群。 4. **灵活的输入和输出**:`mrjob`支持多种输入和输出...
5. **remote_test**:这个可能涉及到远程Hadoop集群的测试代码,如提交MapReduce作业到远程集群运行,检查作业状态,或者对HDFS上的文件进行远程操作。 学习这些示例代码,不仅可以理解Hadoop生态的基本组件和它们...
2. **集成测试** 测试完整的MapReduce作业流程,确保Mapper、Reducer以及整个Job的交互无误。 3. **压力测试** 可以使用MRUnit模拟大数据量的场景,测试在高负载下的性能和稳定性。 4. **异常处理** 测试Mapper...