准备工作
以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下MapReduce框架的并行C4.5算法 > 项目来源于**西南交通大学**信息科学与技术学院**计算科学与技术专业**毕业设计 ## 说明 * 程序利用Eclipse EE在Hadoop平台下,使用Map/Reduce编程框架,将传统的C...
第8章~第14章介绍Hadoop生态系统,包括支持MapReduce程序的单元测试和集成测试框架、Hadoop系统的监控和日志系统、Hive框架、Pig和Crunch框架、HCatalog框架、Hadoop日志流处理、HBase等。第15章~第17章介绍了数据...
与 Spring Boot 和 Spring for Hadoop 集成,提供统一的配置模型和易于使用的 API 的访问,以便使用内置本地部署的 HDFS、MapReduce、Pig 和 Hive。 是的,您没听错——不需要运行 Hadoop 集群来测试您的代码! 该...
85个实战和测试技术 ·真实的场景,实用的解决方案 ·如何整合MapReduce和R前言 致谢关于本书 第1 部分 背景和基本原理1 跳跃中的Hadoop1.1 什么是Hadoop 1.1.1 Hadoop 的核心组件1.1.2 Hadoop 生态圈...
1.2.4 运行MapReduce 作业 1.3 本章小结 第2 部分 数据逻辑. 2 将数据导入导出Hadoop. 2.1 导入导出的关键要素 2.2 将数据导入Hadoop . 2.2.1 将日志文件导入Hadoop 技术点1 使用Flume 将系统...
Vessel是Elixir的MapReduce框架,支持Hadoop流。 Vessel不会直接处理Hadoop协议,而是将其屏蔽,并通过简单的API使其变得简单。 Vessel还包括用于轻松设置Hadoop项目的工具,以及用于简化工件编译的Mix任务。 尽管...
⼤数据应⽤测试经验总结 ⼤数据应⽤测试经验总结 ⼤数据应⽤测试过程与传统的web系统有较⼤的不同,⼤数据应⽤测试通常会分为web侧和ETL侧测试,web侧基本就是功能测试,⽽ETL(Extracting-Transfroming- Loading)...
该脚本将降级的第一个调度程序集成到hadoop-0.22.0中,并可以帮助您完成大多数配置。 bash install.sh 在$ HADOOP_HOME / conf / masters中,输入名称节点的主机名或主机IP(如果不需要,请不要忘记删除默认值)。 ...
第一部分 Spark学习 6 第1章 Spark介绍 7 1.1 Spark简介与发展 7 1.2 Spark特点 7 1.3 Spark与Hadoop集成 7 1.4 Spark组件 8 第2章 Spark弹性分布数据集 9 2.1 弹性分布式数据集 9 2.2 MapReduce数据分享效率低 9 ...
本资源为大数据基础到中高级教学资源,适合稍微有点大数据或者java基础的人群学习,资源过大,上传乃是下载链接,不多说,上目录: 1_java基础2 l3 a2 a$ t7 J2 b+ `- p 2_java引入ide-eclipse 3_java基础知识-循环...
这些任务可以是任何事情,但通常都是长期运行的任务,例如Hadoop作业,向数据库转储数据或从数据库转储数据,运行机器学习算法或其他任何事情。 您几乎可以构建任何所需的任务,但是Luigi还附带了一个包含多个常用...
其基本原理是将HQL语⾔⾃动转 换成MapReduce任务,从⽽完成对Hadoop集群中存储的海量数据进⾏查询和分析。 Hive为单实例的服务进程,提供服务的原理是将HQL编译解析成相应的MapReduce或者HDFS任务,下图为Hive的结构...
本文提出在科学工作流中使用云计算,经过测试比较,对于作业运行时间短的工作流,虚拟的环境能有好的计算时间性能,但同时也有资源调度延迟的缺点。 25、 Taking Account of Privacy when Designing Cloud ...
本文提出在科学工作流中使用云计算,经过测试比较,对于作业运行时间短的工作流,虚拟的环境能有好的计算时间性能,但同时也有资源调度延迟的缺点。 25、 Taking Account of Privacy when Designing Cloud ...
Java单元测试框架源码分钟Apache Flink Apache Flink 是一个开源的流处理框架,具有强大的流处理和批处理能力。 了解更多关于 Flink 的信息 特征 支持批处理和数据流程序的流优先运行时 Java 和 Scala 中优雅流畅的 ...
1.3 Spark与Hadoop集成 ................................................................................................ 7 1.4 Spark组件 ....................................................................
与MapReduce,Spark和其他Hadoop生态系统组件集成。与ApacheImpala(incubating)紧密集成,使其与ApacheParquet一起使用HDFS成为一个很好的可变的替代方案。强大而灵活的一致性模型,允许您根据每个per-
数据挖掘:支持运行于分布式文件系统和分布式计算平台之上的分布式数据挖掘算法,具体包括:逻辑斯特回归、朴素贝叶斯分类算法及其分布式实现;K均值、谱聚类算法及其分布式实现;潜在狄利克雷分配语义挖掘算法及其...
函数式编程优点: 函数式编程优点: 逻辑可证、模块化、组件化、易于调试、易于测试、更⾼的⽣产率 函数式编程的特征: 函数式编程的特征: 没有副作⽤、⽆状态编程、只有输⼊值与输出值 Mapreduce是⾕歌针对⼤规模...