我是猪脚本,Hadoop,Hbase的新手。这是我需要知道的。我想运行猪脚本,我不想将猪脚本嵌入到我的java程序中,并希望通过任何Pig执行方法来运行它,传递必要的猪脚本和参数(可能是参数文件)。核心猪库或任何其他图书馆是否提供执行猪脚本的方式?我已经尝试过使用java运行时exec方法,我使用空格分隔的字符串传递一些参数,因此我通过运行时exec方法调用了pig grunt命令,因为它不是执行pig命令的正确方法。在java中运行没有嵌入猪脚本的猪
3
A
回答
8
您可以使用org.apache.pig.PigServer从Java程序运行猪脚本。
PigServer pigServer = new PigServer(ExecType.MAPREDUCE);
pigServer.registerScript("scripts/test.pig");
需要类路径中的'pig.properties'。
fs.default.name=hdfs://<namenode-hostname>:<port>
mapred.job.tracker=<jobtracker-hostname>:<port>
或者将一个java.util.Properties的实例传递给PigServer构造函数。
Properties props = new Properties();
props.setProperty("fs.default.name", "hdfs://<namenode-hostname>:<port>");
props.setProperty("mapred.job.tracker", "<jobtracker-hostname>:<port>");
PigServer pigServer = new PigServer(ExecType.MAPREDUCE, props);
1
我不知道我明白你在问什么。你想知道如何从Java程序运行Pig脚本吗?
如果是这样,我们使用类org.apache.pig.PigRunner
为此。
PigStats pigStats = PigRunner.run(args, null);
它的Javadoc指出:
的实用程序,以帮助在Java程序中运行的PIG脚本。
但是从我的经验来看,猪并不是真的打算以这种方式使用(至少在0.8版本中)。我们遇到了问题,例如保持打开的FileStreams以及未被删除的临时文件。
1
你可以试试这个链接,它给出了一个在java中嵌入猪脚本的很好的例子。
0
因为其他人深受embeding在java中相同的解释猪的执行,让我补充如何在未Java运行parametrised猪。
在这个场景中,你所需要的只是将猪的代码行保存为猪档案,如myFirstPigScript.pig
。
接下来你需要的是内部的参数。那么这里有三种输入参数来运行你的myFirstPigScript.pig
。
pig -p in1=file1.txt -p in2=file2.txt -p outdirectory=outdirectory myFirstPigScript.pig
你的猪脚本会像
A = load '$in1' USING PigStorage(',') AS (id_one:chararray,file1field1:chararray);
B = load '$in2' USING PigStorage(',') AS (id_two:chararray,file2field1:chararray);
C = join A by id_one, B by id_two;
store D into '$outdirectory' USING PigStorage(',') ;
样品输入文件将是一个两列的csv文件
输出“部分”文件将存在于outdirectory
相关问题
- 1. 运行猪脚本
- 2. 如何在猪脚本中运行Mapreduce
- 3. 在猪脚本
- 4. 用hadoop上的udf运行猪脚本
- 5. 如何在Eclipse中使用java运行嵌入式猪程序?
- 6. 如何在另一个猪脚本中调用猪脚本
- 7. 猪脚本从
- 8. 猪脚本STRSPLIT
- 9. 运行猪脚本时出现异常
- 10. 如何从HDFS运行猪脚本?
- 11. 在Hadoop 2上的猪15上运行时嵌入的猪错误
- 12. .pig脚本与java嵌入猪:哪一个是最快的?
- 13. 运行猪解释命令在整个脚本在java
- 14. 在猪脚本中加入JSON数据
- 15. 将猪嵌入Python
- 16. 优化猪脚本
- 17. 如何猪脚本
- 18. 格局猪脚本
- 19. 使用猪脚本
- 20. 猪脚本错误
- 21. 使用猪脚本
- 22. 运行猪的NoClassDefFoundError
- 23. 猪:如何给文件输入猪脚本
- 24. CSVExcelStorage没有跳过标头,猪猪
- 25. 从其他猪脚本调用猪拉丁文脚本
- 26. 猪壳设置:自动执行猪脚本
- 27. 无法运行猪
- 28. 在JAVA文件中嵌入猪查询进行操作
- 29. 使用php的猪脚本
- 30. 错误:在java中运行嵌入式猪时创建数据存储失败
如何执行猪脚时获取日志?如何知道作业是否成功执行? – Kumar