[英]Loading new files using Pig LOAD statement
我想使用PIG脚本将数据从HDFS加载到HBSE表。
我有hadfs文件夹结构如下:
-rw-r--r-- 1 user supergroup 63 2014-05-15 20:28 dataparse/good/goodrec_051520142028
-rw-r--r-- 1 user supergroup 72 2014-05-15 20:30 dataparse/good/goodrec_051520142030
-rw-r--r-- 1 user supergroup 110 2014-05-15 20:32 dataparse/good/goodrec_051520142032
在上面,所有文件名都附带时间戳。
下面是我的从HDFS加载到HBASE的PIG脚本:
G = LOAD '/user/user/dataparse/good/' USING PigStorage(',') as (c1:chararray, c2:chararray,c3:chararray,c4:chararray,c5:chararray);
STORE G INTO 'hbase://test' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('t1:name t1:state t1:phone_no t1:gender');
脚本运行正常,并且所有3个文件中的数据都写入了Hbase“ test ”表。
假设一段时间后,如果有更多具有相同结构的文件进入HDFS,则当我运行Pig脚本时,它将把“ good ”目录中的所有文件与已读取的文件一起加载。 所以我怎么能只加载那些是新文件的文件。 已经加载的文件不应该再次加载到我的HBASE表中。
我怎样才能做到这一点?
谢谢,Sapthashree
您需要有一些调度机制,其中清管器作业会不时运行。 因此,在此过程中,您只能通过继续跟踪时间戳和文件名或任何其他字段来处理之前未处理的文件。
请参阅此处以获取更多信息从Java应用程序中执行Pig
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.