Cassandra - 安装
可以使用 cqlsh 以及不同语言的驱动程序访问 Cassandra。本章介绍如何设置 cqlsh 和 java 环境以使用 Cassandra。
安装前设置
在 Linux 环境中安装 Cassandra 之前,我们需要使用 ssh(安全 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 设置和密钥生成
需要 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
Java 是 Cassandra 的主要先决条件。首先,您应该使用以下命令验证系统中是否存在 Java −
$ java -version
如果一切正常,它将为您提供以下输出。
java 版本"1.7.0_71" Java(TM) SE 运行时环境(版本 1.7.0_71-b13) Java HotSpot(TM) 客户端 VM(版本 25.0-b02,混合模式)
如果您的系统中没有 Java,请按照下面给出的步骤安装 Java。
步骤 1
从以下链接:
然后 jdk-7u71-linux-x64.tar.gz 将下载到您的系统上。
第 2 步
通常,您会在 Downloads 文件夹中找到下载的 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
步骤 3
要使所有用户都可以使用 Java,您必须将其移动到位置"/usr/local/"。打开 root,然后输入以下命令。
$ su password: # mv jdk1.7.0_71 /usr/local/ # exit
步骤 4
要设置 PATH 和 JAVA_HOME 变量,请将以下命令添加到 ~/.bashrc 文件中。
export JAVA_HOME = /usr/local/jdk1.7.0_71 export PATH = $PATH:$JAVA_HOME/bin
现在将所有更改应用到当前运行的系统中。
$ source ~/.bashrc
步骤 5
使用以下命令配置 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
下载 Cassandra
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
打开 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"
确保这些目录存在并且可以写入,如下所示。
创建目录
以超级用户身份创建两个目录 /var/lib/cassandra 和 /var./log/cassandra,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,请打开终端窗口,导航到 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 环境
打开 Eclipse 并创建一个名为 Cassandra _Examples 的新项目。
右键单击项目,选择构建路径→配置构建路径,如下所示。
它将打开属性窗口。在"库"选项卡下,选择添加外部 JAR。导航到您保存 jar 文件的目录。选择所有五个 jar 文件并单击 OK,如下所示。
在 Referenced Libraries 下,您可以看到已添加的所有必需 jar,如下所示 −
Maven Dependencies
下面给出了使用 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>