cassandra install & troubleshooting

1.安裝相對應版本的JDK

轉自http://blog.csdn.net/snowdream86/article/details/6677450

The version number shown describes the version of the JRE the class file is compatible with.

The reported major numbers are:

J2SE 8 = 52,
J2SE 7 = 51,
J2SE 6.0 = 50,
J2SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(source: http://en.wikipedia.org/wiki/Java_class_file )


第一步:下載jdk-7-linux-i586.tar.gz

[plain] view plaincopy
  1. wget -c http://download.oracle.com/otn-pub/java/jdk/7/jdk-7-linux-i586.tar.gz  
(注:如果下載不下來,建議使用迅雷下載,然後拷貝到Linux系統上。)

二步:解壓安裝

[plain] view plaincopy
  1. sudo tar zxvf ./jdk-7-linux-i586.tar.gz  -C /usr/lib/jvm  
  2. cd /usr/lib/jvm  
  3. sudo mv jdk1.7.0/ java-7-sun  

第三步:修改環境變量

[plain] view plaincopy
  1. vim ~/.bashrc  
添加:
[plain] view plaincopy
  1. export JAVA_HOME=/usr/lib/jvm/java-7-sun  
  2. export JRE_HOME=${JAVA_HOME}/jre  
  3. export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
  4. export PATH=${JAVA_HOME}/bin:$PATH  
保存退出,輸入以下命令使之立即生效。
[plain] view plaincopy
  1. source ~/.bashrc  

第四步:配置默認JDK版本

由於ubuntu中可能會有默認的JDK,如openjdk,所以,爲了將我們安裝的JDK設置爲默認JDK版本,還要進行如下工作。
執行代碼:
[plain] view plaincopy
  1. sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-7-sun/bin/java 300  
  2. sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-7-sun/bin/javac 300  
  3. sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/java-7-sun/bin/jar 300   
  4. sudo update-alternatives --install /usr/bin/javah javah /usr/lib/jvm/java-7-sun/bin/javah 300   
  5. sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/java-7-sun/bin/javap 300   

執行代碼:
[plain] view plaincopy
  1. sudo update-alternatives --config java  

系統會列出各種JDK版本,如下所示:
[plain] view plaincopy
  1. snowdream@snowdream:~$ sudo update-alternatives --config java  
  2. 有 3 個候選項可用於替換 java (提供 /usr/bin/java)。  
  3.   
  4.   
  5.   選擇       路徑                                    優先級  狀態  
  6. ------------------------------------------------------------  
  7. * 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      自動模式  
  8.   1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      手動模式  
  9.   2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        手動模式  
  10.   3            /usr/lib/jvm/java-7-sun/bin/java           300       手動模式  
  11.   
  12.   
  13. 要維持當前值[*]請按回車鍵,或者鍵入選擇的編號:3  
  14. update-alternatives: 使用 /usr/lib/jvm/java-7-sun/bin/java 來提供 /usr/bin/java (java),於 手動模式 中。  

第五步:測試

[plain] view plaincopy
  1. snowdream@snowdream:~$ java -version  
  2. java version "1.7.0"  
  3. Java(TM) SE Runtime Environment (build 1.7.0-b147)  
  4. Java HotSpot(TM) Server VM (build 21.0-b17, mixed mode)  


2.cassandra install 

2.1 from source 
直接下載解壓的方式

 
$ mkdir ~/develop

$ tar zxvf apache-cassandra-0.7.4-bin.tar.gz -C ~/develop/

$ cd ~/develop/apache-cassandra-0.7.4

因爲我們下載的已經是編譯過的二進制版本了,所以不需要再次使用ant編譯。

Cassandra要求具備Java環境,且要求在java 1.6以上版本,我比較傾向於使用Sun Java,當然,使用openjdk也是可以的,官方稱已經對openjdk做了測試。在Lucid上面安裝sun java需要將相應的parterner源寫入sources.list。用vi編輯/etc/apt/sources.list,加入下面這行:

deb http://archive.canonical.com/ lucid partner

之後update一下,使之獲取新的更新源,並進行安裝,

$ sudo apt-get update

$ sudo apt-get install sun-java6-jdk

安裝好之後,可通過下面命令查看,說明安裝成功

$ java -version

java version "1.6.0_24"

Java(TM) SE Runtime Environment (build 1.6.0_24-b07)

Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)

