cassandra學習錯誤問題整合

Cassandra錯誤問題整合

錯誤一:Cassandra啓動錯誤(一)

錯誤信息:

The stack size specified is too small, Specify at least 228k

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit

 

解決方法:

修改配置文件cassandra-env.sh去安裝目錄查找該配置文件

JVM_OPTS="$JVM_OPTS -Xss180k" 改成 JVM_OPTS="$JVM_OPTS -Xss256k"

錯誤二:Cassandra啓動錯誤(二)

錯誤信息:

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit


解決方法:

進入到cassandraconf/cassandra-env.sh文件中,將以下內容刪除

if [ "$JVM_VERSION" \> "1.7" ] ; then

    JVM_OPTS="$JVM_OPTS -XX:+UseCondCardMark"

Fi

 

錯誤三:node中,cassandra連接報錯

代碼:

"use strict";
var cassandra = require('cassandra-driver');
var client = new cassandra.Client({ contactPoints: ['localhost']});
client.connect(function (err) {
  if (err) {
    client.shutdown();
    return console.error('There was an error when connecting', err);
  }
  console.log('Connected to cluster with %d host(s): %j', client.hosts.length, client.hosts.keys());
  console.log('Keyspaces: %j', Object.keys(client.metadata.keyspaces));
  console.log('Shutting down');
  client.shutdown();
});

錯誤信息:

 message: 'All host(s) tried for query failed. First host tried, 127.0.0.1:9042: Error: connect ECONNREFUSED 127.0.0.1:9042. See innerErrors.' }

 

解決方法:

無法連接127.0.0.1 9042端口 打開cassandra.yaml,修改start_native_transport值,從false-> true然後重啓cassandra服務./cassandra -f

 

錯誤四:cassandra-driver數據庫執行insert報錯

錯誤信息:

Cannot execute query with bind variables

 

 

 

 

解決方法:

 

execute中加入參數{prepare: true}

 

 


錯誤五:nodecassandra-driver數據庫操作報錯(一)

錯誤信息:

Unknown code * for a consistency level\n

 


解決方法:

出現這個問題的主要原因是我 npm install cassandra-driver模塊的版本太高是3.*,其默認的consistencylevel 爲localOne 而我安裝的cassandra版本是1.2.4還不支持localOne,可以有以下解決方法:

一:安裝高版本的cassandra數據庫,可以安裝1.2.12及其以上版本,我後來安裝的是1.2.14就可以了。

二:如果不想安裝高版本的數據庫,可以npm uninstall cassandra-driver卸載高版本的cassandra-driver模塊,安裝低版本的2.*,npm install [email protected].

三:這個方法不建議大家使用,因爲需要修改引用的cassandra-driver模塊的源碼,即在node_modules/cassandra-driver/lib/client-options.js consistency: types.consistencies.localOne修改爲 consistency: types.consistencies.one。這個方法只是我當時偷懶想出來的,所以極其不建議用這個方法!

錯誤六:nodecassandra-driver數據庫操作報錯(二)

錯誤信息:

TypeError: Expected Number, obtained '12'

 

解決方法:

期望得到一個數字,卻得到一個字符串’ ’,測試後ejs頁面的值能夠傳遞到對應的後臺,但在執行execute語句時報錯,說明頁面傳值時整數類型被html頁面轉化成了字符串類型,所以在後臺接受頁面傳來的值時需要做一下轉換,用Number()或者parseInt(),兩種方法來實現類型轉換。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章