cassandra install & troubleshooting

来源:互联网 发布:新手如何做好淘宝网店 编辑:程序博客网 时间:2024/06/05 05:18

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 -versionjava 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 -versionjavac 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 F758CE318D77295Dgpg --export --armor F758CE318D77295D | sudo apt-key add -gpg --keyserver pgp.mit.edu --recv-keys 2B5C1B00gpg --export --armor 2B5C1B00 | sudo apt-key add -3)install cassandrasudo apt-get updatesudo apt-get install cassandrasudo mkdir -p /var/log/cassandrasudo chown -R `whoami` /var/log/cassandrasudo mkdir -p /var/lib/cassandrasudo 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关闭cassandrasudo /etc/init.d/cassandra stop5) test cassandra
ps auwx | grep cassandracassandra-cliConnected 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 目录即可.




0 0
原创粉丝点击