2012年5月7日 星期一

Hoop

http://cloudera.github.com/hoop/docs/latest/index.html
http://www.cloudera.com/blog/2011/07/hoop-hadoop-hdfs-over-http/


Hoop 是由 Apache Hadoop 所提供的新工具,Hoop 提供 REST API 透過 HTTP 來存取 HDFS,它使用在Hadoop叢集運行不同版本平台之間的資料交換,或存取防火牆後的資料。

為何會往Hoop去做研究?


主要是因為Jena API  loadModel()只能讀取file or http格式,它是不認識hdfs檔案路徑的。
所以當OWL與RDF放置HDFS上,底下的程式碼是無法讀取的,除非去更改Jena API程式。

Model schema = FileManager.get().loadModel(" file:XXX.owl ");
Model data = FileManager.get().loadModel("file:XXX.rdf");


使用Hoop或許可以解決這個問題,因為可以透過HTTP去存取到HDFS上的檔案。

Reading a file:
$ curl -i "http://hoopbar:14000?/user/babu/hello.txt&user.name=babu"
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Transfer-Encoding: chunked
Hello World!

可以看到使用HTTP協定即可讀取到HDFS上的檔案,目前還在實測是否可行,會在補上後續測試結果。
 

6/30補充

後續建置Hoop Server的過程中一直有些小問題建置不起來,如PID被占用伺服器無法啟動問題,還有使用mvn打包Hoop過程中的error訊息...等。

後來發現Hadoop的HDFS Web介面有提供以http協定的檔案路徑,所以暫時解決Jena API讀取HDFS裡的OWL與RDF檔案的問題。

沒有留言:

張貼留言