如何在 Ubuntu 14.04 上安装大数据友好型 Apache Accumulo NoSQL 数据库

介绍

Apache Accumulo 是一个基于 Google 的 BigTable的开源分布式 NoSQL 数据库,用于在极大数据集(通常称为大数据)上有效地执行 CRUD (Create Read Update Delete) 操作。

Accumulo 是建立在其他 Apache 软件之上。Accumulo 代表其数据以关键值对的形式,并将这些数据存储在 HDFS (Apache 的 Hadoop 分布式文件系统) 文件中。

在本教程中,您将学习如何:

  • 安装和配置 Apache HDFS 和 ZooKeeper:在启动 Accumulo 之前,这些系统必须激活
  • 安装和配置 Accumulo 独立实例

前提条件

您将需要以下内容:

  • Ubuntu 14.04 服务器(最好是 32 位)
  • A sudo用户
  • 至少 2 GB 的 交换空间

步骤 1 — 安装和配置 JDK 7

Accumulo、HDFS 和 ZooKeeper 都是用 Java 编写的,需要运行 JVM(Java 虚拟机)。

更新包列表索引。

1sudo apt-get update

使用apt-get安装 OpenJDK 7。

1sudo apt-get install openjdk-7-jdk

使用nano来编辑您的壳环境文件,即.bashrc

1nano ~/.bashrc

添加JAVA_HOME作为文件末尾的环境变量。

1export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386

注:JAVA_HOME 的值可能因服务器的架构而有所不同,例如,在 64 位服务器上,值将是 /usr/lib/jvm/java-7-openjdk-amd64. 您可以通过列出 /usr/lib/jvm/ 目录的内容来查看准确的路径。

保存文件并输出nano。通过键入更新当前会话的环境变量:

1. ~/.bashrc

使用nano编辑JVM的java.security配置文件。

1sudo nano $JAVA_HOME/jre/lib/security/java.security

搜索参数 securerandom.source 并更改行以使其看起来如下:

1securerandom.source=file:/dev/./urandom

保存文件并输出nano。这个更改是必要的,以减少JVM的启动时间。

第2步:安装SSH

Hadoop 需要 SSH 和 Rsync 来管理其 Daemons. 使用以下命令来安装它们:

1sudo apt-get install ssh rsync

步骤 3:启用无密码的 SSH 连接

Hadoop 应该能够通过 SSH 连接到您的服务器,而不需要密码。

使用「ssh-keygen」生成 RSA 密钥。

1ssh-keygen -P ''

提示时按 ** ENTER** 以选择默认值。

将生成的密钥添加到autorized_keys文件中。

1cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

值「localhost」和「0.0.0.0」应添加到已知主机列表中,最简单的方法是运行命令「ssh」。

让我们先加入本地吧。

1ssh localhost

您将收到一个看起来像这样的消息:

1The authenticity of host 'localhost (127.0.0.1)' can't be established.
2ECDSA key fingerprint is bf:01:63:5b:91:aa:35:db:ee:f4:7e:2d:36:e7:de:42.
3Are you sure you want to continue connecting (yes/no)?

输入并按进入

一旦登录完成,请通过键入以下方式退出子女SSH会话:

1exit

现在我们再加上‘0.0.0.0’。

1ssh 0.0.0.0

输入并在提示时按ENTER

再次,通过键入退出孩子的 SSH 会话:

1exit

SSH 设置已完成。

第4步:创建下载目录

您将下载几个文件为本教程. 虽然不是真正必要的,这是一个好主意,以存储所有的下载在一个单独的目录。

1mkdir -p ~/Downloads

进入目录。

1cd ~/Downloads

第5步:下载Apache Hadoop

在写作时,Hadoop的最新稳定版本是 2.6.0 . 使用wget下载。

1wget "http://www.eu.apache.org/dist/hadoop/common/stable/hadoop-2.6.0.tar.gz"

第6步:下载Apache ZooKeeper

ZooKeeper 的最新稳定版本是 3.4.6 . 使用 wget 下载。

1wget "http://www.eu.apache.org/dist/zookeeper/stable/zookeeper-3.4.6.tar.gz"

第7步:下载Apache Accumulo

Accumulo的最新稳定版本是 1.6.1 . 使用wget下载。

1wget "http://www.eu.apache.org/dist/accumulo/1.6.1/accumulo-1.6.1-bin.tar.gz"

步骤 8 – 创建一个安装目录

创建一个目录来存储我们所有与 Accumulo 相关的安装。

1mkdir -p ~/Installs

进入目录。

1cd ~/Installs

第9步:安装和配置Hadoop

使用tar命令提取hadoop-2.6.0-src.tar.gz的内容。

1tar -xvzf ~/Downloads/hadoop-2.6.0.tar.gz

注意: 如果您安装了此软件的其他版本,请在文件名中使用相应的版本。

使用nano打开hadoop-env.sh

