Apache pig 从PigLatin调用API

Apache pig 从PigLatin调用API,apache-pig,Apache Pig,完成PigLatin的新手培训,但希望从MetOffice数据点API获取数据,例如: …进入Hadoop 我的问题是“是否可以使用PigLatin(从Pig视图内部,在Ambari中)进行此操作?” 我一直在寻找如何将GET请求格式化到代码中,但运气不好 我找错树了吗?我是否应该在Hadoop框架中使用不同的服务来实现这一点?从map reduce作业内部调用外部服务是一个非常糟糕的主意。原因是,在集群上运行时,作业的可伸缩性非常强,而外部系统可能不是这样。像Thread这样的现代资源管理器

完成PigLatin的新手培训,但希望从MetOffice数据点API获取数据,例如:

…进入Hadoop

我的问题是“是否可以使用PigLatin(从Pig视图内部,在Ambari中)进行此操作?”

我一直在寻找如何将GET请求格式化到代码中,但运气不好


我找错树了吗?我是否应该在Hadoop框架中使用不同的服务来实现这一点?

从map reduce作业内部调用外部服务是一个非常糟糕的主意。原因是,在集群上运行时,作业的可伸缩性非常强,而外部系统可能不是这样。像Thread这样的现代资源管理器使这种情况变得更糟,当您用请求淹没外部系统时,集群上的任务大部分都在等待服务器的响应。资源管理器将看到任务没有使用CPU,并将安排更多的任务运行,这将向外部系统发出更多的请求,从而使其被更多的请求淹没。我看到过普通的100台机器集群每秒发出100K请求

您真正想要做的是以某种方式从web服务获取批量数据,或者设置一个具有队列和少量受控工作人员的系统,这些工作人员将以设置的速率从外部系统中提取数据

至于你最初的问题,我不认为PigLatin提供了这样的服务,但它可以很容易地用Python或Java的UDF来完成。使用Python,您可以使用优秀的库,这将使您的UDF大约有6行代码。JavaUDF将更详细一些,但按照Java标准来说并不可怕

“是否可以使用PigLatin(从Pig视图内,在 安巴里“

不,默认情况下,从HDFS存储加载清管器,除非您编写自己的加载程序


我和@Vlad有着相同的观点,这不是一个好主意,您有许多其他组件用于数据摄取,但这不是Pig的用例

非常感谢@Vlad,我将按照您的建议探索Python请求库。我同意这通常不是一个好主意,但如果我真的想从作业中使用rest api来饱和目标,作为ETL的一部分,该怎么办?它可以做到吗?它可以被限制吗?谢谢你的帮助@54l3d