由于要在开发机器上源码调试Pig,同时也要在单机上通过PIG_HOME/bin/下的pig脚本去执行Pig,以及在内网集群,生产环境上运行Pig...所以不同的配置环境会导致一些问题,比如Lzo压缩.有时明显你机器上安装了lzo,你CLASS_PATH中也加载hadoop这些配置,但还是不行.所以花了点时间,看了下Pig这方面的源码,终于搞明白.这里分享下.
pig中最终的配置都由java.util.Properties管理。通过以下四种方式来加载Pig运行所需要的配置。
1)从System.getProperty("user.home") + "/.pigrc"获取
2)从CLASS_PATH中读取/pig-default.properties和/pig.properties
实际上是获取的org.apache.pig.impl.util.PropertiesUtil.class.getResource("").getPath()
其中/pig.properties会覆盖/pig-default.properties中的配置
3)读取系统属性
System.getProperties()
4)读取Hadoop/conf中的配置
以上4会覆盖3,3会覆盖2,2会覆盖1的属性,权重逐级递增.其实这也类似于一个操作系统,用户变量会覆盖系统变量,要运行的某个程序变量又会覆盖用户变量.
知道这些后,我会在我的开发机器上的$HOME/.pigrc下配置,配置成功后在日志中会有这样的提示:
2012-03-06 14:56:55,859 WARN util.PropertiesUtil (PropertiesUtil.java:loadPropertiesFromFile(81)) -
/home/guoyun/.pigrc exists but will be deprecated soon. Use conf/pig.properties instead!
集群环境下就在Hadoop/conf下部署,当然也可以在pig.properties.
相信配置是每个程序基本要有的东西,Pig这4种加载方式,并且都有自己的优先级,值得借鉴!
更多技术文章、感悟、分享、勾搭,请用微信扫描:
相关推荐
本文将基于"Pig的源码包"这一主题,深入探讨Pig的核心概念、架构设计以及源码分析。 1. Pig Latin:Pig Latin是Pig的专用脚本语言,它的设计目标是简化MapReduce编程。通过抽象出一系列操作(如LOAD、FILTER、JOIN...
Pig Latin是Pig所使用的声明式数据流语言,它允许用户以一种接近SQL的方式描述数据处理任务。在Pig 0.15源码中,我们可以看到如何将Pig Latin语句转化为可执行的MapReduce任务的过程。这涉及到词法分析、语法分析...
源码中可能包含了如何在Hadoop集群上运行Pig脚本的示例,以及如何配置Pig与Hadoop的交互,如设置HDFS路径、处理错误和监控性能。 七、Pig与大数据生态系统 Pig不仅可以与其他Hadoop组件如HBase、Hive和Spark集成,...
这种方式结合了 Hadoop 的大数据处理能力、Pig 的灵活性和 Vertica 的分析性能,为大数据工作流提供了一个强大的解决方案。 源码分析 "DBStorage.java" 可能涉及以下关键技术点: 1. JDBC 连接:Java Database ...
6. **Hadoop源码分析**:通过阅读Hadoop源码,可以深入了解其内部机制,例如NameNode如何管理文件系统元数据、DataNode如何进行数据块的读写、MapReduce的作业调度算法等。这对于优化Hadoop集群性能、开发自定义插件...
安装过程包括获取Pig的源码或者二进制包,配置Hadoop环境,将Pig添加到Hadoop的类路径中,以及启动Pig的交互式shell(Pig grunt shell)。了解这些基础步骤是使用Pig的前提,也是日后维护和调试Pig脚本的关键。 ...
标题 "基于Hadoop平台的Pig语言对Apache日志系统的分析" 涉及到的主要知识点包括Hadoop、Pig语言以及Apache服务器日志的处理。以下是对这些关键概念的详细解释: 1. Hadoop平台: Hadoop是Apache软件基金会开发的...
3. 数据集成:Hadoop可以与其他数据处理工具(如Spark、Hive、Pig等)结合,构建复杂的数据处理流水线,实现数据的ETL(提取、转换、加载)过程。 总结,Hadoop 3.1.2的源码分析不仅是对技术的深度探究,也是提升...
Apache Pig 是一个用于大数据分析的平台,它提供了一种高级语言 Pig Latin 来处理大规模数据集。Pig-0.17.0 是该平台的一个稳定版本,包含了多项优化和改进,适用于Hadoop生态系统中的数据处理任务。本文将详细介绍...
在 Hadoop 生态系统中,Sqoop 提供了一种高效、可扩展的方式,用于将大量结构化数据导入到 Hadoop 分布式文件系统(HDFS)中,或者将数据导出回传统的关系型数据库。这使得 Hadoop 能够处理来自企业级数据库的数据,...
Pig是一个基于Hadoop的大规模数据分析平台,定义了一种类似于SQL的数据流语言-Pig Latin,提供了各种操作符,程序员可以利用它们开发自己的用于读取、写入和处理数据功能的程序。 Mahout是机器学习和数据挖掘的一个...
在大数据处理领域,Apache Pig 是一个高级的并行数据处理框架,它允许用户使用一种名为 Pig Latin 的简单脚本语言来处理大规模数据集。Pig Latin 提供了一种抽象层,使得用户可以不直接编写 MapReduce 程序,而是...
Apache Pig 是一个用于大数据分析的平台,它提供了一种高级的编程语言 Pig Latin,使得用户可以方便地处理大规模数据集,而无需深入理解底层分布式计算框架如 Hadoop MapReduce。在本文中,我们将深入探讨 Pig ...
ORC是一种高效、压缩的数据存储格式,特别适合大规模数据分析任务,因为它能提供快速的读写速度和优秀的数据压缩率。 描述中虽然没有具体信息,但从一般的转换流程来看,我们可以推断这个过程可能包括以下几个关键...
它提供了一种SQL-like查询语言(HQL)来方便地对存储在Hadoop分布式文件系统(HDFS)上的数据进行查询和分析。Hive将复杂的MapReduce作业转换为用户友好的SQL查询,降低了大数据分析的门槛。 在"Programming Hive....
在大数据分析领域,Apache Pig是一种高级的脚本语言,用于处理大规模数据集。Pig Latin是Pig的编程语法,它允许用户通过简单的语句执行复杂的MapReduce任务。在这个场景中,我们探讨的是如何将分词器与Pig集成,以便...
Apache Pig是大数据处理领域的一个重要工具,它提供了一种高级的编程语言Pig Latin,用于构建大规模数据处理的流程。Pig Latin简洁、易于理解,使得非Java程序员也能方便地进行大数据分析。在“log4j-pig-master.zip...
虽然Hive提供了一种简单的方式来查询Hadoop集群上的大数据,但它并不适合所有场景。对于实时或低延迟查询,HBase和Spark SQL可能是更好的选择。此外,Hive的查询性能受到MapReduce的限制,因此在需要高性能查询的...
Hadoop不仅仅是一个框架,更是一个生态系统,包括Hive(SQL-like查询工具)、Pig(数据分析工具)、Spark(快速计算引擎)、HBase(NoSQL数据库)、Oozie(工作流调度系统)等。理解这些工具如何与Hadoop协同工作,...
- **Pig**:一种高级数据流语言和执行框架,用于处理和分析大型数据集。 - **HBase**:一个分布式的、面向列的开源数据库,基于Google的Bigtable设计。 ##### 4. Spark生态系统 - **Spark Core**:Spark的核心模块...