2011-03-10 67 views
1

我是Hadoop的新手。我對此知之甚少。 我的情況如下: 我有一組具有相同模式的xml文件(700GB +)。使用Hadoop處理xml文件

<article> 
<title>some title</title> 
<abstract>some abstract</abstract> 
<year>2000</year> 
<id>E123456</id> 
<authors> 
    <author id="1"> 
    <firstName>some name1</firstName> 
    <lastName>some name1</lastName> 
    <email>[email protected]</email> 
    <affiliations affid="123"> 
    <org>some organization1</org> 
    <org>some organization2</org> 
    </affiliations> 
    </author> 
    <author id="2"> 
    <firstName>some name2</firstName> 
    <lastName>some name2</lastName> 
    <email>[email protected]</email> 
    <affiliations affid="123"> 
    <org>some organization1</org> 
    <org>some organization2</org> 
    </affiliations> 
    </author> 
    <tags> 
    <tag>medicin</tag> 
    <tag>inheritance</tag> 
    </tags> 
</authors> 
<references> 
    <reference>some reference text1</reference> 
    <reference>some reference text2</reference> 
</references> 
</article> 

我的XML文件中的數據轉換到關係數據庫包含以下各表

  • 文章
  • 作者
  • 標籤
  • 參考

我有一套工作的工具用於生成統計報告列表和執行一些其他工作人員的表格。由於在References表上使用全文搜索的工具,我將它存儲在Lucene Solr索引中。

我的問題是: 我可以使用Hadoop的爲:

  1. 存儲是在XML文件中
  2. 製造某種以上(作者,文章,標籤和列出的實體之間的分離數據參考資料)
  3. 運行我的工具對數據執行一組非常複雜的查詢,並且如果可以使用hadoop完成這些工作,它是否會有很好的性能?

如果Hadoop是不是情況下,一個很好的候選人,將是任何其他的NoSQL數據庫MongoDB的一樣或卡桑德拉一個更好的解決方案(因爲我的關係系統最大的問題是非常糟糕的表現與複雜的算法,我用來做我的工作)?

預先感謝您。

+0

如果沒有關於您打算在數據上運行哪種查詢的更多具體細節,這幾乎是不可能的。 – bajafresh4life

+0

完全同意bajafresh4life,不知道類型的查詢很難理解他們是否可以轉換爲mapreduce(hadoop)或不。 其他的一點是hadoop不是nosql數據庫。 Hadoop是文件系統+ fremework與它一起工作。這裏是與hadoop密切相關的Hbase,它是一個nosql數據庫。 – yura

回答

0

你要求的聲音與谷歌,雅虎,Bing等用網頁吸引某些形式的標記,存儲它們,處理它們以提取相關信息以及提供查詢接口最重要的是。我建議看看這些搜索引擎如何利用MapReduceBigTable實現(如HBaseCassandra)來完成此操作。