상황1 #
cluster1에는 1시간마다 파일명을 바꾸어 가면서 데이터가 쌓인다.
webhdfs를 이용하여 10분마다 추가된 데이터를 가져오고 싶다.
hdfs에 /tmp/test.txt의 t1 시점의 데이터
{"id":1,"nm":"aaa"}
{"id":2,"nm":"aaaa"}
{"id":3,"nm":"aaaaa"}
{"id":4,"nm":"aaaa"}
{"id":5,"nm":"aaaaa"}
{"id":6,"nm":"aaa"}
{"id":7,"nm":"aaa"}
{"id":8,"nm":"aa"}
{"id":9,"nm":"a"}
{"id":10,"nm":"aa"}
t1 시점에는 203 byte였다.
hdfs에 /tmp/test.txt의 t2 시점의 데이터
{"id":1,"nm":"aaa"}
{"id":2,"nm":"aaaa"}
{"id":3,"nm":"aaaaa"}
{"id":4,"nm":"aaaa"}
{"id":5,"nm":"aaaaa"}
{"id":6,"nm":"aaa"}
{"id":7,"nm":"aaa"}
{"id":8,"nm":"aa"}
{"id":9,"nm":"a"}
{"id":10,"nm":"aa"}
{"id":11,"nm":"aa"} ---> 여기부터 추가되었다.
{"id":12,"nm":"aa"}
{"id":13,"nm":"aa"}
solution
offset을 사용하면 된다.
t1 시점
wget "http://192.168.0.10:50070/webhdfs/v1/tmp/test.txt?op=OPEN&offset=0" -O test1.txt
t2 시점
wget "http://192.168.0.10:50070/webhdfs/v1/tmp/test.txt?op=OPEN&offset=204" -O test2.txt
hadoop metadata가 정확해야 한다.