2012-02-20 73 views
1

我想使用Apache豬在兩個文件來變換/加入的數據,但是我想要實現它一步一步,這意味着,從實際的數據進行測試,但具有小尺寸(10行例如),是它可能使用從STDIN讀取並輸出到STDOUT的豬?Apache Pig可以從STDIN而不是文件加載數據嗎?

回答

0

答案是否定的。在任何MR作業甚至可以在數據上運行之前,數據需要在數據節點上的集羣中排除。

但是,如果你正在使用的數據的一個小樣本只是想要做簡單的東西,你可以在本地模式下使用豬,只是標準輸入寫入到本地文件,並通過腳本運行它。

但是更大的問題變成爲什麼你想在數據流中使用MR/Pig?它曾經也不打算用於這種類型的用途。

+0

回答你關於爲什麼他需要做的這個問題,這裏的anscenario:我有我需要用豬來分析這些大的日誌文件;日誌文件中的每個條目都是一個多行條目,我需要通過sed將它們合併爲一行。我希望將這些行中的每一行從sed傳送到pig(這將是從sed讀取的日誌文件中的兩行,然後製作成一行,然後我將管道傳輸給pig。爲什麼你會這樣做? – Saichovsky 2012-09-02 15:33:21

+0

爲什麼不直接寫一個自定義的加載UDF,這將是一個更好的方法,並且可以用你的Hadoop集羣進行擴展,如果這還不是一個選項,你可以查看Storm(來自Twitter)或者甚至Kafka(來自Linkedin)等不同的技術。看起來是一個更好的選擇,可以進行Sed/Awk類似的任務,可以擴展。 – NerdyNick 2012-09-25 21:09:38

2

基本上Hadoop的支持流媒體的various ways,但豬最初是通過流媒體缺乏加載數據的支持。但是有一些解決方案。

您可以檢查出HStreaming

A = LOAD 'http://myurl.com:1234/index.html' USING HStream('\n') AS (f1, f2); 
+1

好的,我承認這很酷,從來沒有聽說過HStreaming,我一直在看Kafka,Flume或其他人做實時處理,但必須閱讀更多內容。 – NerdyNick 2012-03-03 17:47:32

相關問題