1nano ~/Installs/hadoop-2.6.0/etc/hadoop/hadoop-env.sh

寻找从出口 JAVA_HOME开始的行,然后将其更改为:

1export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386

请确保此值与您在 .bashrc 中设置的值相同。

默认情况下,Hadoop 会生成大量的调试日志. 要停止这种行为,请寻找从出口 HADOOP_OPTS开始的行,然后将其更改为:

1export HADOOP_OPTS="$HADOOP_OPTS -XX:-PrintWarnings -Djava.net.preferIPv4Stack=true"

保存和退出。

使用nano打开core-site.xml

1nano ~/Installs/hadoop-2.6.0/etc/hadoop/core-site.xml

添加一个名为fs.defaultFS<属性>块,其值应该指向 namenode 的主机名和端口(在我们的情况下,它是localhost,默认端口是9000).忽略了评论,请编辑您的文件,以便它看起来像这样:

1<?xml version="1.0" encoding="UTF-8"?>
2<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
3<configuration>
4    <property>
5        <name>fs.defaultFS</name>
6        <value>hdfs://localhost:9000</value>
7    </property>
8</configuration>

保存和退出。

使用nano打开hdfs-site.xml

1nano ~/Installs/hadoop-2.6.0/etc/hadoop/hdfs-site.xml

以下属性需要添加到此文件:

  • dfs.replication: 這個數字指定了 Hadoop 複製區塊的次數。 默認時, Hadoop 為每個區塊創建了 3 複製。 在本教程中,使用值 1,因為我們不是在創建群集。
  • dfs.name.dir: 這指示了檔案系統中的位置,其中 namenode 可以儲存名表。 您需要改變這一點,因為 Hadoop 默認使用 /tmp。 讓我們使用 hdfs_storage/name 儲存名表。
  • dfs.data.dir: 這指示了檔案系統中的位置,而 datanode 應該儲存其區塊。 您需要改變這一點,因為 H

忽略了评论,在添加这些属性后,您的文件应该是这样的:

 1<?xml version="1.0" encoding="UTF-8"?>
 2<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
 3<configuration>
 4    <property>
 5        <name>dfs.replication</name>
 6        <value>1</value>
 7    </property>
 8    <property>
 9        <name>dfs.name.dir</name>
10        <value>hdfs_storage/name</value>
11    </property>
12    <property>
13        <name>dfs.data.dir</name>
14        <value>hdfs_storage/data</value>
15    </property>
16</configuration>

使用nano创建一个名为mapred-site.xml的新文件。

1nano ~/Installs/hadoop-2.6.0/etc/hadoop/mapred-site.xml

将名为mapred.job.tracker的属性添加到此文件中. 此属性包含运行 MapReduce 工作追踪器的主机名和端口号。

将以下内容添加到文件中:

1<?xml version="1.0"?>
2<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
3<configuration>
4     <property>
5         <name>mapred.job.tracker</name>
6         <value>localhost:9001</value>
7     </property>
8</configuration>

输入 Hadoop 的基本目录(这很重要,因为 Hadoop 在当前目录中创建了hdfs_storage目录)。

1cd ~/Installs/hadoop-2.6.0/

NameNode 现在可以通过键入开始:

1~/Installs/hadoop-2.6.0/bin/hdfs namenode -format

你应该看到一些产量。

接下来,通过键入开始 NameNode:

1~/Installs/hadoop-2.6.0/sbin/start-dfs.sh

一旦启动,您可以使用浏览器访问 http://<your-ip>:50070/ 并浏览 NameNode 的 Web 界面。

Hadoop NameNode Web Interface

  • 解决问题 *

如果无法访问 Web 接口,请使用以下命令检查 NameNode 是否活跃:

1jps

您的输出应包含以下三个进程以及JPS进程:

  • DataNode
  • NameNode
  • SecondaryNameNode

如果您看到NameNode不在输出中,请执行以下步骤. 如果它们在一个块中不执行,您可能需要单独运行它们。

1cd ~/Installs/hadoop-2.6.0/
2~/Installs/hadoop-2.6.0/sbin/stop-dfs.sh # Stop Hadoop's nodes
3rm -rf hdfs_storage # Delete the namenode data
4rm -rf /tmp/hadoop-* # Delete the temporary directories
5~/Installs/hadoop-2.6.0/bin/hdfs namenode -format # Reformat the namenode

使用「start-dfs.sh」重新啟動 Hadoop:

1~/Installs/hadoop-2.6.0/sbin/start-dfs.sh

您现在应该能够访问 Web 界面。

步骤 10 – 安装和配置 ZooKeeper

进入安装目录。

1cd ~/Installs

使用tar来提取zookeeper-3.4.6.tar.gz

1tar -xvzf ~/Downloads/zookeeper-3.4.6.tar.gz

复制示例文件 zoo_sample.cfgzoo.cfg

