目前我正在执行我的脚本:
/usr/bin/pig /somepath/myscript.pig
由于某种原因,猪在这个阶段总是挂着.
2014-01-28 16:49:31,328 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher - 0% complete
如果我使用
`/usr/bin/pig -x local /somepath/myscript.pig`
由于某种原因抱怨路径:
Input(s): Failed to read data from "file:///path_from_root_dir/tweets_extended_small.csv"
有什么区别,我应该如何在-x local
模式中指定路径,以便我可以摆脱这个错误.
我tweets_extended_small.csv
在HDFS
,我在脚本中指的是这样的
... LOAD 'venues_extended_small.csv' USING ...
谢谢!
Pig基本上有两种执行模式
1]本地模式
2] Map-Reduce模式
本地模式 - 在本地模式下运行Pig时,您需要访问一台机器; 使用本地主机和本地文件系统安装和运行所有文件.
这里*所有文件*表示您要处理的所有文件以及您在pig Script中引用/使用的所有jar或任何内容.
Mapreduce模式 - 当您在mapreduce模式下运行Pig时,您正在处理Hadoop集群和HDFS(Hadoop分布式文件系统).
在这种情况下*所有文件* 都应该在HDFS中.
所以在跑猪时,
pig -x local script_name.pig
"-x"指定必须运行脚本的模式.
因此,在这种情况下,script_name.pig需要位于本地文件系统下.
Mapreduce模式是默认模式; 在运行pig脚本时,您可以,但不需要使用-x标志(pig OR pig -x mapreduce)指定它.
在你的情况下,
将文件和脚本保留在本地计算机中.加载文件为,
... LOAD'/YOUR_PATH_TO_INPUT_CSV_FILE/venues_extended_small.csv'使用......
然后将脚本移动到本地文件系统,然后运行该脚本.
pig -x local'/YOUR_PATH_TO_PIG_SCRIPT/script.pig'
在这种情况下,此链接可以帮助您.
希望这可能对你有所帮助.谢谢.