猪年,谈谈Pig那些事

Test Ninja 软件质量报道 2019-02-10


今年是己亥年,即猪年;

既然是猪年,就该谈谈Pig那些事。

Pig 首先是Scrum中的一种角色,还是核心角色,有图为证。

关于这个,挺有故事的:

一天,一头猪和一只鸡在路上散步,

鸡看了一下猪说:“嗨,我们合伙开一家餐馆怎么样?”

猪回头看了一下鸡说:“好主意,那你准备给餐馆卖什么呢?”

鸡想了想说:“餐馆卖火腿和鸡蛋怎么样?”

猪说:“不开了,我全身投入(火腿是一次性资源),而你(鸡蛋是可再生的)只是参与而已。”

所以,人们常常把Product Owner、ScrumMaster和开发人员比为“猪”角色,每个人都要为项目负责,为项目“两肋插刀”;而其他利益相关者(如用户、客户、市场人员、管理人员等)比为“鸡”的角色,会提出需求和计划。

这样的故事很有趣,耐人寻味,但这种比喻恰当吗?首先说你是“猪”,乐意吗?虽然上面的猪好像不笨,而在我们印象中猪还是挺笨的,吃了睡,睡了吃,养肥之后被宰。而且许多项目的失败,用户、客户、公司造成的损失比研发人员要大得多。 


今天是大数据时代,猪属于这个时代的。Pig是一个基于Hadoop的大规模数据分析工具,提供SQL-LIKE脚本语言PigLatin——能够把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算(将脚本编译为Java MapReduce作业)。与MapReduce相比,Pig为大型数据集的处理提供了更高层次的抽象、更丰富的数据结构,比Java MapReduce实现更容易阅读、理解和维护。

Apache组提供了PigUnit库,允许使用JUnit测试Pig脚本,所以可以将PigUnit看成一个简单的xUnit框架。PigUnit可以在Local和MapReduce等两种模式下运行:

  • 默认情况下将使用本地模式,此模式不需要群集,将本地文件系统用作Hadoop集群,每次创建新的本地文件系统。

  • MapReduce模式确实需要Hadoop集群和HDFS的安装。

那就放一个示例在此。


谈到Pig、PigUnit,就多谈一些大数据测试,涉及数据的提取、转换和加载(ETL)的验证,包括自动检查大数据池的质量、完整性和可扩展性,并确保满足应用程序的进一步使用和分析,还能够比较HDFS和RDBMS之间的数据集、HDFS和NoSQL数据库验证、Hive查询和Pig作业验证等测试工作,完成源到目标(NoSQL DB / Hive / HDFS)、迁移后数据准确性、Hadoop流程数据输出结果等一系列的验证,甚至进行数据的分类、挖掘等进一步的验证。


大数据的测试,不仅包括数据或功能的验证,而且还包括性能测试,如大数据架构和卷的性能测试、Hadoop基准测试等。这里介绍几个Hadoop 测试工具:

  • TestDFSIO: 分布式 输入/输出基准测试

  • dfsthroughput: hdfs 吞吐量的测试

  • mrbench:  map/reduce 基准测试 (创建很多个小的作业)

  • nnbench:  NameNode压力测试

  • TeraSort :验证大数据系统的数据排序能力,包含了TeraGen——生成随机数据

  • Gridmix:具有产生数据、提交作业、统计完成时间等功能的基准测试程序。Gridmix自带了各种类型的作业,分别为streamSort、javaSort、combiner、monsterQuery、webdataScan和webdataSort。

  • HiBench:Intel开放的一个基准测试工具,包含9个典型的Hadoop负载

    (Micro benchmarks、HDFS benchmarks、web search benchmarks、machine learning benchmarks和data analytics benchmarks)

除了性能测试,还包括可靠性测试,如故障注入测试工具有MRReliabilityTest。


常见的Hadoop或大数据平台的测试工具:

  • MRUnit  - 帮助开发人员单元测试Hadoop Map减少作业的Java框架。

  • Mockito  -  类似于MRUnit,用于单元测试Hadoop MapReduce作业。

  • PigUnit  - 帮助开发人员测试Pig脚本s的Java框架。

  • HiveRunner  - 基于JUnit4的hadoop hivequeries的开源单元测试框架

  • Beetest  -  Hive查询的单元测试框架

  • Hive_test  -  Hive的另一个开源单元测试框架

  • HBaseTestingUtility  -  HBase Mini-cluster的Java API,我们可以将它与Junit / Mockito / MRUnit框架一起用于单元测试Hbase应用程序。

  • QuerySurge  - 为自动化数据仓库测试和ETL测试过程而构建的测试工具。 符合JDBC的db,DWH,DMart,平面文件,XML,Hadoop。

  • MiniCluster:完成Hadoop端到端的测试。

  • TestingWhiz:具有较全面能力的大数据测试工具。


参考:

  • 狗年话软件测试

  • https://pig.apache.org/

  • https://github.com/apowers313/pigunit

  • https://pig.apache.org/docs/latest/test.html

  • https://pig.apache.org/docs/latest/test.html#pigunit

  • http://hadoop.apache.org/docs/current/hadoop-gridmix/GridMix.html

  • http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/Benchmarking.html

  • https://www.testing-whiz.com/big-data-testing

  • https://blog.codecentric.de/en/2014/05/mapreduce-testing-pigunit-junit/

  • http://www.querysurge.com/solutions/testing-big-data


    发送中

    本站仅按申请收录文章,版权归原作者所有
    如若侵权,请联系本站删除
    觉得不错,分享给更多人看到