# 安装指南

原文链接 :[http://kudu.apache.org/docs/installation.html](http://kudu.apache.org/docs/installation.html)

译文链接 : [http://cwiki.apachecn.org/pages/viewpage.action?pageId=10813613](http://cwiki.apachecn.org/pages/viewpage.action?pageId=10813613)

贡献者 : [小瑶](/display/~chenyao) [ApacheCN](/display/~apachecn) [Apache中文网](/display/~apachechina)

## 安装 Apache Kudu

您可以使用软件包在集群上部署 **Kudu** ，也可以从源代码构建 **Kudu** 。要运行 **Kudu** 而不安装任何东西，请使用** [Kudu QuickStart VM](/pages/viewpage.action?pageId=10813610)** 。

注意

**Kudu** 目前更容易使用 **Cloudera Manager 5.4.7** 或更高版本进行安装和管理。如果您使用 **[Cloudera Manager](http://www.cloudera.com/content/www/en-us/products/cloudera-manager.html)** ，请参阅 **Cloudera** 的 [**Kudu** 文档](http://www.cloudera.com/documentation/kudu/latest/topics/kudu_installation.html)。

### 升级 Kudu

要从以前的版本升级 **Kudu** ，请参阅从以前版本的[ **Kudu** 升级](/pages/viewpage.action?pageId=10813613)。

## 先决条件和要求

### 硬件

*   一个或者多个主机运行 **Kudu masters**。建议使用一个主站 ( **master** ) ( 无容错 )，三个 **masters** ( 可以容忍一个故障 ) 或 五个 **masters** ( 可以容忍两个故障 )。
*   运行 **Kudu tablet servers** 的一个或多个主机。使用副本时，至少需要三个 **tablet servers** 。

### 操作系统要求

#### Linux

*   **RHEL 6** ，**RHEL 7** ， **CentOS 6** ， **CentOS 7** ， **Ubuntu 14.04 (Trusty)** ， **Ubuntu 16.04 (Xenial)** ， **Debian 8 (Jessie**) ， 或 **SLES 12** 。
*   支持 **hole punching** ( 打孔的 ) 内核和文件系统。打孔是使用** FALLOC_FL_PUNCH_HOLE** 选项设置的 **fallocate(2)** 系统调用。有关详细信息，请参阅 [故障排除 **hole punching**](/pages/viewpage.action?pageId=10813626) 。
*   **ntp** 。
*   **xfs** 或者 **ext4** 格式化的驱动器。

#### macOS

*   **OS X 10.10 Yosemite** ， **OS X 10.11 El Capitan** ， 或 **macOS Sierra** 。
*   未提供预建的 **macOS** 包。

#### Windows

*   **Microsoft Windows** 不受支持。

#### Storage ( 存储 )

*   如果固态存储可用，在这种高性能介质上存储 **Kudu WAL** 可以显著改善 **Kudu** 配置为其最高耐久性水平时的延迟。

#### Management ( 管理 )

*   如果您使用 **Cloudera Manager** 和 **CDH** ，则需要 C**loudera Manager 5.4.3** 或更高版本。**Cloudera Manager 5.4.7** 及更新版本提供更好的监控和管理选项。

## 使用包安装

您可以使用操作系统管理的软件包来安装 **Kudu** 。

表1.**Kudu** 包位置

| OS ( 操作系统 ) | Repository ( 存储库 ) | Individual Packages ( 单个包 ) |
| --- | --- | --- |
| RHEL 或 CentOS | [RHEL 6 or CentOS 6](http://archive.cloudera.com/kudu/redhat/6/x86_64/kudu/cloudera-kudu.repo), [RHEL 7 or CentOS 7](http://archive.cloudera.com/kudu/redhat/7/x86_64/kudu/cloudera-kudu.repo) | [RHEL 6 or CentOS 6](http://archive.cloudera.com/kudu/redhat/6/x86_64/kudu/5/RPMS/x86_64/), [RHEL 7 or CentOS 7](http://archive.cloudera.com/kudu/redhat/7/x86_64/kudu/5/RPMS/x86_64/) |
| SLES | [SLES 12](http://archive.cloudera.com/kudu/sles/12/x86_64/kudu/cloudera-kudu.repo) | [SLES 12](http://archive.cloudera.com/kudu/sles/12/x86_64/kudu/5/RPMS/x86_64/) |
| Ubuntu | [Trusty](http://archive.cloudera.com/kudu/ubuntu/trusty/amd64/kudu/cloudera.list), [Xenial](http://archive.cloudera.com/kudu/ubuntu/xenial/amd64/kudu/cloudera.list) | [Trusty](http://archive.cloudera.com/kudu/ubuntu/trusty/amd64/kudu/pool/contrib/k/kudu/), [Xenial](http://archive.cloudera.com/kudu/ubuntu/xenial/amd64/kudu/pool/contrib/k/kudu/) |
| Debian | [Jessie](http://archive.cloudera.com/kudu/debian/jessie/amd64/kudu/cloudera.list) | [Jessie](http://archive.cloudera.com/kudu/debian/jessie/amd64/kudu/pool/contrib/k/kudu/) |

### 安装在 RHEL 或 CentOS 主机上

1.  下载并配置您的操作系统的 **Kudu** 存储库，或使用 **Kudu Package Locations** 的相应链接手动下载各个 **RPM** 。
2.  如果使用 **Yum** 存储库，请在将 **cloudera-kudu.repo** 文件保存到 **/etc/yum.repos.d/** 之后，使用以下命令在每个主机上安装 **Kudu** 软件包。

    ```
    sudo yum install kudu                         # Base Kudu files
    sudo yum install kudu-master                  # Kudu master init.d service script and default configuration
    sudo yum install kudu-tserver                 # Kudu tablet server init.d service script and default configuration
    sudo yum install kudu-client0                 # Kudu C++ client shared library
    sudo yum install kudu-client-devel            # Kudu C++ client SDK
    ```

3.  要手动安装 **Kudu RPM** ，首先下载它们，然后使用命令 **sudo rpm -ivh &lt;RPM安装&gt;** 来安装。

4.  注意：**kudu-master** 和 **kudu-tserver** 软件包仅在分别有 **master** 或 **tserver** 的主机上需要 ( 如果使用 **Cloudera Manager** 则完全不必要 )。每个提供配置文件和一个 **init.d** 脚本来管理相应的 **Kudu** 进程。一旦安装， **Kudu** 进程将在主机启动并关闭时自动启动和停止。

### 安装在 SLES 主机上

1.  下载并配置您的操作系统的 **Kudu** 存储库，或使用 **Kudu Package Locations** 的相应链接手动下载各个 **RPM** 。
2.  如果使用 **Zypper** 存储库，请在将 **cloudera-kudu.repo** 文件保存到 ** /etc/zypper/repos.d** 之后，使用以下命令在每个主机上安装 **Kudu** 软件包。

    ```
    sudo zypper install kudu                      # Base Kudu files
    sudo zypper install kudu-master               # Kudu master init.d service script and default configuration
    sudo zypper install kudu-tserver              # Kudu tablet server init.d service script and default configuration
    sudo zypper install kudu-client0              # Kudu C++ client shared library
    sudo zypper install kudu-client-devel         # Kudu C++ client SDK
    ```

3.  要手动安装 **Kudu RPM** ，首先下载它们，然后使用命令 **sudo rpm -ivh &lt;RPM安装&gt;** 来安装。

4.  注意：**kudu-master** 和 **kudu-tserver** 软件包仅在分别有 **master** 或 **tserver** 的主机上需要 ( 如果使用 **Cloudera Manager** 则完全不必要 )。每个提供配置文件和一个 **init.d** 脚本来管理相应的 **Kudu** 进程。一旦安装， **Kudu** 进程将在主机启动并关闭时自动启动和停止。

### 安装在 Ubuntu 或 Debian 主机上

1.  如果使用 **ubuntu** 或 **debian** 存储库，请在将 **cloudera.list** 文件保存到 **/etc/apt/sources.list.d/** 之后，使用以下命令在每个主机上安装 **Kudu** 软件包。

    ```
    sudo apt-get install kudu                     # Base Kudu files
    sudo apt-get install kudu-master              # Service scripts for managing kudu-master
    sudo apt-get install kudu-tserver             # Service scripts for managing kudu-tserver
    sudo apt-get install libkuduclient0           # Kudu C++ client shared library
    sudo apt-get install libkuduclient-dev        # Kudu C++ client SDK
    ```

2.  要手动安装 **Kudu RPM** ，首先下载它们，然后使用命令 **sudo rpm -ivh &lt;RPM安装&gt;** 来安装。

3.  注意：**kudu-master** 和 **kudu-tserver** 软件包仅在分别有 **master** 或 **tserver** 的主机上需要 ( 如果使用 **Cloudera Manager** 则完全不必要 ) 。每个提供配置文件和一个 **init.d** 脚本来管理相应的 **Kudu** 进程。一旦安装， **Kudu** 进程将在主机启动并关闭时自动启动和停止。

### 验证安装

1.  使用以下方法之一验证服务是否正在运行：
    ***** 在服务器上检查 **ps** 命令的输出，以验证 **kudu-master** 或 **kudu-tserver** 进程之一或两者正在运行。
    ***** 打开 **Master** 或者 **Tablet Server web UI** ，方法是打开 **http://&lt;_host_name_&gt;:8051/ for master** 或者 **http://&lt;_host_name_&gt;:8050/ for tablet servers** 。
2.  如果 **Kudu** 没有运行，请查看 ** '/var/log/kudu'** 中的日志文件，如果有一个以** '.FATAL'** 结尾的文件，那意味着 **Kudu** 无法启动。
    * 如果 **error** 是 **" Error during hole punch test"** ，可能是 [您的操作系统的问题](/pages/viewpage.action?pageId=10813626) 。
    * 如果 **error** 是 **" Couldn’t get the current time "** ，这是 [ntp 的问题](/pages/viewpage.action?pageId=10813626)。
    * 如果这是其他似乎不明显的东西，或者如果您没有运气尝试上述解决方案，您可以在 [用户邮件列表](http://kudu.apache.org/community.html) 中寻求帮助。

### 必需配置

在启动 **Kudu** 服务之前，需要在每个主机上执行其他配置步骤。

1.  这些包在操作系统的备用数据库中创建一个 **kudu-conf** 条目，并且它们运送内置的 **conf.dist** 替代。要调整配置，您可以直接编辑 **/etc/kudu/conf/** 中的文件，或者使用操作系统实用程序创建一个新的选项，确保它是 **/etc/kudu/conf/** 指向的链接，在那里创建自定义配置文件配置的某些部分也配置在 **/etc/default/kudu-master** 和 **/etc/default/kudu-tserver** 文件中。如果创建自定义配置文件，您应该包括或者复制这些配置选项。
    查看配置，包括默认的 **WAL** 和数据目录位置，并根据您的要求进行调整。
2.  使用以下命令启动 **Kudu** 服务：

    ```
    $ sudo service kudu-master start
    $ sudo service kudu-tserver start
    ```

3.  要停止 **Kudu** 服务，请使用以下命令：

    ```
    $ sudo service kudu-master stop
    $ sudo service kudu-tserver stop
    ```

4.  将 **Kudu** 服务配置为在服务器启动时自动启动，将其添加到默认运行级别：

    ```
    $ sudo chkconfig kudu-master on                # RHEL / CentOS / SLES
    $ sudo chkconfig kudu-tserver on               # RHEL / CentOS / SLES

    $ sudo update-rc.d kudu-master defaults        # Debian / Ubuntu
    $ sudo update-rc.d kudu-tserver defaults       # Debian / Ubuntu
    ```

5.  有关 **Kudu** 服务的其他配置，请参阅 [配置 **Kudu**](/pages/viewpage.action?pageId=10813616) 。

## 从源代码构建

如果使用包裹或者软件包安装 **Kudu** 不能提供所需的灵活性，则可以从源代码构建 **Kudu** 。您可以在任何支持的操作系统上从源代码构建。

注意

已知的构建问题

*   不可能在 **MicroSoft Windows** 上构建 **Kudu** 。
*   需要一个 **C+ 11** 编译器 ( **GCC 4.8** ) 。

### RHEL 或者 CentOS

需要 **RHEL** 或者 **CentOS 6.6** 或更高版本从源代码构建 **Kudu** 。要建立在 **7.0** 以上的版本上，必须安装** Red Hat Developer Toolset** ( 才能访问支持 **C++ 11** 的编译器 )。

1.  安装必备库( 如果没有安装 )。

    ```
    $ sudo yum install autoconf automake cyrus-sasl-devel cyrus-sasl-gssapi \
      cyrus-sasl-plain gcc gcc-c++ gdb git krb5-server krb5-workstation libtool \
      make openssl-devel patch pkgconfig redhat-lsb-core rsync unzip vim-common which
    ```

2.  如果建立在 **7.0** 以上的 **RHEL** 或 **CentOS** 上，请安装 **Red Hat Developer Toolset**

    ```
    $ DTLS_RPM=rhscl-devtoolset-3-epel-6-x86_64-1-2.noarch.rpm
    $ DTLS_RPM_URL=https://www.softwarecollections.org/repos/rhscl/devtoolset-3/epel-6-x86_64/noarch/${DTLS_RPM}
    $ wget ${DTLS_RPM_URL} -O ${DTLS_RPM}
    $ sudo yum install -y scl-utils ${DTLS_RPM}
    $ sudo yum install -y devtoolset-3-toolchain
    ```

3.  可选：如果您计划构建文档，请安装其他包，包括 **ruby**。

    ```
    $ sudo yum install doxygen gem graphviz ruby-devel zlib-devel
    ```

    注意

    如果建立在 **7.0** 以上的 **RHEL** 或者 **CentOS** 上，则可能需要使用 **rubygems** 替换 **gem** 包

4.  克隆 **Git** 存储库并切换到新的 **kudu** 目录

    ```
    $ git clone https://github.com/apache/kudu
    $ cd kudu
    ```

5.  使用 **build-if-necessary.sh** 脚本构建任何缺少的第三方要求。不使用 **devtoolset** 会导致主机编译器似乎需要 **libatomic** ，但找不到它。

    ```
    $ build-support/enable_devtoolset.sh thirdparty/build-if-necessary.sh
    ```

6.  使用上一步中安装的实用程序构建 **Kudu** 。为中间输出选择一个构建目录，除了 **Kudu** 目录本身之外，它可以在文件系统中的任何位置。请注意，**devtoolset** 仍然必须指定，否则您会得到 **cc1plus**：错误：**unrecognized command line option "-std=c++11"** 。

    ```
    mkdir -p build/release
    cd build/release
    ../../build-support/enable_devtoolset.sh \
      ../../thirdparty/installed/common/bin/cmake \
      -DCMAKE_BUILD_TYPE=release \
      ../..
    make -j4
    ```

7.  可选：安装 **Kudu** 二进制文件，库和标题。如果不通过 **DESTDIR** 环境变量指定安装目录，则默认为 **/usr/local/** 。

    ```
    sudo make DESTDIR=/opt/kudu install
    ```

8.  可选：构建文档。注意：此命令构建不适合上传到 **Kudu** 网站的本地文档。

    ```
    $ make docs
    ```

**示例 1 . RHEL / CentOS 构建脚本**

此脚本概述了在新安装的 **RHEL** 或 **CentOS** 主机上构建 **Kudu** 的过程，可用作自动部署场景的基础。它跳过上面标记为可选步骤的步骤。

```
#!/bin/bash

sudo yum -y install autoconf automake cyrus-sasl-devel cyrus-sasl-gssapi \
  cyrus-sasl-plain gcc gcc-c++ gdb git krb5-server krb5-workstation libtool \
  make openssl-devel patch pkgconfig redhat-lsb-core rsync unzip vim-common which
DTLS_RPM=rhscl-devtoolset-3-epel-6-x86_64-1-2.noarch.rpm
DTLS_RPM_URL=https://www.softwarecollections.org/repos/rhscl/devtoolset-3/epel-6-x86_64/noarch/${DTLS_RPM}
wget ${DTLS_RPM_URL} -O ${DTLS_RPM}
sudo yum install -y scl-utils ${DTLS_RPM}
sudo yum install -y devtoolset-3-toolchain
git clone https://github.com/apache/kudu
cd kudu
build-support/enable_devtoolset.sh thirdparty/build-if-necessary.sh
mkdir -p build/release
cd build/release
../../build-support/enable_devtoolset.sh \
  ../../thirdparty/installed/common/bin/cmake \
  -DCMAKE_BUILD_TYPE=release \
  ../..
make -j4
```

### Ubuntu 或者 Debian

1.  安装必备库 ( 如果它们没有安装 )

    ```
    $ sudo apt-get install autoconf automake curl g++ gcc gdb git \
      krb5-admin-server krb5-kdc krb5-user libkrb5-dev libsasl2-dev libsasl2-modules \
      libsasl2-modules-gssapi-mit libssl-dev libtool lsb-release make ntp openssl \
      patch pkg-config python rsync unzip vim-common
    ```

2.  可选：如果您计划构建文档，请安装其他包，包括 **ruby** 。

    ```
    $ sudo apt-get install doxygen gem graphviz ruby-dev xsltproc zlib1g-dev
    ```

3.  克隆 **Git** 存储库并切换到新的 **kudu** 目录。

    ```
    $ git clone https://github.com/apache/kudu
    $ cd kudu
    ```

4.  使用 **build-if-necessary.sh** 脚本构建任何缺少的第三方要求。

    ```
    $ thirdparty/build-if-necessary.sh
    ```

5.  使用上一步中安装的实用程序构建 **Kudu** 。为中间输出选择一个构建目录，除了 **kudu** 目录本身之外，它可以在文件系统中的任何位置。

    ```
    mkdir -p build/release
    cd build/release
    ../../thirdparty/installed/common/bin/cmake -DCMAKE_BUILD_TYPE=release ../..
    make -j4
    ```

6.  可选：安装 **Kudu** 二进制文件，库和标题。如果不通过 **DESTDIR** 环境变量指定安装目录，则默认为 **/usr/local/** 。

    ```
    sudo make DESTDIR=/opt/kudu install
    ```

7.  可选：构建文档。注意：此命令构建不适合上传到 **Kudu** 网站的本地文档。

    ```
    $ make docs
    ```

**示例 2 . Ubuntu 或者 Debian 构建脚本**

该脚本概述了在 **Ubuntu** 上构建 **Kudu** 的过程，可以作为自动部署场景的基础。它跳过上面标记为可选步骤的步骤。

```
#!/bin/bash

sudo apt-get -y install autoconf automake curl g++ gcc gdb git \
  krb5-admin-server krb5-kdc krb5-user libkrb5-dev libsasl2-dev libsasl2-modules \
  libsasl2-modules-gssapi-mit libssl-dev libtool lsb-release make ntp openssl \
  patch pkg-config python rsync unzip vim-common
git clone https://github.com/apache/kudu
cd kudu
thirdparty/build-if-necessary.sh
mkdir -p build/release
cd build/release
../../thirdparty/installed/common/bin/cmake \
  -DCMAKE_BUILD_TYPE=release \
  ../..
make -j4
```

### SUSE Linux Enterprise Server

1.  安装必备库（如果没有安装）。

    ```
    $ sudo zypper install autoconf automake curl cyrus-sasl-devel \
      cyrus-sasl-gssapi gcc gcc-c++ gdb git krb5-devel libtool lsb-release make ntp \
      openssl-devel patch pkg-config python rsync unzip vim
    ```

2.  克隆 **Git** 存储库并切换到新的 **kudu** 目录。

    ```
    $ git clone https://github.com/apache/kudu
    $ cd kudu
    ```

3.  使用 **build-if-necessary.sh** 脚本构建任何缺少的第三方要求。

    ```
    $ thirdparty/build-if-necessary.sh
    ```

4.  使用上一步中安装的实用程序构建 **Kudu** 。为中间输出选择一个构建目录，除了 **kudu** 目录本身之外，它可以在文件系统中的任何位置。

    ```
    mkdir -p build/release
    cd build/release
    ../../thirdparty/installed/common/bin/cmake \
      -DCMAKE_BUILD_TYPE=release \
      ../..
    make -j4
    ```

5.  可选：安装 **Kudu** 二进制文件，库和标题。如果不通过 **DESTDIR** 环境变量指定安装目录，则默认为 **/usr/local/** 。

    ```
    sudo make DESTDIR=/opt/kudu install
    ```

**示例 3 .SLES 构建脚本**

此脚本概述了在 **SLES** 上构建 **Kudu** 的过程，并可用作自动部署场景的基础。它跳过上面标记为可选步骤的步骤。

```
#!/bin/bash

sudo zypper install -y autoconf automake curl cyrus-sasl-devel \
  cyrus-sasl-gssapi gcc gcc-c++ gdb git krb5-devel libtool lsb-release make ntp \
  openssl-devel patch pkg-config python rsync unzip vim
git clone https://github.com/apache/kudu
cd kudu
thirdparty/build-if-necessary.sh
mkdir -p build/release
cd build/release
../../thirdparty/installed/common/bin/cmake \
  -DCMAKE_BUILD_TYPE=release \
  ../..
make -j4
```

### macOS

**Xcode** 包是编译 **Kudu** 所必需的。下面的一些说明使用 [**Homebrew**](http://brew.sh/) 来安装依赖关系，但手动依赖安装是可能的。

注意

**macOS** 已知问题

**Kudu** 对 **macOS** 的支持是实验性的，只能用于开发。有关详细信息，请参阅 [**macOS** 限制和已知问题](https://issues.cloudera.org/browse/KUDU-1219)。

1.  安装必备库（如果没有安装）。

    ```
    $ brew tap homebrew/dupes
    $ brew install autoconf automake cmake git krb5 libtool openssl pkg-config pstree
    ```

2.  可选：如果您计划构建文档，请安装其他包，包括 **ruby** 。

    ```
    $ brew install doxygen graphviz ruby
    $ brew install gnu-sed --with-default-names #The macOS default sed handles the -i parameter differently
    ```

3.  克隆 **Git** 存储库并切换到新的 **kudu** 目录。

    ```
    $ git clone https://github.com/apache/kudu
    $ cd kudu
    ```

4.  使用 **build-if-necessary.sh** 脚本构建任何缺少的第三方要求。

    ```
    $ thirdparty/build-if-necessary.sh
    ```

*   *   如果不同版本的依赖关系在调用 **thirdParty / build-if-necessary.sh** 时安装并使用，则可能会遇到类似于以下内容的输出：

        ```
        ./configure: line 16299: error near unexpected token `newline'
        ./configure: line 16299: `  PKG_CHECK_MODULES('
        ```

        第三方构建可能被缓存，并可能反映不正确版本的依赖关系。确保您具有步骤1中列出的正确依赖项，清理工作区，然后尝试重新构建。

        ```
        $ git clean -fdx
        $ thirdparty/build-if-necessary.sh
        ```

    *   自制安装和系统升级的一些组合可能会导致不同种类的错误：

        ```
        libtool: Version mismatch error.  This is libtool 2.4.6, but the
        libtool: definition of this LT_INIT comes from libtool 2.4.2.
        libtool: You should recreate aclocal.m4 with macros from libtool 2.4.6
        libtool: and run autoconf again.
        ```

        如 [本线程](https://github.com/Homebrew/legacy-homebrew/issues/43874) 所述，可能的修复是卸载并重新安装 **libtool**：

        ```
        $ brew uninstall libtool && brew install libtool
        ```

5\. 构建 **Kudu** 。为中间输出选择一个构建目录，除了 **kudu** 目录本身之外，它可以在文件系统中的任何位置。

```
mkdir -p build/release
cd build/release
../../thirdparty/installed/common/bin/cmake \
  -DCMAKE_BUILD_TYPE=release \
  -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl \
  ../..
make -j4
```

**示例 4\. macOS 构建脚本**

此脚本概述了在 **MacOS** 上构建 **Kudu** 的过程，可用作自动部署场景的基础。它假定安装了 **Xcode** 和 **Homebrew** 。

```
#!/bin/bash

brew tap homebrew/dupes
brew install autoconf automake cmake git krb5 libtool openssl pkg-config pstree
git clone https://github.com/apache/kudu
cd kudu
thirdparty/build-if-necessary.sh
mkdir -p build/release
cd build/release
../../thirdparty/installed/common/bin/cmake \
  -DCMAKE_BUILD_TYPE=release \
  -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl \
  ../..
make -j4
```

## 安装 C++ 客户端库

如果您需要访问 **Kudu** 客户端库进行开发，请为您的平台安装 **kudu-client** 和 **kudu-client-devel** 软件包。请参阅 [使用软件包安装](/pages/viewpage.action?pageId=10813613) 。

注意

仅针对客户端库和头（ **kudu_client.so** 和 **client.h** ）构建。其他图书馆和标题是 **Kudu** 的内部，没有稳定的保证。

## 构建 **Java** 客户端

### 要求

*   **JDK 7**
*   **Apache Maven 3.x**

要构建 **Java** 客户端，请克隆 **Kudu Git** 存储库，更改为 **java** 目录，并发出以下命令：

```
$ mvn install -DskipTests
```

有关构建 **Java API** 以及 **Eclipse** 集成的更多信息，请参阅 **java/README.md** 。

## 查看 API 文档

### C++ API 文档

您可以在线查看 [**C ++**客户端**API**文档](http://kudu.apache.org/cpp-client-api/index.html) 。或者，在 [从源代码构建 **Kudu**](/pages/viewpage.action?pageId=10813613) 后，您还可以另外构建 **doxygen** 目标（例如，如果使用 **make** ，则运行 **make doxygen** ），并通过在您最喜欢的 **Web** 中打开 **docs/doxygen/client_api/html/index.html** 文件来使用本地生成的 **API** 文档浏览器。

注意

为了构建 **doxygen** 目标，有必要在您的构建机器上安装带有 **Dot（graphviz）** 支持的 **doxygen** 。如果您从源代码构建 **Kudu** 后安装了 **doxygen** ，则需要再次运行 **cmake** 以获取 **doxygen** 位置并生成适当的目标。

### Java API 文档

您可以在线查看 [**Java API** 文档](http://kudu.apache.org/apidocs/index.html)。或者，在 [构建 **Java** 客户端](/pages/viewpage.action?pageId=10813613) 之后，**Java API** 文档可以在 **java/kudu-client/target/apidocs/index.html** 中找到。

## 从以前版本的 Kudu 升级

升级之前，您应该阅读要安装的 **Kudu** 版本的发行说明。 密切关注不兼容性，升级和降级在那里记录的笔记。

注意

目前不支持滚动升级。 升级软件之前，请关闭所有的 **Kudu** 服务。

### 升级程序

1.  停止 **Kudu  master** 和 **tablet server** 服务：

    ```
    $ sudo service kudu-master stop
    $ sudo service kudu-tserver stop
    ```

2.  升级软件包：
    * 在 **RHEL** 或者 **CentOS** 主机上：

    ```
    sudo yum clean all
    sudo yum upgrade kudu
    ```

    * 在 **SLES** 主机上：

    ```
    sudo zypper clean --all
    sudo zypper update kudu
    ```

    * 在 **Ubuntu** 或者 **Debian** 主机上：

    ```
    sudo apt-get update
    sudo apt-get install kudu
    ```

3.  启动 **Kudu master** 和**tablet server** 服务：

    ```
    $ sudo service kudu-master start
    $ sudo service kudu-tserver start
    ```

## 下一步

*   [配置 **Kudu**](/pages/viewpage.action?pageId=10813616)
*   [管理 **Kudu**](/pages/viewpage.action?pageId=10813623)