个人理财 猪拉丁语在Hadoop的猪程序 - 傻瓜

猪拉丁语在Hadoop的猪程序 - 傻瓜

Anonim

猪拉丁语是猪程序的语言。 Pig将Pig Latin脚本翻译成可以在Hadoop集群中执行的MapReduce作业。当想到Pig Latin时,开发团队遵循三个关键设计原则:

  • 保持简单 。 Pig Latin提供了一个与Java MapReduce交互的简化方法。换句话说,这是一种抽象,它简化了在Hadoop集群上为数据流和分析创建并行程序。复杂任务可能需要一系列相互关联的数据转换 - 这样的系列被编码为 数据流序列。

    <!将数据转换和流程写成Pig Latin脚本而不是Java MapReduce程序使得这些程序更易于编写,理解和维护,因为a)您不必在Java中编写作业,b )您不必考虑MapReduce,并且c)您不需要提供自定义代码来支持丰富的数据类型。 Pig Latin提供了一种更简单的语言来利用您的Hadoop集群,从而使更多人能够更轻松地利用Hadoop的强大功能,并且更快地提高生产力。

    聪明一点。您可能还记得Pig Latin Compiler做了将Pig Latin程序转换成一系列Java MapReduce作业的工作。诀窍是确保编译器可以自动优化这些Java MapReduce作业的执行,从而使用户可以专注于语义而不是如何优化和访问数据。

    对于你的SQL类型,这个讨论听起来很熟悉。 SQL被设置为用于访问存储在RDBMS中的结构化数据的声明性查询。 RDBMS引擎首先将查询转换为数据访问方法,然后查看统计信息并生成一系列数据访问方法。基于成本的优化器选择最有效的方法来执行。
  • 不要限制发展。让猪可扩展,以便开发人员可以添加功能,以解决其特定的业务问题。

    传统RDBMS数据仓库利用ETL数据处理模式,其中

    e
  • xtract来自外部数据源的数据, t

将其转换为适合您的操作需求,然后 > l 将其添加到最终目标中,无论是运营数据存储,数据仓库还是其他数据库变体。然而,对于大数据,你通常希望减少你正在移动的数据量,所以你最终将处理带到数据本身。 猪数据流的语言因此需要传递旧的ETL方法,而是使用ELT: E 从各种来源提取数据, l 将其转换为HDFS,然后根据需要对其进行转换,以准备数据以供进一步分析。

猪拉丁语在Hadoop的猪程序 - 傻瓜

编辑的选择

记录您的思科网络配置与CDP - 傻瓜

记录您的思科网络配置与CDP - 傻瓜

记录思科网络配置有时没有思科发现协议)可能需要花费数小时在布线室跟踪电缆和记录端口。在某些情况下,配线室是一个真正的老鼠的电缆巢,并且可能需要几个小时的导航才能找出哪些交换机连接到哪个交换机,哪些路由器,...

以太网通道诊断信息收集 - 虚拟

以太网通道诊断信息收集 - 虚拟

诊断思科网络中的以太网通道问题,您首先必须能够收集您的交换机及其配置。为了执行这个任务,你一如既往地依靠Show和debug命令。首先,简要介绍一下show命令的内容。 Switch1> enable Switch1#configure terminal Switch2#show EtherChannel ...

扩展访问控制列表(ACL) - 虚拟

扩展访问控制列表(ACL) - 虚拟

扩展访问控制列表(ACL)允许您允许拒绝来自特定IP地址的流量到特定的目标IP地址和端口。它还允许您指定不同类型的流量,如ICMP,TCP,UDP等。不用说,它非常细化,可以使您非常具体。如果...

编辑的选择

电子项目计划步骤1:设想您的电子项目 - 傻瓜

电子项目计划步骤1:设想您的电子项目 - 傻瓜

设计和建立你的电子项目的细节,你应该退后一步,看看大局。首先,你需要确保你有一个坚实的想法为您的项目。你为什么要建立它?它会做什么,谁来使用它,为什么? ...

电子项目计划步骤4:构建您的电路 - 傻瓜

电子项目计划步骤4:构建您的电路 - 傻瓜

而且你对它的操作感到满意,你可以建立一个永久版本的电路。虽然有几种方法可以做到这一点,但最常见的是在印刷电路板(也称为PCB)上构建电路。请注意,在PCB上组装电路...

电子项目计划步骤3:原型电路 - 假人

电子项目计划步骤3:原型电路 - 假人

永久的电路板,你会想确保它的工作。最简单的方法就是在无焊面包板上构建电路。无焊料面包板可以让您快速组装电路元件而不需要焊接任何东西。相反,您只需将其裸露在外...

编辑的选择

如何替换R中的文本 - 虚拟变量

如何替换R中的文本 - 虚拟变量

R中的sub()函数在文本模式,并用替换文本替换此模式。你使用sub()来替代文本文本,并使用其表兄gsub()来替换所有出现的模式。 (gsub()中的g表示全局。)假设你有句子He ...

中如何成功地遵循命名惯例在R - 傻瓜

中如何成功地遵循命名惯例在R - 傻瓜

R是非常自由的,对象和功能。这个自由是一个很大的祝福,同时也是一个很大的负担。没有人不得不遵循严格的规则,所以在R中编程的人基本上可以按照自己的意愿去做。如何选择一个正确的名字...

中使用函数在R中创建并转换脚本后,如何使用R - dummies中的函数

中使用函数在R中创建并转换脚本后,如何使用R - dummies中的函数

再次使用前面显示的Source()命令将其加载到控制台中。现在你看...什么也没有。 R并不让你知道它已经加载了这个函数,但它已经在工作空间中了,你可以检查一下...