$ javac -version

javac 1.6.0_24

配置單點cassandra

創建cassandra配置文件cassandra.yaml中需要的路徑,爲了保證當前用戶具有相應權限,更改一下其所有者。

$ sudo mkdir -p /var/lib/cassandra

$ sudo chown -R `whoami` /var/lib/cassandra

$ sudo mkdir -p /var/log/cassandra

$ sudo chown -R `whoami` /var/log/cassandra

由於我是遠程登錄過去了,防止在cassandra啓動之後,輸出內容佔滿了屏幕,啓用遠程管理利器tmux或screen,之後啓動cassandra

$ screen

$ ./bin/cassandra -f


2.2 使用更新源安裝cassandra

1)在/etc/apt/source.list中增加cassandra的源:
deb http://www.apache.org/dist/cassandra/debian 11x main
deb-src http://www.apache.org/dist/cassandra/debian 11x main 

2)添加PUBLIC_KEY
gpg --keyserver pgp.mit.edu --recv-keys F758CE318D77295D
gpg --export --armor F758CE318D77295D | sudo apt-key add -
gpg --keyserver pgp.mit.edu --recv-keys 2B5C1B00
gpg --export --armor 2B5C1B00 | sudo apt-key add -

3)install cassandra
sudo apt-get update
sudo apt-get install cassandra

sudo mkdir -p /var/log/cassandra
sudo chown -R `whoami` /var/log/cassandra
sudo mkdir -p /var/lib/cassandra
sudo chown -R `whoami` /var/lib/cassandra

4)start cassandra
sudo cassandra -f

4.a)自動啓動cassandra
/etc/init.d/cassandra start
/etc/init.d/cassandra status
關閉cassandra
sudo /etc/init.d/cassandra stop

5) test cassandra

ps auwx | grep cassandra

cassandra-cli
Connected to: "Test Cluster" on 127.0.0.1/9160Welcome to Cassandra CLI version 1.0.7Type 'help;' or '?' for help.Type 'quit;' or 'exit;' to quit.[default@unknown] 

6) 配置文件
The configuration files are located in /etc/cassandra 
Start-up options (heap size, etc) can be configured in /etc/default/cassandra

參考:
http://dmyz.org/archives/404
http://www.oschina.net/question/12_63305
http://wiki.apache.org/cassandra/GettingStarted

3. TroubleShooting
3.1 Unsupported major.minor version 51.0
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/cassandra/service/CassandraDaemon :Unsupported major.minor version 51.0

The reported major numbers are:

J2SE 8 = 52,
J2SE 7 = 51,
J2SE 6.0 = 50,
J2SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45

(source: http://en.wikipedia.org/wiki/Java_class_file )


3.2 The stack size specified is too small, Specify at least 228k
xss =  -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms1024M -Xmx1024M -Xmn256M -XX:+HeapDumpOnOutOfMemoryError -Xss180k
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.
解決辦法:
I tracked it down to conf/cassandra-env.sh, and changed the -Xss180k => -Xss228k and the node started.


4 安裝 Cassandra 將會創建如下目錄
  • /var/lib/cassandra (data directories)
  • /var/log/cassandra (log directory)
  • /var/run/cassandra (runtime files)
  • /usr/share/cassandra (environment settings)
  • /usr/share/cassandra/lib (JAR files)
  • /usr/bin (binary files)
  • /usr/sbin
  • /etc/cassandra (configuration files)
  • /etc/init.d (service startup script)
  • /etc/security/limits.d (cassandra user limits)
  • /etc/default

在 Linux 平臺上安裝 JNA (Java Native Access) 會優化 Cassandra 的內存使用,要安裝 JNA 很簡單,只需要從這裏下載 jna.jar 文件,並將這個文件保存到 /usr/share/cassandra/lib 目錄即可.




發佈了14 篇原創文章 · 獲贊 0 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章