当前位置: 首页 > 面试题库 >

在Java中运行Pig而不嵌入Pig脚本

咸承教
2023-03-14
问题内容

我是猪脚本,Hadoop,Hbase的新手。这是我需要知道的。我想运行一个Pig脚本,我不想在我的Java程序中嵌入该Pig脚本,并希望通过传递必要的Pig脚本和参数(可能是参数文件)的任何Pig
Execution方法来运行它。核心Pig库或任何其他库是否提供了执行Pig脚本的方式。我已经尝试过使用Java运行时exec方法,我用空格分隔的字符串传递了一些参数,所以我放弃了通过运行时exec方法调用pig
grunt命令,因为这不是执行Pig命令的正确方法。


问题答案:

您可以使用org.apache.pig.PigServer从Javahtml" target="_blank">程序运行Pig脚本。

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);


 类似资料:
  • Apache Pig是一个分析大型数据集的平台,它由表达数据分析程序的高级语言和评估这些程序的基础设施组成。Pig程序的突出特性是其结构可以进行大量的并行化,进而使其能够处理非常大的数据集。 目前,Pig的基础设施层由一个编译器组成,它可以产生Map-Reduce程序序列,对于这些程序,已经存在大规模的并行实现(例如Hadoop子项目)。Pig的语言层目前由一种名为Pig Latin的文本语言组成

  • 在我的环境中设置了JAVA_HOME之后,我在运行pig时得到了以下结果: 当我这么做的时候: 但是在我的环境中,JAVA_HOME是这样设置的: 运行于:Ubuntu 10.04.4 LTS java:java版本“1.6.0_21”Hadoop版本:Hadoop-0.20.203 PIG版本:PIG-0.11.1 env:term=Xterm shell=/bin/bash xdg_sessi

  • 我正在尝试使用spring xd执行pig代码段,但不能这样做。我使用以下命令创建了一个作业 PigTest作业定义在spring xd模块/作业目录中定义如下 已成功创建作业,但部署失败。日志文件如下所示: null

  • 问题内容: 我不确定是否可以使用内置的PIG脚本完成此操作,或者我需要编写UDF代码。但实际上我有一个表,我只想在其中转置数据。 简单地说,给出: 我最终会得到: 关于如何实现此目标的任何建议? 问题答案: 用Pig不可能做到这一点,也没有任何意义。请记住,关系是一包元组,根据定义,不保证包中的元组具有任何特定顺序。您可以从开始 但是从Pig的角度来看,这与 这意味着“转置”定义不正确。以这种方式

  • 问题内容: 因此,我有一个基本的Pig Latin翻译器,只能翻译一个单词。 有人可以协助我编辑此翻译器以使用多个单词吗?谢谢。 问题答案: 这是Pig Latin方言,考虑了单词的发音方式: 输出量 注意: 后缀用于以元音开头的单词 在“安静”中被视为一个单位 ,从辅音开始 在“节奏”中,“王朝”是元音 ,,,开始以元音 在哪里: 要将文本拆分为句子,可以使用标记符来分隔单词。可以修改代码以尊重

  • 请帮帮忙。