内容简介:自从开始使用Eclipse+Maven来配置Java的开发环境并体验到了Maven的强大和方便以后。在之后学习Hadoop的过程中,我都尽量避免使用终端配置运行环境。本文将介绍如何配置Eclipse在Pig中的开发环境。若还未使用过Maven配置Hadoop开发环境,可以参考我的另一篇博客Apache Pig 的官方
自从开始使用Eclipse+Maven来配置 Java 的开发环境并体验到了Maven的强大和方便以后。在之后学习Hadoop的过程中,我都尽量避免使用终端配置运行环境。
本文将介绍如何配置Eclipse在Pig中的开发环境。若还未使用过Maven配置Hadoop开发环境,可以参考我的另一篇博客
开发环境
- 系统:MacOS 10.14.1
- Hadoop:2.7.0
- Java:1.8.0
- Eclipse:4.6.2
- Maven: 3.3.9
Pig
下载地址
Apache Pig 的官方 下载地址
由于本文介绍的是用Eclipse开发,Maven配置,因此不需要从此网站下载。
确定版本
在下载前需要确定版本。
由于不同版本的Pig支持不同的版本的Hadoop,如下图所示。因此在开始配置前,需要确定自己的Hadoop版本并选择合适的Pig版本。
我使用的是Hadoop 2.7.0 只有Pig 0.17.0 可以支持。所以我选择0.17版本。
配置jar包
使用Java在Eclipse运行Pig代码,需要antlr,pig和pigunit包,因此需要在Maven Project的pom.xml添加以下依赖。
由于许多不可抗力,使用Apache原生的pig版本时一直无法配置成功,因此我选择Cloudera公司的发行版本,所以需要添加 cloudera的资源库 。
<repositories> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> </repository> </repositories> <dependencies> <!-- https://mvnrepository.com/artifact/org.antlr/antlr4 --> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr4</artifactId> <version>4.7.2</version> </dependency> <dependency> <groupId>org.apache.pig</groupId> <artifactId>pig</artifactId> <version>0.17.0-cdh6.0.0</version> </dependency> <dependency> <groupId>org.apache.pig</groupId> <artifactId>pigunit</artifactId> <version>0.17.0-cdh6.0.0</version> </dependency> </dependencies>
创建脚本
Apache Pig 提供了后缀名为脚本方式来处理数据。脚本是以后缀名为 .pig
的文本文件进行保存。
以下是一个pig脚本代码,统计单词的数量,将该脚本保存在src文件夹内
wordcount.pig
。
A = load 'src/main/resources/pigData/sample.data'; B = foreach A generate flatten(TOKENIZE((chararray)$0)) as word; C = group B by word; D = foreach C generate COUNT(B), group; dump D;
sample.data
数据文件
Johny, Johny! Yes, Papa Eating sugar? No, Papa Telling lies? No, Papa Open your mouth! Ha! Ha! Ha!
使用Java运行
Pig 有两种运行模式: Local 模式和 MapReduce 模式。在Java中,可以通过 org.apache.pig.ExecType
进行设置
PigServer
PigRunner.java
import java.util.Properties; import org.apache.pig.ExecType; import org.apache.pig.PigServer; public class PigRunner { public static void main(String[] args) throws Exception { // MapReduce 模式 Properties props = new Properties(); props.setProperty("fs.default.name", "hdfs://localhost:9000"); // props.setProperty("mapred.job.tracker", "http://localhost:50070"); PigServer pigServer = new PigServer(ExecType.MAPREDUCE, props); pigServer.registerScript("src/main/java/pig/wordcount.pig"); // local 模式 PigServer pigServer1 = new PigServer(ExecType.LOCAL); pigServer1.registerScript("src/main/java/pig/wordcount.pig"); } }
PigTest
PigTest提供了对Pig脚本所得的结果进行单元测试。
AppTest.java
import org.apache.pig.pigunit.PigTest; import junit.framework.*; public class AppTest extends TestCase { public void testStudentsPigScript() throws Exception { PigTest pigTest = new PigTest("src/main/java/pig/wordcount.pig"); pigTest.assertOutput("D", new String[] { "(2,No)", "(3,Ha!)", "(1,Yes)", "(1,Open)", "(3,Papa)", "(1,your)", "(1,Johny)", "(1,lies?)", "(1,Eating)", "(1,Johny!)", "(1,mouth!)", "(1,sugar?)", "(1,Telling)"}); } }
下图为上述文件在Java Project中的路径。可供读者进行参考
以上所述就是小编给大家介绍的《使用Eclipse+Java配置Pig开发环境》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 分离Webpack开发环境与生产环境的配置
- Xcode配置测试环境和线上环境
- Linux环境centos7 配置java环境
- hadoop地址配置、内存配置、守护进程设置、环境设置
- 配置lisp开发环境
- 配置lisp开发环境
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
精通CSS与HTML设计模式
Michael Bowers / 刘申 朱瑜敏 鲁奇 / 人民邮电出版社 / 2008-9 / 69.00元
本书是一部非常实用的CSS 与HTML(XHTML)解决方案手册。书中包含了350 多种可以立即使用的设计模式(涉及文本、背景、边框、图片、表格、布局等多方面),并介绍了每种模式的原理和使用。每种设计模式、示例和源代码都经过了精心设计,易于实现和使用。通过阅读此书,可大大提高读者在 Web 设计和开发中的效率和创造力。 本书结构清晰,示例丰富,实践性强,适用于所有Web 开发和设计人员......一起来看看 《精通CSS与HTML设计模式》 这本书的介绍吧!