2012-02-09 114 views
3

我有幾千個單獨的html文件存儲在一個目錄本地,他們是至多幾個千字節每個。如何在Cassandra中存儲小文件?

我想將它們存儲在Cassandra的單個節點中,我將如何使用Hector以編程方式執行該操作?我使用哪些API來設置columnFamily來處理靜態文件,以及如何設置模式?謝謝!

回答

4

我想將它們存儲在卡珊德拉的單個節點,我怎麼會去 這樣做以編程赫克託?

您需要在cassandra中創建密鑰空間。您可以使用cassandra-cli命令創建密鑰空間或使用hector方法addKeyspace()在羣集節點中創建它。

我該使用哪些API來設置的ColumnFamily來處理靜態文件 和我應該如何設置的模式?

您可以使用BasicColumnDefinition在cassandra中創建列族。查看示例代碼here,瞭解如何在密鑰空間中添加列族。您可能會有一個名爲html_doc的列族,其名稱爲您的html文件名的列名和類型爲AsciiType或UTF8Type(或默認的BytesType)的值。 html文檔需要以標準的java方式閱讀,你可以看到如何插入列的值 here

1

如果你的文件只有幾K,那麼可以很容易地只在一列中。
請參閱入門指南:Getting started with Hector

  • 設置你的密鑰空間/列家人一次。
  • 將文件讀入字符串或字節數組。
  • 使用ColumnFamilyUpdater將文件寫入列(可能是「FileBody」作爲列名?),並使用文件名作爲關鍵字。
  • 對每個文件重複。