2012-06-13 49 views
4
[email protected]:~$ cqlsh --cql3 lovelyserver01 
Connected to Lovely Cluster at lovelyserver01:9160. 
[cqlsh 2.2.0 | Cassandra 1.1.1 | CQL spec 3.0.0 | Thrift protocol 19.32.0] 
Use HELP for help. 
cqlsh> CREATE KEYSPACE bigdata WITH strategy_class = 'SimpleStrategy' AND strategy_options:replication_factor=3; 
cqlsh> USE bigdata; 
cqlsh:bigdata> CREATE COLUMNFAMILY results (client_id int, hierarchy_id int, units int, measures int, PRIMARY KEY (client_id, hierarchy_id)); 

插入幾行,從5到5000行的任何地方 - 沒有什麼瘋狂的。 然後我意識到我需要調整列族佈局並重新插入所有數據,所以我:Cassandra 1.1.1無法刪除列家庭

cqlsh:bigdata> DROP COLUMNFAMILY results; 

這並沒有什麼,沒有錯誤,列家族仍然存在,我仍然可以選擇從列族的數據。我做了幾次,然後它似乎工作。

然後,當我嘗試重新創建列系列時,每當我獲得「TSocket讀取0字節」並且cqlsh會話變得無用時。如果我刪除所有節點上的cassandra數據目錄,則可以重新創建密鑰空間並重新啓動。當然,這使得發展相當緩慢。

我已經嘗試了5個較舊的筆記本電腦以及10個AWS EC2實例的集羣。

每個節點的初始令牌是前一個值的兩倍。每個節點的種子設置爲第一個節點。提交日誌在同一臺設備上。我正在使用listen_address和rpc_address的主機名。

任何人都知道這個問題可能是什麼?

+0

編輯cassandra/conf/log4j-server.properties並將log4j.appender.R.File設置爲它實際可以訪問的內容可能會解決問題。 (進一步測試) –

+0

所以,這絕對沒有解決問題。我現在發現的是,CF似乎有時候會下降,但是當我重新創建它時,cassandra system.log會報告_used_在CF中的字段的MarshalException。 (但不在新的創建列家族命令)和cqlsh錯誤「TSocket讀取0字節」 –

+0

https://issues.apache.org/jira/browse/CASSANDRA-44 –

回答

3

的組合:

  • 更新到卡桑德拉1.1.2(來自1.1.1)
  • 所有節點
  • 文件系統升級到EXT4(包括ext3)
上安裝NTP

已修復此問題。

0

看起來像編輯該文件'log4j-server.properties'沒有解決問題。

我必須刪除所有機器上的數據才能重新創建列族。這非常煩人。

+0

不適合我,同樣的問題。 – St0rM