当前位置: 首页 > news >正文

Pig 的安装教程

Pig是yahoo捐献给apache的一个项目,它是SQL-like语言,是在MapReduce上构建的一种高级查询语言,把一些运算编译进MapReduce模型的Map和Reduce中,并且用户可以定义自己的功能。这是Yahoo开发的又一个克隆Google的项目:Sawzall。

Pig是一个客户端应用程序,就算你要在Hadoop集群上运行Pig,也不需要在集群上装额外的东西。Pig的安装是灰常的简单的:

1、安装JAVA6(在Windows的话要装Cygwin),设置好JAVA_HOME。

% export JAVA_HOME=/home/tom/jdk1.6

2、到http://hadoop.apache.org/pig/releases.html下载一个稳定的发行版(目前是0.5.0,可以在Hadoop-0.20.*上运行),解压到你的工作空间:

% tar xzf pig-x.y.z.tar.gz

3、为了方便,可以把Pig的程序目录放到命令行路径里,比如:

% export PIG_INSTALL=/home/tom/pig-x.y.z

% export PATH=$PATH:$PIG_INSTALL/bin

注销或重启,你就可以用pig -help来查看使用帮助了,安装够简单吧? :)

Pig有两种模式:

一种是Local mode,也就是本地模式,这种模式下Pig运行在一个JVM里,访问的是本地的文件系统,只适合于小规模数据集,一般是用来体验Pig。而且,它并没有用到Hadoop的Local runner,Pig把查询转换为物理的Plan,然后自己去执行。

在终端下输入

% pig -x local

就可以进入Local模式了。

还有一种就是Hadoop模式了,这种模式下,Pig才真正的把查询转换为相应的MapReduce Jobs,并提交到Hadoop集群去运行,集群可以是真实的分布式也可以是伪分布式。要想Pig能认识Hadoop,你要告诉它Hadoop的版本以及一些关键daemon的信息(也就是Namenode和Jobtracker的Address和Port)。比如,下面这个可以允许Pig连接到任何Hadoop0.20.*上:

% export PIG_HADOOP_VERSION=20

接下来,你还要指明集群的Namenode和Jobtracker的所在。有两种方法,一种就是把你Hadoop的Conf地址添加到Pig的Classpath上:

% export PIG_CLASSPATH=$HADOOP_INSTALL/conf/

还有一种就是在Pig目录的Conf文件夹(可能需要自己创建)里创建一个pig.properties文件,然后在里面添加集群的Namenode和Jobtracker的信息:

fs.default.name=hdfs://localhost/

mapred.job.tracker=localhost:8021

搞定后,在终端执行下面的命令:

% pig

你就会看到下面的信息:

2009-03-29 21:22:20,489 [main] INFO  org.apache.pig.backend.hadoop.executionengine.

HExecutionEngine – Connecting to hadoop file system at: hdfs://localhost/

2009-03-29 21:22:20,760 [main] INFO  org.apache.pig.backend.hadoop.executionengine.

HExecutionEngine – Connecting to map-reduce job tracker at: localhost:8021

grunt>

如你所见,Pig报告已经连上了Hadoop的Namenode和Jobtracker,是不是也灰常的简单?

到此,Pig的安装和配置讲解完毕,是不是很Easy,那还等什么,赶紧去试试,玩玩~

转载于:https://www.cnblogs.com/itgg168/archive/2012/11/30/2796481.html

相关文章:

  • 软件三层架构模型
  • iOS:Button.titleLabel.text
  • Look nice!
  • [转]一个页面重构工程师眼中的“用户体验”
  • HTTP协议基础
  • 一些杂记
  • Adding a Model
  • 深入解读 Entity Framework 4.0和4.1
  • quartz给任务传参数以及维持任务的状态
  • 傻瓜都会写出能够让机器理解的代码,只有好的程序员才能写出人类可以理解的代码。...
  • JSP重定向技巧
  • 每日英语:The end of cheap China
  • 【Android】组件ViewFlipper的滑稽
  • Apache OODT 0.5 发布,面向对象的数据技术
  • C++ primer 学习笔记(2):函数
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Date型的使用
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Flannel解读
  • in typeof instanceof ===这些运算符有什么作用
  • JavaScript服务器推送技术之 WebSocket
  • Laravel5.4 Queues队列学习
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • vue:响应原理
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 汉诺塔算法
  • 今年的LC3大会没了?
  • 区块链将重新定义世界
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 使用common-codec进行md5加密
  • 试着探索高并发下的系统架构面貌
  • zabbix3.2监控linux磁盘IO
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • (1)bark-ml
  • (1)Nginx简介和安装教程
  • (蓝桥杯每日一题)love
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (三)mysql_MYSQL(三)
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (未解决)macOS matplotlib 中文是方框
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .bat批处理出现中文乱码的情况
  • .Net 4.0并行库实用性演练
  • .NET 设计一套高性能的弱事件机制
  • .NET 中 GetProcess 相关方法的性能
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • @RequestBody与@ResponseBody的使用
  • [ solr入门 ] - 利用solrJ进行检索
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [23] 4K4D: Real-Time 4D View Synthesis at 4K Resolution
  • [C/C++]数据结构 堆的详解