可以使用cqlsh以及不同语言的驱动程序访问Cassandra.本章介绍如何设置cqlsh和java环境以使用Cassandra.
在Linux环境中安装Cassandra之前,我们需要使用 ssh (Secure Shell)设置Linux.按照下面给出的步骤设置Linux环境.
一开始,建议为Hadoop创建单独的用户将Hadoop文件系统与Unix文件系统隔离开来.按照以下步骤创建用户.
使用命令"su"打开root .
使用命令"useradd username"从root帐户创建用户.
现在,您可以使用命令"su username"打开现有用户帐户.
打开Linux终端并输入以下命令来创建用户.
$ su password: # useradd hadoop # passwd hadoop New passwd: Retype new passwd
需要SSH设置才能在群集上执行不同的操作,例如启动,停止和分布式守护程序shell操作.要对Hadoop的不同用户进行身份验证,需要为Hadoop用户提供公钥/私钥对,并与不同的用户共享.
以下命令用于生成密钥值对使用SSH :
将公钥表格id_rsa.pub复制到authorized_keys,
和提供所有者,
分别对authorized_keys文件的读写权限.
$ ssh-keygen -t rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
验证ssh:
ssh localhost
Java是Cassandra的主要先决条件.首先,您应该使用以下命令验证系统中
的存在性 :
$ java -version
如果一切正常,它会给你以下输出.
java version "1.7.0_71" Java(TM) SE Runtime Environment (build 1.7.0_71-b13) Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)
如果您的系统中没有Java,请按照下面给出的步骤安装Java.
下载java(JDK< latest version> - X64.tar.gz)
然后jdk-7u71-linux -x64.tar.gz将被下载到您的系统上.
通常您会找到下载的java文件下载夹.使用以下命令验证并解压缩 jdk-7u71-linux-x64.gz 文件.
$ cd Downloads/ $ ls jdk-7u71-linux-x64.gz $ tar zxf jdk-7u71-linux-x64.gz $ ls jdk1.7.0_71 jdk-7u71-linux-x64.gz
为了让所有用户都可以使用Java,必须将其移动到"/usr/local/"位置.打开root,然后输入以下命令.
$ su password: # mv jdk1.7.0_71 /usr/local/ # exit
设置 PATH 和 JAVA_HOME 变量,将以下命令添加到〜/.bashrc 文件中.
export JAVA_HOME = /usr/local/jdk1.7.0_71 export PATH = $PATH:$JAVA_HOME/bin
现在应用所有更改进入当前运行的系统.
$ source ~/.bashrc
使用以下命令配置java替代方案.
# alternatives --install /usr/bin/java java usr/local/java/bin/java 2 # alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2 # alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2 # alternatives --set java usr/local/java/bin/java # alternatives --set javac usr/local/java/bin/javac # alternatives --set jar usr/local/java/bin/jar
现在使用终端上的 java -version 命令,如上所述.
在"/.bashrc"中设置Cassandra路径的路径,如下所示.
[hadoop@linux ~]$ gedit ~/.bashrc export CASSANDRA_HOME = ~/cassandra export PATH = $PATH:$CASSANDRA_HOME/bin
Apache Cassandra下载,Cassandra使用以下命令.
$ wget http://supergsego.com/apache/cassandra/2.1.2/apache-cassandra-2.1.2-bin.tar.gz
使用 zxvf 命令解压缩Cassandra,如下所示.
$ tar zxvf apache-cassandra-2.1.2-bin.tar.gz.
创建一个名为cassandra的新目录,并将下载文件的内容移动到该目录,如下所示.
$ mkdir Cassandra $ mv apache-cassandra-2.1.2/* cassandra.
打开 cassandra.yaml:文件,该文件可用在Cassandra的 bin 目录中.
$ gedit cassandra.yaml
注意 : 如果您已经从deb或rpm软件包安装了Cassandra,配置文件将位于Cassandra的/etc/cassandra 目录中.
上面的命令打开 cassandra.yaml 文件.验证以下配置.默认情况下,这些值将设置为指定的目录.
data_file_directories "/var/lib/cassandra/data"
commitlog_directory "/var/lib/cassandra/commitlog"
saved_caches_directory "/var/lib/cassandra/saved_caches"
确保这些目录存在且可以写入,如下所示.
作为超级用户,创建两个目录Cassandra写入数据的/var/lib/cassandra 和/var./log/cassandra .
[root@linux cassandra]# mkdir /var/lib/cassandra [root@linux cassandra]# mkdir /var/log/cassandra
为新创建的文件夹提供读写权限,如下所示.
[root@linux /]# chmod 777 /var/lib/cassandra [root@linux /]# chmod 777 /var/log/cassandra
要启动Cassandra,打开终端窗口,导航到Cassandra主目录/home,在那里解压缩Cassandra,然后运行以下命令启动Cassandra服务器.
$ cd $CASSANDRA_HOME $./bin/cassandra -f
使用-f选项告诉Cassandra留在前台而不是作为后台进程运行.如果一切顺利,你可以看到Cassandra服务器启动.
要以编程方式设置Cassandra,请下载以下jar文件 :
slf4j-api-1.7.5.jar
cassandra-driver-core-2.0 .2.jar
guava-16.0.1.jar
metrics-core-3.0.2.jar
netty-3.9.0.Final.jar
将它们放在一个单独的文件夹中.例如,我们将这些jar下载到名为"Cassandra_jars"的文件夹.
在".bashrc"中设置此文件夹的类路径文件如下所示.
[hadoop@linux ~]$ gedit ~/.bashrc //Set the following class path in the .bashrc file. export CLASSPATH = $CLASSPATH:/home/hadoop/Cassandra_jars/*
打开Eclipse并创建一个名为Cassandra _Examples的新项目.
右键单击该项目,选择构建路径→配置构建路径,如下所示.
它将打开属性窗口.在"库"选项卡下,选择添加外部JAR .导航到保存jar文件的目录.选择所有五个jar文件并单击OK,如下所示.
在Referenced Libraries下,您可以看到添加的所有必需的jar,如下所示 :
下面给出了使用maven构建Cassandra项目的pom.xml.
<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>com.datastax.cassandra</groupId> <artifactId>cassandra-driver-core</artifactId> <version>2.0.2</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>16.0.1</version> </dependency> <dependency> <groupId>com.codahale.metrics</groupId> <artifactId>metrics-core</artifactId> <version>3.0.2</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty</artifactId> <version>3.9.0.Final</version> </dependency> </dependencies> </project>