1cp ~/Installs/zookeeper-3.4.6/conf/zoo_sample.cfg ~/Installs/zookeeper-3.4.6/conf/zoo.cfg

ZooKeeper 的配置已完成. 通过键入开始 ZooKeeper:

1~/Installs/zookeeper-3.4.6/bin/zkServer.sh start

你应该看到这样的输出:

1JMX enabled by default
2Using config: ~/Installs/zookeeper-3.4.6/bin/../conf/zoo.cfg
3Starting zookeeper ... STARTED

步骤 11 – 安装和配置 Accumulo

现在所有的依赖已经满足了,是时候为Accumulo本身的安装工作了。

进入安装目录。

1cd ~/Installs

提取 accumulo-1.6.1-bin.tar.gz 使用 tar:

1tar -xvzf ~/Downloads/accumulo-1.6.1-bin.tar.gz

Accumulo 提供各种内存大小的服务器的样本配置: 512 MB, 1 GB, 2 GB 和 3 GB. 我将在本教程中使用 512 MB 的配置。

将 512 MB 配置文件复制到conf目录。

1cp ~/Installs/accumulo-1.6.1/conf/examples/512MB/standalone/* ~/Installs/accumulo-1.6.1/conf/

使用nano再次编辑您的壳环境,使用.bashrc文件。

1nano ~/.bashrc

将以下环境变量添加到此文件中:

  • HADOOP_HOME:通往 Hadoop 安装之路
  • ZOOKEEPER_HOME:通往 ZooKeeper 安装之路

将以下行添加到您的文件中:

1export HADOOP_HOME=~/Installs/hadoop-2.6.0/
2export ZOOKEEPER_HOME=~/Installs/zookeeper-3.4.6/

保存和退出。

更新环境,以便您添加到 .bashrc 的变量在当前会话中可用。

1. ~/.bashrc

使用「nano」來編輯「accumulo-env.sh」。

1nano ~/Installs/accumulo-1.6.1/conf/accumulo-env.sh

默认情况下,Accumulo 的 HTTP 显示器仅连接到本地网络接口. 要通过互联网访问它,您必须将 ACCUMULO_MONITOR_BIND_ALL 值设置为 `true'。

查找从export ACCUMULO_MONITOR_BIND_ALL开始的行,然后放弃评论。

1export ACCUMULO_MONITOR_BIND_ALL="true"

保存和退出。

使用「nano」來編輯「accumulo-site.xml」。

1nano ~/Installs/accumulo-1.6.1/conf/accumulo-site.xml

Accumulo 的工人流程使用秘密密密钥相互通信. 应该更改为安全的字符串. 搜索属性 instance.secret 并更改其值. 我将使用此字符串: PASS1234. 属性的 XML 应该是这样的:

1<property>
2    <name>instance.secret</name>
3    <value>PASS1234</value>
4    <description>A secret unique to a given instance that all servers must know in order to communicate with one another.
5      Change it before initialization. To
6      change it later use ./bin/accumulo org.apache.accumulo.server.util.ChangeSecret --old [oldpasswd] --new [newpasswd],
7      and then update this file.
8    </description>
9</property>

接下来,添加一个名为instance.volumes的新属性. 该属性的值指定了 Accumulo 应该在 HDFS 中存储数据的位置. 让我们将数据存储在/accumulo目录中。

1<property>
2    <name>instance.volumes</name>
3    <value>hdfs://localhost:9000/accumulo</value>
4</property>

查找属性 trace.token.property.password,并将其值设置为安全的东西. 记住这个值,因为您将在下一步需要它。

1<property>
2    <name>trace.token.property.password</name>
3    <value>mypassw</value>
4  </property>

保存和退出。

开始积累。

1~/Installs/accumulo-1.6.1/bin/accumulo init

您将被要求输入一个 Instance 名称 . 使用您选择的任何名称. 我选择 DIGITAL_OCEAN

接下来,您将被要求提供密码. 输入您为属性 trace.token.property.password 使用的相同密码。

一旦命令完成,您可以启动 Accumulo。

1~/Installs/accumulo-1.6.1/bin/start-all.sh

您可能会看到一些警告建议某些系统参数更高的值. 由于我们在本教程中创建了一个非常小的实例,您可以忽略这些警告。

一旦启动完成,您可以使用浏览器访问Accumulo的 Web 界面:http://:50095`。

Accumulo Web Interface

结论

在本教程中,你已经学会了如何设置Apache Accumulo和它所依赖的所有其他组件. 我们今天创建了一个非常简单的设置,使用HDFS在假分布式模式下,可以运行在单个小服务器上。

在生产场景中,建议这些流程部署在具有至少8GB的RAM和4个或更多处理器核心的服务器上,以便每个流程可以使用超过2GB的内存和一个单独的核心。

有关更多信息,请参阅 Apache Accumulo 的 用户手册

Published At
Categories with 技术
comments powered by Disqus