Cassandra - 安装


可以使用 cqlsh 以及不同语言的驱动程序来访问 Cassandra。本章介绍如何设置 cqlsh 和 java 环境以与 Cassandra 一起使用。

安装前设置

在Linux环境中安装Cassandra之前,我们需要使用ssh(Secure Shell)设置Linux 。请按照以下步骤设置 Linux 环境。

创建用户

一开始建议为Hadoop创建一个单独的用户,以将Hadoop文件系统与Unix文件系统隔离。请按照以下步骤创建用户。

  • 使用命令“su”打开根目录。

  • 使用命令“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 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。

步骤1

从以下链接下载 java(JDK <最新版本> - X64.tar.gz):

然后 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

要设置PATHJAVA_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

可使用以下命令从下载链接Cassandra获取 Apache 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”

  • save_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 的 Cassandra 主目录/home,然后运行以下命令来启动 Cassandra 服务器。

$ cd $CASSANDRA_HOME
$./bin/cassandra -f 

使用 –f 选项告诉 Cassandra 留在前台而不是作为后台进程运行。如果一切顺利,您可以看到 Cassandra 服务器启动。

编程环境

要以编程方式设置 Cassandra,请下载以下 jar 文件 -

  • slf4j-api-1.7.5.jar
  • Cassandra驱动程序核心-2.0.2.jar
  • 番石榴-16.0.1.jar
  • 指标-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 的新项目。

右键单击项目,选择Build Path→Configure Build Path,如下所示。

Cassandra 构建路径

它将打开属性窗口。在“库”选项卡下,选择“添加外部 JAR”。导航到保存 jar 文件的目录。选择所有五个 jar 文件,然后单击“确定”,如下所示。

Cassandra 外部 JAR

在引用的库下,您可以看到添加的所有必需的 jar,如下所示 -

日食3

Maven 依赖项

下面给出的是使用 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>