关于pig使用的部分记录

来源:互联网 发布:中国公知奇葩言论 编辑:程序博客网 时间:2024/05/16 10:27
  1. 首先介绍下pig的背景,pig是由雅虎贡献给开源社区的一个项目,是针对缩短hadoop mapreduce开发周期所提出(速率快于streaming操作),pig本质上是一种数据流形式的开发模式,其语言是pig Latin。

  2. 安装pig非常简单,只有解压pig压缩包,然后把pig安装路径添加到环境变量中即可

  3. pig启动有本地模式和mapreduce 模式分别为pig -x local以及pig -x mapreduce

  4. 对于pig latin编辑器,内部的一些操作如下:

rawData = load './thd/data.txt' using PigStorage(',') as (item1: chararray,item2: int,item3:int); //导入数据用,分割B= filted rawData by item3==0; //过滤数据C= group rawData by item2; //组合数据store B into './out/b'; //数据存入文本

5.pig在使用过程中会发现效果和hive差不多,那么二者使用本质上有什么差别呢,什么场景下使用pig什么场景下使用hive呢:
区别注释:

5.1.Language
在Hive中可以执行 插入/删除 等操作,但是Pig中我没有发现有可以 插入 数据的方法,请允许我暂且认为这是最大的不同点吧。
5.2.Schemas
Hive中至少还有一个“表”的概念,但是Pig中我认为是基本没有表的概念,所谓的表建立在Pig Latin脚本中,对与Pig更不要提metadata了。
5.3.Partitions
Pig中没有表的概念,所以说到分区对于Pig来说基本免谈,如果跟Hive说“分区”(Partition)他还是能明白的。
5.4.Server
Hive可以依托于Thrift启动一个服务器,提供远程调用。 找了半天压根没有发现Pig有这样的功能,如果你有新发现可以告诉我,就好像有人开发了一个Hive的REST
5.5.Shell
在Pig 你可以执行一些个 ls 、cat 这样很经典、很cool的命令,但是在使用Hive的时候我压根就没有想过有这样的需求。
Web Interface
Hive有,Pig无
JDBC/ODBC

Pig无,Hive有

0 0
原创粉丝点击