技术开发 频道

结合使用Hadoop与Couchbase Server

  安装 Hadoop

  如果您尚未安装 Hadoop,最简单的方法是使用一个 Cloudera 安装。为了保持 Hadoop、Sqoop 和 Couchbase 之间的兼容性,最好的解决方案是使用 CDH3 安装(参阅 参考资料)。为此,您需要使用 Ubuntu 10.10 到 11.10 版。更高的 Ubuntu 版本会引入不兼容问题,因为它们不再支持 Cloudera Hadoop 安装所需的一个包。

  在安装之前,请确保已经安装了一个 Java™ 虚拟机,确保在 JAVA_HOME 变量中为 JDK 配置了正确的主目录。请注意,您必须拥有完整的 Java 开发工具包,而不只是拥有 Java 运行时环境 (JRE),因为 Sqoop 将代码编译为 Couchbase Server 与 Hadoop 之间的导出和导入数据。

  要在 Ubuntu 和类似的系统上使用 CDH3 安装,您需要执行以下步骤:

  1.下载 CDH3 配置包。这会将 CDH3 源文件的配置添加到 apt 存储库中。

  2.更新您的存储库缓存:$ apt-get update。

  3.安装主要 Hadoop 包:$ apt-get install hadoop-0.20。

  4.安装 Hadoop 组件(参见 清单 1)。

  清单 1. 安装 Hadoop 组件

$ for comp in namenode datanode secondarynamenode jobtracker tasktracker
do
apt-get install hadoop-0.20-$comp
done

  5.编辑配置文件,以确保您设置了核心组件。

  6.编辑 /etc/hadoop/conf/core-site.xml,使其如 清单 2 所示。

  清单 2. 编辑后的 /etc/hadoop/conf/core-site.xml 文件

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

  这将配置存储数据的默认 hdfs 位置。

  编辑 /etc/hadoop/conf/hdfs-site.xml(参见 清单 3)。

  清单 3. 编辑后的 /etc/hadoop/conf/hdfs-site.xml 文件

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

  这支持复制存储的数据。

  编辑 /etc/hadoop/conf/mapred-site.xml(参见 清单 4)。

  清单 4. 编辑后的 /etc/hadoop/conf/mapred-site.xml 文件

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>

  这实现了 MapReduce 的作业跟踪器。

  7.最后,编辑 Hadoop 环境,使其正确地指向 /usr/lib/hadoop/conf/hadoop-env.sh 中您的 JDK 安装目录。其中会有一个注释掉的 JAVA_HOME 变量行。您应该取消注释它,并将它设置为您的 JDK 位置。例如:export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk。

  8.现在,在您的系统上启动 Hadoop。最简单的方法是使用 start-all.sh 脚本:$ /usr/lib/hadoop/bin/start-all.sh。

  假设所有设置均已正确配置,您现在应有一个正在运行的 Hadoop 系统。

  Couchbase Server 概述

  Couchbase Server 是一个集群化的、基于文档的数据库系统,它使用一个缓存层来提供非常快的数据访问,将大部分数据都存储在 RAM 中。该系统使用多个节点和一个自动分散在整个集群上的缓存层。这实现了一种弹性,您可扩大和紧缩集群,以便利用更多 RAM 或磁盘 I/O 来帮助提升性能。

  Couchbase Server 中的所有数据最终会持久存储在磁盘中,但最初会通过缓存层执行写入和更新操作,这正是提供高性能的源泉,是我们通过处理 Hadoop 数据来获得实时信息和查询内容时可利用的优势。

  Couchbase Server 的基本形式是一个基本文档和基于键/值的存储。只有在您知道文档 ID 时,才能检索集群提供的信息。在 Couchbase Server 2.0 中,您可以将文档存储为 JSON 格式,然后使用视图系统在存储的 JSON 文档上创建一个视图。视图是在存储在数据库中的文档上执行的一个 MapReduce 组合。来自视图的输出是一个索引,它通过 MapReduce 函数来匹配您定义的结构。索引的存在为您提供了查询底层的文档数据的能力。

  我们可以使用此功能从 Hadoop 获取已处理的信息,将该信息存储在 Couchbase Server 中,然后使用它作为查询该数据的基础。Couchbase Server 可以方便地使用一个 MapReduce 系统来处理文档和创建索引。这在用于处理数据的方法之间提供了一定的兼容性和一致性水平。

  安装 Couchbase Server

  安装 Couchbase Server 很容易。从 Couchbase 网站下载适合您平台的 Couchbase Server 2.0 版本(参见 参考资料),使用 dpkg 或 RPM(具体依赖于您的平台)安装该包。

  安装之后,Couchbase Server 会自动启动。要配置它,请打开一个 Web 浏览器,并将它指向您的机器的 localhost:8091(或使用该机器的 IP 地址远程访问它)。

  按照屏幕上的配置说明进行操作。您可使用在安装期间提供的大部分默认设置,但最重要的设置是写入数据库中的数据的数据文件的位置,以及您分配给 Couchbase Server 的 RAM 量。

  使 Couchbase Server 能够与 Hadoop 连接器通信

  Couchbase Server 使用 Sqoop 连接器与您的 Hadoop 集群通信。Sqoop 提供了一个连接在 Hadoop 与 Couchbase Server 之间批量传输数据。

  从技术上讲,Sqoop 是一个设计用于在结构化数据库与 Hadoop 之间转换信息的应用程序。Sqoop 这个名称实际上来源于 SQL 和 Hadoop。

  安装 Sqoop

  如果使用 CDH3 安装,您可使用报管理器来安装 Sqoop:$ sudo apt-get install sqoop。

  这将把 Sqoop 安装在 /usr/lib/sqoop 中。

  注意:Sqoop 中一个最新的 bug 表明它有时会尝试传输uowu的数据集。修补程序包含在 Sqoop 1.4.2 版中。如果遇到问题,请尝试使用 V1.4.2 或更高的版本。

  安装 Couchbase Hadoop Connector

  Couchbase Hadoop Connector 是一个支持 Sqoop 与 Couchbase 之间的连接的 Java jar 文件集合。从 Couchbase 网站下载 Hadoop 连接器(参阅 参考资料)。该文件封装为一个 zip 文件。解压它,然后运行其中的 install.sh 脚本,提供 Sqoop 系统的位置。例如:$ sudo bash install.sh /usr/lib/sqoop。

  这将安装所有必要的库和配置文件。现在我们可以开始在两个系统之间交换信息了。

0
相关文章