Apache Pig是用来处理大规模数据的高级查询语言,配合Hadoop使用,可以在处理海量数据时达到事半功倍的效果,比使用Java,C++等语言编写大规模数据处理程序的难度要小N倍,实现同样的效果的代码量也小N倍。
我根据自己在工作中的学习和总结,写了如下一些Apache Pig中文教程,供大家参考。
文章来源:http://www.codelast.com/
➤ Apache Pig的一些基础概念及用法总结(1)
➤ Apache Pig中文教程(进阶)
➤ 使用Apache Pig时应该注意/避免的操作或事项
文章来源:http://www.codelast.com/
➤ 如何用Apache Pig输出压缩格式的SequenceFile
➤ 如何在Apache Pig中判断一个bag中是否包含特定的元素
➤ 使用Apache DataFu中的Coalesce()简化Apache Pig的三元运算符
➤ Apache Pig如何按数据分组保存到不同的子目录中(MultiStorage)
➤ 在Apache Pig中把数据按指定字段分组,每组取时间最新的一条记录
文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤
转载需注明出处:codelast.com
感谢关注我的微信公众号(微信扫一扫):
以及我的微信视频号:
我想搞一个自动运行的SHELL脚本, 让系统每天一个Pig脚本, 请问如何能够让Pig运行一次脚本输出到日志上。 因为要对输入行数和输出行数进行归档。
在不借助其他PigStorage的情况下,Pig只能把数据输出到HDFS上,因此,在shell脚本中执行Pig脚本,然后把Pig脚本输出到HDFS上的数据hadoop fs -get到local fs再处理。
我问的其实是执行脚本的时候屏幕会输出
successed read xxx records ...
这些数据怎么才能重定向输出到某个文件上, 作为程序执行日志。
pig -x mapreduce filename > log 2>&1
最近正在考虑如何将pig在mapreduce模式下的操作结果保存入关系型数据库,像mysql之类的,请问该如何操作?这样的想法可以实现不能?
早就有了很多年了:
http://pig.apache.org/docs/r0.8.1/api/org/apache/pig/piggybank/storage/DBStorage.html
http://stackoverflow.com/questions/4648814/a-way-to-export-the-results-from-pig-to-a-database
不过不建议那样做,可能在特定的MySQL环境下会有陷阱,具体一两句说不清,我不打算在这里叙述。
结果数据量不大的话,还是建议用shell script来插入MySQL。
楼主,求助您问题:
java.lang.RuntimeException: java.io.FileNotFoundException: File does not exist: /pig_tmp/temp434410245/tmp1466749759/part-r-00113
我用小数据量跑pig脚本的时候,经常会出现这样的错误,
但是脚本平时在大数量中跑是正常的
查看了日志,初步发现的问题是:相关联的上一步job写的中间数据被删掉了,不知道什么原因?
没遇到过这种问题。
如果不是local job,那么应该就跟提交jog的机器无关,帮不了你。
如果是local job,建议换一台机器试跑一下看看是否出问题。
很感谢楼主答复,大概问题我找到了,是人为设置并发执行的时候导致的,面对少数据量,而设置高并发会出现这样的问题,不知道这个是不是个bug :)
good~ 支持楼主~
感谢楼主的分享精神~
一直在关注,从学PIG就一直看你写的文章。期待更多的更新。