CDH6官方文档中文系列(3)----Cloudera安装指南(安装CM和CDH)

Cloudera安装指南

最近在学习cdh6的官方文档,网上也比较难找到中文的文档。
其实官方英文文档的阅读难度其实并不是很高,所以在这里在学习官方文档的过程中,把它翻译成中文,在翻译的过程中加深学习了解,并分享出来和大家一起学习。
中文内容是本人的渣渣英文水平结合有道词典,谷歌翻译的结果,文中部分词语可能翻译的并不准确,希望大家多多提出意见,共同进步。
cdh6的官方中文文档系列长期更新,最后目标整理成gitbook,同大家交流学习。
最后,如果你觉得本文对你有用,希望点个赞给作者一点鼓励哈。

与其感慨路难行不如马上上路,诸位道友,共同学习,他日共同飞升仙界!-------天南第一剑修

文章目录

  • Cloudera安装指南
    • 官方文档
    • 安装CM和CDH
      • 步骤1:为Cloudera管理器配置存储库
        • RHEL兼容
        • SLES
        • Ubuntu
      • 步骤2:安装Java开发工具包
        • 需求
        • 使用Cloudera管理器安装Oracle JDK
        • 手动安装Oracle JDK
        • 手动安装OpenJDK
      • 步骤3:安装Cloudera Manager服务器
        • 安装Cloudera管理器包
        • 使Auto-TLS(推荐)
        • 安装和配置数据库
      • 步骤4:安装和配置数据库
        • 需要的数据库
        • 安装和配置数据库
          • 为Cloudera软件安装和配置MariaDB
            • 安装MariaDB服务器
            • 配置并启动MariaDB服务器
            • 为MariaDB安装MySQL JDBC驱动程序
            • 为Cloudera软件创建数据库
            • 设置Cloudera管理器数据库
          • 为Cloudera软件安装和配置MySQL
            • 安装MySQL服务器
            • 配置并启动MySQL服务器
            • 装MySQL JDBC驱动程序
            • 为Cloudera软件创建数据库
            • 设置Cloudera管理器数据库
          • 为Cloudera软件安装和配置PostgreSQL
            • 安装PostgreSQL服务器
            • 安装psycopg2 Python包
            • 配置并启动PostgreSQL服务器
            • 为Cloudera软件创建数据库
            • 设置Cloudera管理器数据库
          • 为Cloudera软件安装和配置Oracle数据库
            • 收集Oracle数据库信息
            • 配置Oracle服务器
            • 安装Oracle JDBC连接器
            • 为Cloudera软件创建数据库
            • 配置Hue服务器在Oracle中存储数据(客户包)
            • 安装全新的CDH
            • 已安装了CDH
            • 配置Hue服务器在Oracle中存储数据(客户端包)
            • 全新安装CDH
            • 已经安装CDH
            • 为Cloudera管理器配置Oracle数据库
      • 步骤5:设置Cloudera管理器数据库
        • scm_prepare_database.sh的语法
        • 准备Cloudera管理器服务器数据库
          • 示例1:在MySQL或MariaDB与Cloudera管理器服务器共存时运行脚本
          • 示例2:在另一台主机上安装MySQL或MariaDB时运行脚本
          • 示例3:运行脚本配置Oracle
        • 安装CDH
      • 步骤6:安装CDH和其他软件
        • 欢迎
        • 接受许可协议
        • 选择版本
        • 欢迎(添加集群-安装)
        • 集群基础知识
        • 设置Auto-TLS
        • 指定主机
        • 选择存储库
        • 接受JDK许可
        • 输入登录凭证
        • 安装代理
        • 安装包裹
        • 检查集群
      • 步骤7:使用向导设置集群
        • 选择服务
          • Essentials
          • Data Engineering
          • Data Warehouse
          • Operational Database
          • All Services (Cloudera Enterprise Data Hub)
        • 分配角色
        • 设置数据库
        • 审查更改
        • 命令细节
        • 概要

官方文档

本指南提供了在生产环境中安装Cloudera软件(包括Cloudera Manager、CDH和其他托管服务)的指导。

对于非生产环境(例如测试和概念验证用例),请参阅概念验证安装指南,了解简化的(但有限的)安装过程。

本指南包括以下部分:

  • 安装前
  • 安装CM和CDH
  • 安装Navigator Data Management
  • 安装Navigator Encryption
  • 安装后
  • 解决安装问题
  • 卸载Cloudera软件

安装CM和CDH

建议在生产环境中安装Cloudera Manager和CDH。对于非生产“简单安装”,请参阅安装概念验证集群。

在您开始安装之前,请确保您在安装之前检查了要求和其他注意事项。

安装过程中的一般步骤如下:

  • Step 1: Configure a Repository
  • Step 2: Install JDK
  • Step 3: Install Cloudera Manager Server
  • Step 4: Install Databases
  • Step 5: Set up the Cloudera Manager Database
  • Step 6: Install CDH and Other Software
  • Step 7: Set Up a Cluster

步骤1:为Cloudera管理器配置存储库

Cloudera Manager是使用包管理工具安装的,比如yum用于RHEL兼容系统,zypper用于SLES, apt-get用于Ubuntu。这些工具依赖于对存储库的访问来安装软件。Cloudera为CDH和Cloudera管理器的安装文件维护可访问互联网的存储库。您还可以为不能访问Internet的主机创建自己的内部存储库。

有关为Cloudera管理器创建内部存储库的更多信息,请配置本地包存储库。

使用Cloudera存储库:

RHEL兼容

  1. 下载cloudera-manager.repo将操作系统版本的repo文件保存到Cloudera管理器服务器主机上的/etc/yum. repos.d目录。

    您可以在Cloudera Manager 6版本的下载信息的Repo File列中找到URL,并下载您想安装的Cloudera Manager版本的信息表。

例如:

sudo wget <repo_file_url> -P /etc/yum.repos.d/

​ 2.导入存储库签名GPG密钥

  • RHEL 7 兼容版本:

    sudo rpm --import https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPM-GPG-KEY-cloudera
    
  • RHEL 6 兼容版本:

    sudo rpm --import https://archive.cloudera.com/cm6/6.2.1/redhat6/yum/RPM-GPG-KEY-cloudera
    
  1. 继续第2步:安装Java开发工具包。

SLES

  1. 运行下列指令更新系统包
sudo zypper refresh
  1. 使用zypper addrepo. 添加repo

    您可以在Cloudera Manager 6版本的Repo文件列中找到URL,并下载您想安装的Cloudera Manager版本的信息表。

    例如:

sudo zypper addrepo -f https://archive.cloudera.com/cm6/6.2.1/sles12/yum/cloudera-manager.repo

​ 3.导入库签名GPG密钥:

sudo rpm --import https://archive.cloudera.com/cm6/6.2.1/sles12/yum/RPM-GPG-KEY-cloudera
  1. 继续第2步:安装Java开发工具包。

Ubuntu

  1. 下载 cloudera.list到操作系统版本的文件列表到Cloudera管理器服务器主机上的/etc/apt/sources.list.d/目录。

    您可以在Cloudera Manager 6版本的Repo文件列中找到URL,并下载您想安装的Cloudera Manager版本的信息表。

  2. 导入库签名GPG密钥:

    wget https://archive.cloudera.com/cm6/6.2.1/ubuntu1604/apt/archive.key
    sudo apt-key add archive.key
    
  3. 通过运行下面的命令更新系统包索引

    sudo apt-get update
    
  4. 继续第2步:安装Java开发工具包。

步骤2:安装Java开发工具包

对于JDK,您可以使用Cloudera Manager安装由Cloudera提供的Oracle JDK版本,这是一种与Oracle直接不同的Oracle JDK,或者使用OpenJDK。Cloudera支持的大多数Linux发行版都包含OpenJDK,但是如果需要,下面提供了手动安装说明。

OpenJDK被Cloudera Enterprise 6.1.0及更高版本和Cloudera Enterprise 5.16.0及更高版本支持。

需求

  • DK必须是64位的。不要使用32位JDK。
  • 所安装的JDK必须是Java需求中所记录的受支持版本。
  • 必须在每个集群主机上安装相同版本的JDK。
  • JDK必须安装在/usr/java/ JDK版本上。

重要提示:

Cloudera Enterprise 6支持的rhel兼容和Ubuntu操作系统默认都使用AES-256加密。
要在JDK版本低于1.8u161的版本中支持AES-256位加密,必须在所有集群和Hadoop用户机器上安装Java Cryptography Extension (JCE) Unlimited Strength Policy文件。Cloudera管理器可以自动安装策略文件,也可以手动安装。有关JCE策略文件安装说明,请参阅jce_policy-x.zip文件中包含的README.txt文件。JDK 1.8u161和更高版本默认情况下启用无限强度加密,并且不需要策略文件。
在SLES平台上,不要安装或尝试使用与SLES发行版绑定的IBM Java版本。CDH不能在该版本中正确运行。

使用Cloudera管理器安装Oracle JDK

注:Cloudera, Inc.根据Oracle二进制代码许可协议收购了Oracle JDK软件。根据Oracle二进制代码许可协议补充许可条款D(v)(a)项,JDK软件的使用受Oracle二进制代码许可协议条款的约束。安装JDK软件,即表示您同意遵守这些条款。如果您不希望受这些条款的约束,那么就不要安装Oracle JDK。

完成第1步:为Cloudera Manager配置存储库后,您可以使用包管理器在Cloudera Manager服务器主机上安装Oracle JDK,如下所示:

  • RHEL Compatible

    sudo yum install oracle-j2sdk1.8
    
  • SLES

    sudo zypper install oracle-j2sdk1.8
    
  • Ubuntu

    sudo apt-get install oracle-j2sdk1.8
    

在接下来的步骤中,您可以使用Cloudera Manager在其余的集群主机上安装JDK。继续第3步:安装Cloudera管理器服务器。

手动安装Oracle JDK

racle JDK安装程序既可以用基于rpm的系统的rpm安装,也可以通过.tar.gz文件安装。这些说明是针对.tar.gz文件的。

  1. 从Java SE 8下载中下载64位支持版本之一的Oracle JDK的.tar.gz文件。(这个链接在写作时是正确的,但是可以改变。)

注意:如果您想使用wget之类的实用工具直接下载JDK,您必须通过配置经常更新的头文件来接受Oracle许可。关于如何使用wget下载特定JDK版本,博客文章和Q&A站点是很好的信息来源。

  1. 将JDK解压缩到/usr/java/ jdk-version。例如
tar xvfz /path/to/jdk-8u<update_version>-linux-x64.tar.gz -C /usr/java/
  1. 在所有集群主机上重复此过程。完成后,继续步骤3:安装Cloudera管理器服务器。

手动安装OpenJDK

在安装Cloudera Manager和CDH之前,执行本节中的步骤,在集群中的所有主机上安装OpenJDK。

当你安装Cloudera Enterprise时,Cloudera Manager包含了一个安装Oracle JDK的选项。取消这个选项。

有关Cloudera企业版本支持哪些JDK版本的信息,请参阅受支持的JDK。

必须安装一个受支持的OpenJDK版本。如果您的部署使用的OpenJDK版本低于1.8.0_181,请参阅OpenJDK的TLS协议错误。

注:如果您打算启用自动tls,请注意以下事项:
您可以指定一个PEM文件,其中包含要导入Auto-TLS信任存储库的受信任CA证书。如果您想使用OpenJDK附带的cacerts信任存储中的证书,您必须首先将信任存储转换为PEM格式。但是,OpenJDK附带了一些不能导入自动tls信任存储库的中间证书。在将PEM文件导入自动tls信任存储区之前,必须从PEM文件中删除这些证书。当从一个集群升级到OpenJDK时,这不是必需的

登录到每个主机并运行以下命令:

RHEL

su -c yum install java-1.8.0-openjdk-devel

Ubuntu

sudo apt-get install openjdk-8-jdk

SLES

sudo zypper install java-1_8_0-openjdk-devel

步骤3:安装Cloudera Manager服务器

在此步骤中,您将在Cloudera Manager服务器主机上安装Cloudera Manager包,并可选择启用auto-TLS。

安装Cloudera管理器包

  1. 在Cloudera Manager服务器主机上,键入以下命令来安装Cloudera Manager包。
OS Command
RHEL, CentOS, Oracle Linux sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
SLES sudo zypper install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
Ubuntu sudo apt-get install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
  1. 如果您为Cloudera Manager服务器使用Oracle数据库,请在Cloudera Manager服务器主机上编辑/etc/default/cloudera-scm-server文件。找到以export_CMF_JAVA_OPTS开始的行,并将-Xmx2G选项更改为-Xmx4G

使Auto-TLS(推荐)

**注:**Auto-TLS支持两种选项:

  • 选项1:使用Cloudera管理器生成一个内部证书颁发机构和相应的证书
  • 选项2:使用现有的证书颁发机构和相应的证书

下面的过程演示选项1,允许auto-TLS使用由Cloudera Manager创建和管理的内部证书颁发机构(CA)。要使用受信任的公共CA(选项2),您必须首先获得集群主机的证书。有关更多信息,请参见使用自动TLS为Cloudera管理器和CDH配置TLS加密。

从Cloudera Manager 6.2开始,您可以在现有集群上启用auto-TLS。如果您现在不想启用auto-TLS,请跳过本节并继续步骤4:安装和配置数据库。

Auto-TLS极大地简化了在集群上启用和管理TLS加密的过程。它自动创建一个内部证书颁发机构(CA),并在所有集群主机上部署证书。它还可以自动分发现有的证书,比如那些由公共CA签署的证书。在启用了auto-TLS的集群中添加新的集群主机或服务将自动创建和部署所需的证书。

要使用嵌入式Cloudera Manager CA启用auto-TLS,请运行以下命令:

sudo JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera /opt/cloudera/cm-agent/bin/certmanager setup --configure-services

注意:certmanager工具包含在Cloudera Manager Agent中,但不包含Cloudera Manager Server。如果您出现没有找到certmanager命令的错误,请确保您已经按照上面的文档安装了cloudera-manager-agent包。

使用JDK版本替换jdk1.8.0_181-cloudera。如果您想将文件存储在默认目录以外的目录(/var/lib/cloudera-scm-server/certmanager),添加--location选项如下:

sudo JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera /opt/cloudera/cm-agent/bin/certmanager --location /opt/cloudera/CMCA setup --configure-services

检查/var/log/cloudera-scm-agent/certmanager.log日志文件,确认已经创建了/var/lib/cloudera-scm-server/certmanager/*目录。

就是这样!当您启动Cloudera Manager服务器时,它将启用TLS,您添加到集群中的所有主机以及任何支持的服务都将自动配置并启用TLS。

有关自动TLS的更多信息,请参见使用自动TLS为Cloudera管理器和CDH配置TLS加密。

安装和配置数据库

安装Cloudera Manager服务器包后,继续步骤4:安装和配置数据库。

步骤4:安装和配置数据库

Cloudera Manager使用各种数据库和数据存储来存储有关Cloudera管理器配置的信息,以及系统运行状况或任务进度等信息。

尽管可以在单个环境中部署不同类型的数据库,但这样做可能会产生意想不到的复杂性。Cloudera建议为所有的Cloudera数据库选择一个支持的数据库提供商。

Cloudera建议在不同的主机上安装数据库,而不是安装不同的数据库服务。将数据库与服务分离可以帮助将失败或资源争用的潜在影响隔离开来。它还可以简化拥有专用数据库管理员的组织的管理。

你可以使用你自己的PostgreSQL, MariaDB, MySQL或Oracle数据库作为Cloudera管理服务器和其他使用数据库的服务。
有关规划、管理和备份Cloudera管理器数据存储的信息,请参阅Cloudera管理器的存储空间规划和备份数据库。

需要的数据库

以下组件都需要数据库:Cloudera Manager server,Oozie server,Sqoop server,活动监视器,报告管理器,Hive Metastore server,Hue server,Sentry server,Cloudera Navigator审计 server,和Cloudera Navigator元数据 server。数据库中所包含的数据类型及其相对大小如下:

  • Cloudera Manager Server——包含您配置的服务的所有信息,以及它们的角色分配、所有配置历史、命令、用户和正在运行的进程。这个相对较小的数据库(< 100 MB)是***最需要备份***的。

重要提示:当重启进程时,每个服务的配置将使用保存在Cloudera Manager数据库中的信息重新部署。如果此信息不可用,则集群无法正确启动或运行。您必须计划和维护对Cloudera Manager数据库的定期备份,以便在数据库丢失时恢复集群。有关更多信息,请参见备份数据库。

  • Oozie Server——包含Oozie工作流、协调器和捆绑数据。数据量可以增长得很大

  • Sqoop Server——包含连接器、驱动程序、链接和作业等实体。相对较小

  • Activity Monitor-包含关于过去活动的信息。在大型集群中,这个数据库可以增长到很大。只有在部署MapReduce服务时,才需要配置活动监视器数据库。

  • Reports Manager-随时间跟踪磁盘利用率和处理活动。中型大小

  • Hive Metastore Server-包含Hive metadata.。相对较小

  • Hue Server-包含用户帐户信息,工作提交,和Hive 查询。相对较小

  • Sentry Server-包含授权元数据。相对较小

  • Cloudera Navigator审计服务器-包含审计信息。在大型集群中,这个数据库可以增长到很大

  • Cloudera Navigator元数据服务器——包含授权、策略和审计报告元数据。相对较小

主机监视器和服务监视器服务使用本地基于磁盘的数据存储。有关更多信息,请参见监视数据的数据存储。

数据库的JDBC连接器必须安装在您分配活动监视器和报表管理器角色的主机上。

安装和配置数据库

有关为Cloudera Manager、CDH和其他托管服务安装和配置数据库的说明,请参阅您想使用的数据库类型说明:

为Cloudera软件安装和配置MariaDB

要使用MariaDB数据库,请遵循以下步骤。有关MariaDB兼容版本的信息,请参阅数据库需求。

安装MariaDB服务器

注意:

  • 如果已经设置了MariaDB数据库,可以跳到配置和启动MariaDB服务器一节,以验证MariaDB配置是否满足Cloudera Manager的要求。
  • 重要的是,datadir目录(默认情况下为/var/lib/mysql)位于有足够空闲空间的分区上。有关更多信息,请参见Cloudera管理器的存储空间规划。
  1. 安装MariaDB服务器
OS Command
RHEL 兼容性 sudo yum install mariadb-server
SLES sudo zypper install mariadb-server
一些SLES系统在使用zypper安装命令时遇到错误。有关解决此问题的更多信息,请参见Novell知识库主题“运行chkconfig的错误”。
Ubuntu sudo apt-get install mariadb-server

如果这些命令不起作用,您可能需要添加存储库或使用不同的yum install命令,特别是在RHEL 6兼容的操作系统上。如需更多帮助,请参阅MariaDB网站上的以下主题:

  • RHEL兼容:使用yum安装MariaDB
  • SLES:MariaDB包存储库的设置和使用
  • Ubuntu:安装MariaDB .deb文件
配置并启动MariaDB服务器

注意:如果要对现有数据库进行更改,请确保在继续之前停止使用该数据库的任何服务。

  1. 如果它正在运行,停止MariaDB服务器:
  • RHEL 7 compatible:

    sudo systemctl stop mariadb
    
  • RHEL 6 compatible, Ubuntu, SLES:

    sudo service mariadb stop
    
  1. 如果存在,将旧的InnoDB日志文件**/var/lib/mysql/ib_logfile0和/var/lib/mysql/ib_logfile1/var/lib/mysql/**移到备份位置。

  2. 确定选项文件my.cnf(默认为/etc/my.cnf)的位置。

  3. 更新my.cnf使其符合以下要求:

  • 要防止死锁,请将隔离级别设置为READ-COMMITTED

  • 大多数发行版中的MariaDB安装中的默认设置使用保守的缓冲区大小和内存使用。Cloudera管理服务角色需要高写吞吐量,因为他们可能会在数据库中插入许多记录。Cloudera建议将innodb_flush_method属性设置为O_DIRECT

  • 根据集群的大小设置max_connections属性:

    • ​ 少于50台主机——您可以在同一台主机上存储多个数据库(例如,活动监视器和服务监视器)。如果你这样做,你应该:

      • 将每个数据库放在自己的存储卷上。
      • 每个数据库允许100个最大连接,然后添加50个额外连接。例如,对于两个数据库,将最大连接设置为250个。如果在一台主机上存储5个数据库(用于Cloudera管理器服务器、活动监视器、报告管理器、Cloudera导航器和Hive metastore的数据库),将最大连接设置为550个。
    • 超过50台主机——不要在同一台主机上存储超过一个数据库。为每个数据库/主机对使用单独的主机。主机不需要专门为数据库保留,但是每个数据库应该位于单独的主机上。

  • 如果集群有超过1000台主机,那么将max_allowed_packet属性设置为16M。如果没有此设置,集群可能会由于以下异常而无法启动:com.mysql.jdbc.PacketTooBigException

  • 尽管安装Cloudera Manager并不需要二进制日志记录,但它提供了MariaDB复制或数据库恢复后的时间点增量恢复等优点。所提供的示例配置启用了二进制日志。有关更多信息,请参见二进制日志。

下面是一个Cloudera推荐设置的选项文件:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links = 0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

key_buffer = 16M
key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1

max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M

#log_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log

#In later versions of MariaDB, if you enable the binary log and do not set
#a server_id, MariaDB will not start. The server_id must be unique within
#the replicating group.
server_id=1

binlog_format = mixed

read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M

# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
  1. 如果在安装了MariaDB的主机上运行了AppArmor,您可能需要配置AppArmor以允许MariaDB写入二进制文件。
  2. 确保MariaDB服务器在开机自启:
OS Command
RHEL 7 compatible sudo systemctl enable mariadb
RHEL 6 compatible sudo chkconfig mariadb on
SLES sudo chkconfig --add mariadb
Ubuntu sudo chkconfig mariadb on
**注意:**chkconfig可能在最近的Ubuntu版本中不可用。您可能需要使用Upstart来配置MariaDB,使其在系统引导时自动启动。更多信息,请参见Ubuntu文档或Upstart Cookbook。
  1. 启动MariaDB服务器
  • RHEL 7 compatible:

    sudo systemctl start mariadb
    
  • RHEL 6 compatible, Ubuntu, SLES:

    sudo service mariadb start
    
  1. 运行/usr/bin/mysql_secure_install设置MariaDB root密码和其他与安全相关的设置。在新的安装中,根密码为空。当提示输入root密码时,请按Enter键。对于其余的提示,输入下面粗体列出的响应:
sudo /usr/bin/mysql_secure_installation
[...]
Enter current password for root (enter for none):
OK, successfully used password, moving on...
[...]
Set root password? [Y/n] Y
New password:
Re-enter new password:
[...]
Remove anonymous users? [Y/n] Y
[...]
Disallow root login remotely? [Y/n] N
[...]
Remove test database and access to it [Y/n] Y
[...]
Reload privilege tables now? [Y/n] Y
[...]
All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
为MariaDB安装MySQL JDBC驱动程序

不支持MariaDB JDBC驱动程序。按照本节中的步骤安装和使用MySQL JDBC驱动程序。

在Cloudera Manager服务器主机上安装JDBC驱动程序,以及其他运行需要数据库访问的服务的主机。有关使用数据库的Cloudera软件的更多信息,请参见Required数据库。

Cloudera建议在有限数量的主机上合并所有需要数据库的角色,并在这些主机上安装驱动程序。建议在同一台主机上定位所有这些角色,但不是必需的。确保在每个运行访问数据库的角色的主机上安装JDBC驱动程序。

注意:Cloudera建议只使用5.1版本的JDBC驱动程序。

OS Command
RHEL **重要提示:**在安装JDK之前,使用yum install命令安装MySQL驱动程序包就可以安装OpenJDK,然后使用Linux alternatives命令将系统JDK设置为OpenJDK。如果您打算使用Oracle JDK,请确保在使用yum install安装MySQL驱动程序之前已经安装了它。如果想使用OpenJDK,可以使用yum安装驱动程序。或者,使用以下步骤手动安装驱动程序:
1. 从http://www.mysql.com/downloads/connector/j/5.1.html (.tar.gz格式)下载MySQL JDBC驱动程序。在撰写本文时,您可以使用wget下载5.1.46版本如下:
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
2. 从下载的文件中提取JDBC驱动程序JAR文件。例如:
tar zxvf mysql-connector-java-5.1.46.tar.gz
3. 将重命名的JDBC驱动程序复制到/usr/share/java/。如果目标目录不存在,则创建它。例如:
sudo mkdir -p /usr/share/java/
cd mysql-connector-java-5.1.46
sudo cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
SLES sudo zypper install mysql-connector-java
Ubuntu or Debian sudo apt-get install libmysql-java
为Cloudera软件创建数据库

为需要数据库的组件创建数据库和服务帐户:

  • Cloudera Manager服务器

  • Cloudera管理服务角色:

    • 活动监视器(如果在CDH 5集群中使用MapReduce服务)

    • Reports Manager

  • hue

  • 每个hive metastore

  • Sentry Server

  • Cloudera Navigator审计服务器

  • Cloudera导航元数据服务器

  • Oozie

  1. 作root或其他具有创建数据库和授予权限的权限的用户登录
mysql -u root -p passwd
  1. 使用以下命令为集群中部署的每个服务创建数据库。可以为、和参数使用任何值。下面是Cloudera软件数据库表,列出了Cloudera管理器配置设置中提供的默认名称,但您不需要使用它们。配置所有数据库使用utf8字符集。

    在运行下面描述的CREATE database语句时,包括每个数据库的字符集。

CREATE DATABASE <database> DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
GRANT ALL ON <database>.* TO ''@'%' IDENTIFIED BY '<password>';
Query OK, 0 rows affected (0.00 sec)

Cloudera软件需要的数据库

Service Database User
Cloudera Manager Server scm scm
Activity Monitor amon amon
Reports Manager rman rman
Hue hue hue
Hive Metastore Server metastore hive
Sentry Server sentry sentry
Cloudera Navigator Audit Server nav nav
Cloudera Navigator Metadata Server navms navms
Oozie oozie oozie
  1. 确认您已经创建了所有数据库:
SHOW DATABASES;

You can also confirm the privilege grants for a given user by running:

SHOW GRANTS FOR ''@'%';
设置Cloudera管理器数据库

完成上述安装和配置用于Cloudera软件的MariaDB数据库的说明后,继续第5步:设置Cloudera Manager数据库,为Cloudera Manager配置数据库。

为Cloudera软件安装和配置MySQL

要使用MySQL数据库,请遵循以下步骤。有关MySQL数据库兼容版本的信息,请参阅数据库要求。

安装MySQL服务器

注意:

  • 如果已经设置了MySQL数据库,可以跳到配置和启动MySQL服务器一节,以验证MySQL配置是否满足Cloudera Manager的要求。
  • 对于MySQL 5.6和5.7,必须安装MySQL-shared-compat或MySQL-shared包。这是安装Cloudera Manager代理包所必需的。
  • 重要的是,datadir目录(默认情况下为/var/lib/mysql)位于有足够空闲空间的分区上。
  • 如果在MySQL中启用了基于gtid的复制,Cloudera Manager安装将失败。
  • 对于Cloudera导航器,确保MySQL服务器系统变量explicit_defaults_for_timestamp在安装和升级期间被禁用(设置为“0”)。(MySQL 5.6.6及更高版本)
  1. 安装MySQL数据库
OS Command
RHEL RHEL不再包含MySQL。您必须从MySQL站点下载存储库并直接安装它。可以使用以下命令安装MySQL。更多信息,请访问MySQL网站。
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
sudo yum update
sudo yum install mysql-server
sudo systemctl start mysqld
SLES sudo zypper install mysql libmysqlclient_r17
注意:一些SLES系统在使用前面的zypper安装命令时遇到错误。有关解决此问题的更多信息,请参见Novell知识库主题“运行chkconfig的错误”。
Ubuntu sudo apt-get install mysql-server
配置并启动MySQL服务器

注意:如果要对现有数据库进行更改,请确保在继续之前停止使用该数据库的任何服务。

  1. 停止正在运行的MySQL服务器
OS Command
RHEL 7 Compatible sudo systemctl stop mysqld
RHEL 6 Compatible sudo service mysqld stop
SLES, Ubuntu sudo service mysql stop
  1. 将旧的InnoDB日志文件/var/lib/mysql/ib_logfile0/var/lib/mysql/ib_logfile1/var/lib/mysql/移到备份位置。

  2. 确定选项文件my.cnf(默认为/etc/my.cnf)的位置。

  3. 更新my.cnf,使其符合以下要求:

    • 要防止死锁,请将隔离级别设置为READ-COMMITTED。

    • 配置InnoDB引擎。如果表配置了MyISAM引擎,Cloudera Manager将无法启动。(通常,如果InnoDB引擎配置错误,表会恢复到MyISAM。)检查哪个引擎你的表正在使用,运行以下命令从MySQL shell:

      mysql> show table status;
      
    • 大多数发行版中MySQL安装的默认设置使用保守的缓冲区大小和内存使用。Cloudera管理服务角色需要高写吞吐量,因为他们可能会在数据库中插入许多记录。Cloudera建议将innodb_flush_method属性设置为O_DIRECT

    • 据集群的大小设置max_connections属性:

      • 少于50台主机——您可以在同一台主机上存储多个数据库(例如,活动监视器和服务监视器)。如果你这样做,你应该:

        • 将每个数据库放在自己的存储卷上。
        • 每个数据库允许100个最大连接,然后添加50个额外连接。例如,对于两个数据库,将最大连接设置为250个。如果在一台主机上存储5个数据库(用于Cloudera管理器服务器、活动监视器、报告管理器、Cloudera导航器和Hive metastore的数据库),将最大连接设置为550个。
      • 超过50台主机——不要在同一台主机上存储超过一个数据库。为每个数据库/主机对使用单独的主机。主机不需要专门为数据库保留,但是每个数据库应该位于单独的主机上。

    • 如果集群有超过1000台主机,那么将max_allowed_packet属性设置为16M。如果没有此设置,集群可能会由于以下异常而无法启动:com.mysql.jdbc.PacketTooBigException

    • 安装Cloudera Manager并不需要二进制日志记录。二进制日志记录提供了一些好处,比如MySQL复制或数据库恢复后的时间点增量恢复。下面是该配置的示例。有关更多信息,请参见二进制日志。

下面是一个Cloudera推荐设置的选项文件:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
transaction-isolation = READ-COMMITTED
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
symbolic-links = 0

key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1

max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M

#log_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log

#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
server_id=1

binlog_format = mixed

read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M

# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

sql_mode=STRICT_ALL_TABLES
  1. 如果在安装MySQL的主机上运行AppArmor,您可能需要配置AppArmor以允许MySQL写入二进制文件。

  2. 确保MySQL服务器开机自启:

OS Command
RHEL 7 compatible sudo systemctl enable mysqld
RHEL 6 compatible sudo chkconfig mysqld on
SLES sudo chkconfig --add mysql
Ubuntu sudo chkconfig mysql onNote: chkconfig may not be available on recent Ubuntu releases. You may need to use Upstart to configure MySQL to start automatically when the system boots. For more information, see the Ubuntu documentation or the Upstart Cookbook.
  1. 启动MySQL服务器
OS Command
RHEL 7 Compatible sudo systemctl start mysqld
RHEL 6 Compatible sudo service mysqld start
SLES, Ubuntu sudo service mysql start
  1. 运行/usr/bin/mysql_secure_installation设置MySQL root密码和其他安全相关设置。在新的安装中,root为空。当提示输入root密码时,请按Enter键。对于其余的提示,输入下面粗体列出的响应:
sudo /usr/bin/mysql_secure_installation
[...]
Enter current password for root (enter for none):
OK, successfully used password, moving on...
[...]
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
[...]
Disallow root login remotely? [Y/n] N
[...]
Remove test database and access to it [Y/n] Y
[...]
Reload privilege tables now? [Y/n] Y
All done!
装MySQL JDBC驱动程序

在Cloudera Manager服务器主机上安装JDBC驱动程序,以及其他运行需要数据库访问的服务的主机。有关使用数据库的Cloudera软件的更多信息,请参见Required数据库

注意:如果您已经在需要JDBC驱动程序的主机上安装了它,那么您可以跳过这一节。然而,MySQL 5.6需要5.1驱动程序版本5.1.26或更高。

Cloudera建议在有限数量的主机上合并所有需要数据库的角色,并在这些主机上安装驱动程序。建议在同一台主机上定位所有这些角色,但不是必需的。确保在每个运行访问数据库的角色的主机上安装JDBC驱动程序。

注意:Cloudera建议只使用5.1版本的JDBC驱动程序。

OS Command
RHEL **重要提示:**在安装JDK之前,使用yum install命令安装MySQL驱动程序包就可以安装OpenJDK,然后使用Linux alternatives命令将系统JDK设置为OpenJDK。如果您打算使用Oracle JDK,请确保在使用yum install安装MySQL驱动程序之前已经安装了它。如果想使用OpenJDK,可以使用yum安装驱动程序。或者,使用以下步骤手动安装驱动程序:
1. 从http://www.mysql.com/downloads/connector/j/5.1.html (.tar.gz格式)下载MySQL JDBC驱动程序。在撰写本文时,您可以使用wget下载5.1.46版本如下:
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
2. 从下载的文件中提取JDBC驱动程序JAR文件。例如:
tar zxvf mysql-connector-java-5.1.46.tar.gz
3. 将重命名的JDBC驱动程序复制到/usr/share/java/。如果目标目录不存在,则创建它。例如:
sudo mkdir -p /usr/share/java/
cd mysql-connector-java-5.1.46
sudo cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
SLES sudo zypper install mysql-connector-java
Ubuntu or Debian sudo apt-get install libmysql-java
为Cloudera软件创建数据库

为需要数据库的组件创建数据库和服务帐户:

  • Cloudera Manager服务器

  • Cloudera管理服务角色:

    • 活动监视器(如果在CDH 5集群中使用MapReduce服务)

    • Reports Manager

  • hue

  • 每个hive metastore

  • Sentry Server

  • Cloudera Navigator审计服务器

  • Cloudera导航元数据服务器

  • Oozie

  1. 作root或其他具有创建数据库和授予权限的权限的用户登录
mysql -u root -p passwd
  1. 使用以下命令为集群中部署的每个服务创建数据库。可以为、和参数使用任何值。下面是Cloudera软件数据库表,列出了Cloudera管理器配置设置中提供的默认名称,但您不需要使用它们。配置所有数据库使用utf8字符集。

    在运行下面描述的CREATE database语句时,包括每个数据库的字符集。

CREATE DATABASE <database> DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
GRANT ALL ON <database>.* TO ''@'%' IDENTIFIED BY '<password>';
Query OK, 0 rows affected (0.00 sec)

Cloudera软件需要的数据库

Service Database User
Cloudera Manager Server scm scm
Activity Monitor amon amon
Reports Manager rman rman
Hue hue hue
Hive Metastore Server metastore hive
Sentry Server sentry sentry
Cloudera Navigator Audit Server nav nav
Cloudera Navigator Metadata Server navms navms
Oozie oozie oozie
  1. 确认您已经创建了所有数据库:
SHOW DATABASES;

You can also confirm the privilege grants for a given user by running:

SHOW GRANTS FOR ''@'%';
  1. 记录为数据库名称、用户名和密码输入的值。Cloudera Manager安装向导需要这些信息才能正确连接到这些数据库。
设置Cloudera管理器数据库

完成上述安装和配置用于Cloudera软件的MariaDB数据库的说明后,继续第5步:设置Cloudera Manager数据库,为Cloudera Manager配置数据库。

为Cloudera软件安装和配置PostgreSQL

注意:下面的说明是用于生产环境的专用PostgreSQL数据库,与Cloudera提供的用于非生产安装的嵌入式PostgreSQL数据库无关。

要使用PostgreSQL数据库,请遵循以下过程。有关PostgreSQL数据库兼容版本的信息,请参阅数据库要求。

安装PostgreSQL服务器
  • 注意:如果你已经设置了一个PostgreSQL数据库,你可以跳到配置和启动PostgreSQL服务器一节来验证你的PostgreSQL配置是否满足Cloudera管理器的要求。
  • 确保数据目录(默认情况下为/var/lib/postgresql/data/)位于有足够空闲空间的分区上。
  • Cloudera Manager支持为Cloudera Manager服务器数据库使用自定义模式名,但不支持CDH组件数据库(如Hive、Hue、Sentry等)。更多信息,请参见https://www.postgresql.org/docs/current/static/ddl-schemas.html。

安装PostgreSQL包如下:

RHEL:

sudo yum install postgresql-server

SLES:

sudo zypper install --no-recommends postgresql96-server

注意:这个命令安装PostgreSQL 9.6。如果你想安装一个不同的版本,你可以使用zypper搜索postgresql来搜索一个可用的支持版本。查看数据库的需求。

Ubuntu:

sudo apt-get install postgresql
安装psycopg2 Python包

CDH 6中的hue需要2.5.4或更高版本的psycopg2 Python包来连接到PostgreSQL数据库。psycopg2包作为Cloudera Manager Agent的依赖项自动安装,但是安装的版本通常低于2.5.4。

如果你正在安装或升级到CDH 6,并使用PostgreSQL的hue数据库,你必须安装psycopg2 2.5.4或更高的所有hue主机如下。下面的例子安装了版本2.7.5 (RHEL 6的版本为2.6.2):

RHEL 7 Compatible

  1. 安装python-pip

    sudo yum install python-pip
    
  2. 使用pip安装psycopg2 2.7.5

    sudo pip install psycopg2==2.7.5 --ignore-installed
    

RHEL 6 Compatible

  1. 确保您已经安装了Python 2.7。您可以通过运行以下命令来验证这一点:

    source /opt/rh/python27/enable
    python --version
    
  2. 安装python-pip

    sudo yum install python-pip
    
  3. 安装postgresql-devel

    sudo yum install postgresql-devel
    
  4. 安装gcc*包:

    sudo yum install gcc*
    
  5. 使用pip安装psycopg2 2.6.2:

    sudo bash -c "source /opt/rh/python27/enable; pip install psycopg2==2.6.2 --ignore-installed"
    

Ubuntu / Debian

  1. 安装python-pip包:

    sudo apt-get install python-pip
    
  2. 使用pip安装psycopg2 2.7.5

    sudo pip install psycopg2==2.7.5 --ignore-installed
    

SLES 12

安装python-psycopg2包:

sudo zypper install python-psycopg2
配置并启动PostgreSQL服务器

注意:如果要对现有数据库进行更改,请确保在继续之前停止使用该数据库的任何服务。

默认情况下,PostgreSQL只接受环回接口上的连接。您必须重新配置PostgreSQL以接受来自托管您正在配置数据库的服务的主机的完全限定域名(FQDN)的连接。如果不进行这些更改,服务就不能连接并使用它们所依赖的数据库。

  1. 确保LC_ALL设置为en_US。并初始化数据库,如下所示
  • RHEL 7:

    echo 'LC_ALL="en_US.UTF-8"' >> /etc/locale.conf
    sudo su -l postgres -c "postgresql-setup initdb"
    
  • RHEL 6:

    echo 'LC_ALL="en_US.UTF-8"' >> /etc/default/locale
    sudo service postgresql initdb
    
  • SLES 12:

    sudo su -l postgres -c "initdb --pgdata=/var/lib/pgsql/data --encoding=UTF-8"
    
  • Ubuntu:

    sudo service postgresql start
    
  1. 使MD5认证。编辑pg_hba.conf,通常在/var/lib/pgsql/data/etc/postgresql//main中找到。添加以下文字:
host all all 127.0.0.1/32 md5

​ 如果默认的pg_hba.conf文件包含以下行:

host all all 127.0.0.1/32 ident

然后,必须在这个ident行之前插入上面所示的指定md5身份验证的host行。如果不这样做,可能会导致在运行scm_prepare_database.sh脚本时出现身份验证错误。您可以修改上面显示的md5行的内容以支持不同的配置。例如,如果你想从不同的主机访问PostgreSQL,用你的IP地址替换127.0.0.1并更新postgresqlL.conf,通常与pg_hba.conf在同一位置,包括:

listen_addresses = '*'
  1. 配置设置以确保系统按预期执行。更新/var/lib/pgsql/data/postgresql.conf/var/lib/postgresql/data/postgresql.conf文件中的这些设置。根据集群大小和资源的不同设置如下:

    • 小型到中型的集群——考虑以下设置作为起点。如果资源有限,考虑进一步减小缓冲区大小和检查点段。可能需要根据每个主机的资源利用率进行调优。例如,如果Cloudera Manager服务器与其他角色运行在同一台主机上,则可以接受以下值:

      • max_connection——通常,允许主机上的每个数据库有100个最大连接,然后添加50个额外的连接。您可能需要增加PostgreSQL可用的系统资源,如连接设置中所述。
      • shared_buffers - 256MB
      • wal_buffers - 8MB
      • checkpoint_segments - 16

      注意:checkpoint_segment设置在PostgreSQL 9.5及更高版本中被删除,取而代之的是min_wal_size和max_wal_size。PostgreSQL 9.5发布说明提供了以下公式来确定新的设置:

      max_wal_size = (3 * checkpoint_segments) * 16MB

      • checkpoint_completion_target - 0.9
    • 大型集群——最多可以包含1000台主机。请考虑以下设置作为起点

      • max_connection——对于大型集群,每个数据库通常托管在不同的主机上。通常,允许主机上的每个数据库有100个最大连接,然后再添加50个额外的连接。您可能需要增加PostgreSQL可用的系统资源,如连接设置中所述。
      • hared_buffers - 1024 MB.这要求操作系统能够分配足够的共享内存。有关设置内核资源的更多信息,请参见管理内核资源的PostgreSQL信息。
      • wal_buffers - 16mb。这个值派生自shared_buffers值。在大多数情况下,将wal_buffers设置为shared_buffers的大约3%,最大设置为大约16 MB就足够了。
      • checkpoint_segments - 128。PostgreSQL调优指南推荐的值在32到256之间,适用于写密集型系统,比如这个。

      注意:checkpoint_segment设置在PostgreSQL 9.5及更高版本中被删除,取而代之的是min_wal_size和max_wal_size。PostgreSQL 9.5发布说明提供了以下公式来确定新的设置:

      max_wal_size = (3 * checkpoint_segments) * 16MB

      • checkpoint_completion_target - 0.9.
  2. 将PostgreSQL服务器配置为开机自启

OS Command
RHEL 7 compatible sudo systemctl enable postgresql
RHEL 6 compatible sudo chkconfig postgresql on
SLES sudo chkconfig --add postgresql
Ubuntu sudo chkconfig postgresql onNote: chkconfig may not be available on recent Ubuntu releases. You may need to use Upstart to configure PostgreSQL to start automatically when the system boots. For more information, see the Ubuntu documentation or the Upstart Cookbook.
  1. 重启PostgreSQL 数据库:
  • RHEL 7 Compatible:

    sudo systemctl restart postgresql
    
  • All Others:

    sudo service postgresql restart
    
为Cloudera软件创建数据库

为需要数据库的组件创建数据库和服务帐户:

  • Cloudera Manager服务器

  • Cloudera管理服务角色:

    • 活动监视器(如果在CDH 5集群中使用MapReduce服务)

    • Reports Manager

  • hue

  • 每个hive metastore

  • Sentry Server

  • Cloudera Navigator审计服务器

  • Cloudera导航元数据服务器

  • Oozie

数据库必须配置为支持PostgreSQL UTF8字符集编码。

记录为数据库名称、用户名和密码输入的值。Cloudera Manager安装向导需要这些信息才能正确连接到这些数据库。

  1. 连接到PostgreSQL:
sudo -u postgres psql
  1. 从下表为您正在使用的每个服务创建数据库
CREATE ROLE  LOGIN PASSWORD '';
CREATE DATABASE  OWNER  ENCODING 'UTF8';

对于、和,可以使用任何需要的值。下面的例子是Cloudera管理器配置设置中提供的默认名称,但您不需要使用它们:

Cloudera软件的数据库

Service Database User
Cloudera Manager Server scm scm
Activity Monitor amon amon
Reports Manager rman rman
Hue hue hue
Hive Metastore Server metastore hive
Sentry Server sentry sentry
Cloudera Navigator Audit Server nav nav
Cloudera Navigator Metadata Server navms navms
Oozie oozie oozie

记录所选择的数据库、用户名和密码,因为以后会用到它们。

  1. 对于PostgreSQL 8.4或更高版本,将Hive Metastore和Oozie数据库的standard_conforming_string =off:
ALTER DATABASE <database> SET standard_conforming_strings=off;
设置Cloudera管理器数据库

完成上述安装和配置用于Cloudera软件的MariaDB数据库的说明后,继续第5步:设置Cloudera Manager数据库,为Cloudera Manager配置数据库。

为Cloudera软件安装和配置Oracle数据库

要使用Oracle数据库,请遵循以下过程。有关Oracle数据库兼容版本的信息,请参阅CDH和Cloudera Manager支持的数据库。

收集Oracle数据库信息

要配置Cloudera管理器,使其与Oracle数据库一起工作,请从您的Oracle DBA那里获取以下信息:

  • 主机名-安装Oracle数据库的主机的DNS名称或IP地址。
  • SID——将存储Cloudera管理器信息的模式名称。
  • 用户名——存储信息的每个模式的。对于这四个模式,可以有四个惟一的用户名。
  • 密码-对应于每个用户名的密码。
配置Oracle服务器

注意:如果要对现有数据库进行更改,请确保在继续之前停止使用该数据库的任何服务

调整Oracle设置以适应更大的集群

Cloudera管理服务需要高写吞吐量。根据部署的大小,DBA可能需要修改用于监视服务的Oracle设置。这些指导原则适用于较大的集群,不适用于Cloudera Manager配置数据库和较小的集群。许多因素有助于决定是否需要更改数据库设置,但在大多数情况下,如果您的集群有超过100台主机,您应该考虑进行以下更改:

  • 通过将FILESYSTEMIO_OPTIONS参数设置为SETALL来启用直接和异步I/O。
  • 通过更改MEMORY_TARGET参数来增加对Oracle可用的RAM。分配的内存量取决于Hadoop集群的大小。
  • 创建更多的重做日志组,并将重做日志成员分散到不同的磁盘或逻辑单元号上。
  • 将重做日志成员的大小增加到至少1 GB。

为HiveServer预留端口2

HiveServer2默认使用端口10000,但是Oracle数据库更改本地端口范围。这可能导致HiveServer2启动失败。

手动为HiveServer2保留默认端口。例如,下面的命令保留端口10000并插入说明原因的注释:

echo << EOF > /etc/sysctl.cnf
# HS2 uses port 10000
net.ipv4.ip_local_reserved_ports = 10000
EOF

sysctl -q -w net.ipv4.ip_local_reserved_ports=10000

修改Oracle连接的最大数量

与Oracle数据库管理员协作,确保为Oracle数据库设置应用了适当的值。您必须确定允许的连接、事务和会话的数量

为每个需要数据库的服务允许100个最大连接,然后添加50个额外的连接。例如,对于两个服务,将最大连接设置为250个。如果你有5个服务需要一个主机上的数据库(Cloudera Manager Server, Activity Monitor, Reports Manager, Cloudera Navigator和Hive metastore的数据库),将最大连接设置为550。

根据最大连接数,您可以使用以下公式确定预期会话的数量:

sessions = (1.1 * maximum_connections) + 5

例如,如果一台主机有用于两个服务的数据库,预计最大连接数为250个。如果您预计最多有250个连接,那么计划280个会话

一旦您知道了会话的数量,您就可以使用以下公式确定预期的事务数量:

transactions = 1.1 * sessions

继续前面的示例,如果预期有280个会话,那么可以计划308个事务。

与Oracle数据库管理员合作,将这些派生值应用到系统中。

使用上面的示例值,Oracle属性设置如下:

alter system set processes=250;
alter system set transactions=308;
alter system set sessions=280;

确保您的Oracle数据库支持UTF8

您使用的数据库必须支持UTF8字符集编码。可以使用dbca实用程序在Oracle数据库中实现UTF8字符集编码。在这种情况下,您可以使用字符集AL32UTF8选项来指定正确的编码。请咨询您的DBA,以确保正确配置了UTF8编码。

安装Oracle JDBC连接器

您必须在Cloudera Manager服务器主机和任何其他使用数据库的主机上安装JDBC连接器。

Cloudera建议在同一台主机上分配所有需要数据库的角色,并在该主机上安装连接器。建议在同一台主机上定位所有这些角色,但不是必需的。如果在一台主机上安装角色(例如Activity Monitor),而在另一台主机上安装其他角色,则需要在每个运行访问数据库的角色的主机上安装JDBC连接器。

  1. 从Oracle网站下载Oracle JDBC驱动程序。例如,版本6的JAR文件名为ojdbc6.jar

    有关支持的Oracle Java版本的更多信息,请参见CDH和Cloudera Manager支持的JDK版本。

    要下载JDBC驱动程序,请访问Oracle JDBC和UCP下载页面,并单击您的Oracle数据库版本的链接。下载ojdbc6.jar文件(或ojdbc8.jar),用于Oracle数据库12.2)。

  2. 将Oracle JDBC JAR文件复制到/usr/share/java/oracle-connector-java.jar。Cloudera管理器数据库和Hive Mestastore数据库使用这个共享文件。例如:

mkdir /usr/share/java
cp /tmp/ojdbc6.jar /usr/share/java/oracle-connector-java.jar
为Cloudera软件创建数据库

为需要数据库的组件创建数据库和服务帐户:

  • Cloudera Manager服务器

  • Cloudera管理服务角色:

    • 活动监视器(如果在CDH 5集群中使用MapReduce服务)

    • Reports Manager

  • hue

  • 每个hive metastore

  • Sentry Server

  • Cloudera Navigator审计服务器

  • Cloudera导航元数据服务器

  • Oozie

您可以在运行Cloudera Manager服务器的主机上或集群中的任何其他主机上创建Oracle数据库、模式和用户。出于性能原因,您应该在运行服务的主机上安装每个数据库,这取决于您在安装或升级期间分配的角色。在较大的部署中,或者在数据库管理员管理服务使用的数据库的情况下,可以将数据库与服务分离,但要谨慎使用。

数据库必须配置为支持UTF-8字符集编码。

记录为数据库名称、用户名和密码输入的值。Cloudera Manager安装向导需要这些信息才能正确连接到这些数据库。

  1. 登录到Oracle客户端:
sqlplus system@localhost
Enter password: ******
  1. 在下表中为您使用的每个服务创建一个用户和模式
create user  identified by  default tablespace ;
grant CREATE SESSION to ;
grant CREATE TABLE to ;
grant CREATE SEQUENCE to ;
grant EXECUTE on sys.dbms_lob to ;

可以为、和使用任何值。下面的例子是Cloudera管理器配置设置中提供的默认名称,但您不需要使用它们:

Cloudera软件的数据库

Service Database User
Cloudera Manager Server scm scm
Activity Monitor amon amon
Reports Manager rman rman
Hue hue hue
Hive Metastore Server metastore hive
Sentry Server sentry sentry
Cloudera Navigator Audit Server nav nav
Cloudera Navigator Metadata Server navms navms
Oozie oozie oozie
  1. 为将要创建表的表空间(默认表空间为SYSTEM)授予配额:
ALTER USER  quota 100m on ;
  1. 为Oozie设置以下附加特权:
grant alter index to oozie;
grant alter table to oozie;
grant create index to oozie;
grant create sequence to oozie;
grant create session to oozie;
grant create table to oozie;
grant drop sequence to oozie;
grant select dictionary to oozie;
grant drop table to oozie;
alter user oozie quota unlimited on ;

重要的是:
出于安全原因,不要向Oozie用户授予select any table的权限。

  1. 为Cloudera Navigator审计服务器数据库设置以下附加特权:
GRANT EXECUTE ON sys.dbms_crypto TO nav;
GRANT CREATE VIEW TO nav;

​ 其中

有关Oracle特权的更多信息,请参见授权:特权、角色、配置文件和资源限制。

配置Hue服务器在Oracle中存储数据(客户包)

要安装和配置Hue的Oracle服务器和客户端存储库,请参见用客户端包裹连接Hue到Oracle

连接Hue服务到Oracle

在安装CDH(和Hue)或现有安装时,可以将Hue连接到Oracle数据库。使用现有的CDH安装,您可以连接并重新启动Hue,而不需要将数据保存在当前数据库中,或者您可以将旧数据迁移到Oracle中。

安装全新的CDH

参见Cloudera安装指南来安装Cloudera Manager(及其安装向导),您将在这里使用该向导来安装CDH和Oracle客户端。

安装CDH和Oracle包

  1. 打开Cloudera Manager管理控制台,运行Cloudera Manager安装向导来安装CDH(和Hue)。Cloudera Manager的URL是:http://:7180

  2. 停止Select Repository并添加Oracle客户打包存储库(集群安装,步骤1):

    1. 选择方法使用包裹和点击更多的选项。

    2. 单击“+”图标并为您的OracleCDH6官方文档中文系列(3)----Cloudera安装指南(安装CM和CDH)_第1张图片包裹存储库添加URL:

    3. 点击保存变更

    4. 通过ORACLE_INSTANT_CLIENT选择新添加的单选按钮,然后单击ContinueCDH6官方文档中文系列(3)----Cloudera安装指南(安装CM和CDH)_第2张图片

      Oracle包在集群安装时被下载、分发和激活,第6步(安装选定的包)

连接Hue到Oracle

继续使用Cloudera Manager安装向导…

  1. 在数据库设置处停止设置连接属性(集群设置,步骤3)。

    1. 选择“使用自定义数据库”。

    2. 在Hue下,设置Oracle数据库的连接属性。

      注意:复制并存储Hue嵌入式数据库的密码(以防万一)。

      Database Hostname (and port): :1521
      Database Type (or engine): Oracle
      Database SID (or name): orcl
      Database Username: hue
      Database Password: 
      
    3. 单击测试连接,成功后单击继续

    CDH6官方文档中文系列(3)----Cloudera安装指南(安装CM和CDH)_第3张图片

  2. 继续安装并单击Finish完成。

  3. 添加对多线程环境的支持:

    1. 转到集群>hue>配置。

    2. 按类别过滤,范围Hue-service,高级。

    3. 通过为hue_safety_valve.ini设置Hue服务高级配置代码片段(安全阀)来增加对多线程环境的支持:

      [desktop]
      [[database]]
      options={"threaded":true}
      
    4. 点击保存更改

已安装了CDH

激活Oracle客户端包裹

  1. 登录Cloudera管理器。
  2. 通过点击主机>包裹(或点击包裹图标)进入包裹页面。
  3. 单击配置>检查新包裹
  4. 找到ORACLE_INSTANT_CLIENT并单击下载分发激活
    在这里插入图片描述

连接Hue到Oracle

如果您没有迁移当前的(或旧的)数据库,只需连接到新的Oracle数据库并重新启动Hue。参见将hue连接到外部数据库。

  1. 停止Hue服务(仅在迁移时需要)

    1. 在Cloudera管理器中,导航到集群>Hue
    2. 选择Actions > Stop

    注意:如有需要,请刷新页面以确保Hue服务已停止:

  2. [仅迁移]转储当前数据库

    1. 选择Actions >转储数据库
    2. 单击数据库转储。该文件被写入/tmp/hue_database_dump.json在主机上的Hue服务器。
    3. 在命令行终端上登录到Hue服务器的主机。
    4. 通过使用model 字段中的useradmin.userprofile 删除所有对象编辑/tmp/hue_database_dump.json。例如:
    # Count number of objects
    grep -c useradmin.userprofile /tmp/hue_database_dump.json
    
    vi /tmp/hue_database_dump.json
    
    {
      "pk": 1,
      "model": "useradmin.userprofile",
      "fields": {
        "last_activity": "2016-10-03T10:06:13",
        "creation_method": "HUE",
        "first_login": false,
        "user": 1,
        "home_directory": "/user/admin"
      }
    },
    {
      "pk": 2,
      "model": "useradmin.userprofile",
      "fields": {
        "last_activity": "2016-10-03T10:27:10",
        "creation_method": "HUE",
        "first_login": false,
        "user": 2,
        "home_directory": "/user/alice"
      }
    },
    
  3. 连接到新数据库

    1. 配置数据库连接:

      1. 到Hue>配置和通过分类过滤,数据库。
      2. 设置数据库属性,点击保存更改:
      Hue Database Type (or engine): Oracle
      Hue Database Hostname: <fqdn of host with Oracle server>
      Hue Database Port: 1521
      Hue Database Username: hue
      Hue Database Password: <hue database password>
      Hue Database Name (or SID): orcl
      
    2. 添加对多线程环境的支持

      1. 按类别过滤,服务范围,高级。
      2. hue_safety_valve.ini设置Hue服务高级配置片段(安全阀),然后点击保存更改:
      [desktop]
      [[database]]
      options={"threaded":true}
      
  4. [仅迁移]同步新数据库

    选择Actions > Synchronize Database

    单击数据库同步

  5. [仅迁移]从旧数据库加载数据

**重要提示:**Hue数据库中的所有用户表必须为空。你在创建Hue数据库的第三步清理了它们。确保它们仍然是干净的。

sqlplus hue/ < delete_from_tables.ddl
  1. 启动Hue服务
    1. 导航到群集>Hue。
    2. 选择Actions > Start,然后单击Start。
    3. 点击HueWeb UI登录到Hue自定义Oracle数据库。
配置Hue服务器在Oracle中存储数据(客户端包)

要安装和配置Hue的Oracle服务器和客户端存储库,请参见用客户端包连接Hue到Oracle

连接Hue服务到Oracle

全新安装CDH

参见Cloudera安装指南来安装Cloudera Manager(及其安装向导),您将在这里使用该向导来安装CDH和Oracle客户端。

  1. 打开Cloudera Manager管理控制台,运行Cloudera Manager安装向导来安装CDH(和Hue)。Cloudera Manager的URL是:http://:7180
  2. 集群安装结束时停止,将最新的cx_Oracle包复制到Hue的Python环境中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8PEQK3R7-1591292605633)(C:\Users\liucz\Desktop!文档\2Linux环境\CDH官方文档\cdh_pic\hue_cm_cluster_installation_6.png)]

  1. 在数据库设置处停止来设置连接属性(集群设置,步骤3)。

    1. 选择“使用自定义数据库”。
    2. 在Hue下,设置Oracle数据库的连接属性

    注意:复制并存储Hue嵌入式数据库的密码(以防万一)。

    Database Hostname (and port): :1521
    Database Type (or engine): Oracle
    Database SID (or name): orcl
    Database Username: hue
    Database Password: 
    
    1. 单击Test Connection,成功后单击Continue

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vhIEVsfe-1591292605635)(C:\Users\liucz\Desktop!文档\2Linux环境\CDH官方文档\cdh_pic\hue_cm_database_setup_orcl (1)].png)

  2. 继续安装并单击Finish完成。

  3. 添加对多线程环境的支持

    1. 转到集群>Hue>配置
    2. 类别过滤,Hue-服务范围,高级
    3. 通过为hue_safety_valve.ini设置Hue服务高级配置代码片段(安全阀)来增加对多线程环境的支持:
    [desktop]
    [[database]]
    options={"threaded":true}
    
    1. 点击保存更改
  4. 重启Hue服务:选择动作>重启并点击重启

  5. 点击Hue Web UI进入Hue。

已经安装CDH

如果您没有迁移当前的(或旧的)数据库,只需连接到新的Oracle数据库并重新启动Hue。参见将Hue连接到外部数据库。

  1. [仅迁移]停止Hue服务

    1. 在Cloudera管理器中,导航到集群>Hue
    2. 选择Actions > Stop

    注意:如有必要,请刷新页面以确保Hue服务已停止。

  2. [仅迁移]转储当前数据库

    1. 选择Actions >转储数据库
    2. 单击数据库转储。该文件被写入/tmp/hue_database_dump.json在Hue服务的主机上。
    3. 在命令行终端上登录到Hue服务器的主机。
    4. 使用model字段中的useradmin.userprofile删除所有对象来编辑/tmp / hue_database_dump.json例如:
    # Count number of objects
    grep -c useradmin.userprofile /tmp/hue_database_dump.json
    
    vi /tmp/hue_database_dump.json
    
    {
      "pk": 1,
      "model": "useradmin.userprofile",
      "fields": {
        "last_activity": "2016-10-03T10:06:13",
        "creation_method": "HUE",
        "first_login": false,
        "user": 1,
        "home_directory": "/user/admin"
      }
    },
    {
      "pk": 2,
      "model": "useradmin.userprofile",
      "fields": {
        "last_activity": "2016-10-03T10:27:10",
        "creation_method": "HUE",
        "first_login": false,
        "user": 2,
        "home_directory": "/user/alice"
      }
    },
    
  3. 连接到新数据库

    1. 配置数据库连接:进入Hue>配置,按数据库过滤,设置属性,点击保存更改:
    Hue Database Type (or engine): Oracle
    Hue Database Hostname: 
    Hue Database Port: 1521
    Hue Database Username: hue
    Hue Database Password: 
    Hue Database Name (or SID): orcl
    
    1. 添加对多线程环境的支持:通过Hue服务过滤,为设置Hue服务高级配置代码片段(安全阀)。hue_safety_valve.ini,并点击保存更改:
    [desktop]
    [[database]]
    options={"threaded":true}
    
  4. [仅迁移]同步新数据库

    1. 选择Actions > 数据库同步
    2. 单击数据库同步
  5. 旧数据库加载数据

重要提示:Hue数据库中的所有用户表必须为空。你在创建Hue数据库的第三步清理了它们。确保它们仍然是干净的。

sqlplus hue/ < delete_from_tables.ddl
  1. Re /启动Hue服务
    1. 导航到群集>Hue
    2. 选择Actions > Start,然后单击Start
    3. 点击Hue Web UI登录到色相自定义Oracle数据库。
为Cloudera管理器配置Oracle数据库

完成上述安装和配置用于Cloudera软件的Oracle数据库的说明后,继续第5步:设置Cloudera Manager数据库,为Cloudera Manager配置数据库。

步骤5:设置Cloudera管理器数据库

Cloudera管理服务器包含一个脚本,它可以为自己创建和配置数据库。这个脚本可以:

  • 创建Cloudera管理器服务器数据库配置文件。
  • 创建并配置一个用于Cloudera管理服务器的数据库。
  • 创建并配置一个Cloudera管理服务器的用户帐户。

尽管脚本可以创建数据库,但以下过程假设您已经创建了第4步:安装和配置数据库中描述的数据库。

下面几节描述脚本的语法并演示如何使用它:

scm_prepare_database.sh的语法

scm_prepare_database.sh脚本的语法如下:

sudo /opt/cloudera/cm/schema/scm_prepare_database.sh [options] <databaseType> <databaseName> <databaseUser> <password>

**注意:**您也可以在不带选项的情况下运行scm_prepare_database.sh来查看语法。

要创建新数据库,必须为具有创建数据库特权的用户指定-u-p参数。如果您已经按照步骤4:安装和配置数据库中的指示创建了数据库,那么不要指定这些选项。

下面的表描述了scm_prepare_database.sh脚本的参数和选项:

参数

Parameter (Required in bold) Description
支持的数据库类型之一:
MariaDB: mysql
MySQL: mysql
Oracle: oracle
PostgreSQL: postgresql
要使用的Cloudera管理器服务器数据库的名称。对于MySQL、MariaDB和PostgreSQL数据库,如果您使用具有创建数据库和授予权限的用户的凭据指定-u-p选项,则脚本可以创建指定的数据库。在Cloudera Manager配置设置中提供的默认数据库名是scm,但是您不需要使用它。
要创建或使用的Cloudera Manager服务器数据库的用户名。在Cloudera Manager配置设置中提供的默认用户名是scm,但您不需要使用它。
要创建或使用的的密码。如果您不希望密码在屏幕上可见或存储在命令历史记录中,请不要指定密码,系统会提示您如下输入:Enter SCM password:

选项

Option Description
-?|–help 显示帮助。
–config-path Cloudera Manager服务器配置文件的路径。默认值是/etc/cloudera-scm-server
-f|–force 如果指定,脚本不会在出现错误时停止。
-h|–host 安装数据库的主机的IP地址或主机名。默认情况下使用本地主机
-p|–password 数据库应用程序的管理密码。与-u选项一起使用。默认是没有密码。不要在-p和密码之间加空格(例如-phunter2)。如果您不希望密码在屏幕上可见或存储在命令历史记录中,请使用-p选项而不指定密码,系统会提示您输入如下密码。Enter database password:如果您已经创建了数据库,请不要使用此选项。
-P|–port 用于连接数据库的端口号。默认端口是MariaDB的3306,MySQL的3306,PostgreSQL的5432,Oracle的1521。此选项仅用于远程连接。
–scm-host 安装Cloudera Manager服务器的主机名。如果Cloudera Manager服务器和数据库安装在同一台主机上,不要使用这个选项或-h选项。
–scm-password-script 一个执行脚本,它的标准输出提供用户SCM(数据库)的密码。
-u|–user 数据库应用程序的管理用户名。与-p选项一起使用。不要在-u和用户名之间加空格(例如-uroot)。如果提供了这个选项,脚本将为Cloudera Manager服务器创建一个用户和数据库。如果您已经创建了数据库,请不要使用此选项。

准备Cloudera管理器服务器数据库

  1. 在Cloudera管理器服务器主机上运行scm_prepare_database.sh脚本,使用在步骤4中创建的数据库名、用户名和密码:安装和配置数据库:
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh <databaseType> <databaseName> <databaseUser>

出现提示时,输入密码。

  1. 如果存在,删除嵌入的PostgreSQL属性文件

    sudo rm /etc/cloudera-scm-server/db.mgmt.properties
    

下面的示例演示了scm_prepare_database.sh脚本在不同场景下的语法和输出:

示例1:在MySQL或MariaDB与Cloudera管理器服务器共存时运行脚本

本例假设您已经创建了Cloudera管理服务器数据库和数据库用户,并将其命名为scm:

sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
Enter SCM password:
JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /usr/java/jdk1.8.0_141-cloudera/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!
示例2:在另一台主机上安装MySQL或MariaDB时运行脚本

这个例子演示了如何在Cloudera Manager服务器主机(cm01.example.com)上运行脚本,并连接到远程MySQL或MariaDB主机(db01.example.com):

sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h db01.example.com --scm-host cm01.example.com scm scm
Enter database password:
JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /usr/java/jdk1.8.0_141-cloudera/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!
示例3:运行脚本配置Oracle
sudo /opt/cloudera/cm/schema/scm_prepare_database.sh -h cm-oracle.example.com oracle orcl sample_user sample_pass
JAVA_HOME=/usr/java/jdk1.8.0_141-cloudera
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /usr/java/jdk1.8.0_141-cloudera/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/*cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[ main] DbCommandExecutor INFO Successfully connected to database.
All done, your SCM database is configured correctly!

安装CDH

配置完Cloudera Manager服务器数据库后,继续第6步:安装CDH和其他软件。

步骤6:安装CDH和其他软件

设置好Cloudera Manager数据库后,启动Cloudera Manager服务器,登录到Cloudera Manager管理控制台:

  1. 启动Cloudera管理器服务器:

    • RHEL 7 compatible, Ubuntu, SLES:

      sudo systemctl start cloudera-scm-server
      
    • RHEL 6 compatible:

      sudo service cloudera-scm-server start
      
  2. 等待Cloudera管理器服务器启动几分钟。要观察启动过程,请在Cloudera Manager服务器主机上运行以下操作:

sudo tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

​ 当你看到这个日志条目时,Cloudera Manager管理控制台已经准备好了:

	INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.

​ 如果Cloudera Manager服务器没有启动,请参阅安装问题排除。

  1. 在web浏览器中,转到http://:7180,其中是运行Cloudera Manager服务器的主机的FQDN或IP地址。

注意:如果启用了auto-TLS,将重定向到https://:7183,并显示一个安全警告。您可能需要表明您信任该证书,或者单击继续到Cloudera Manager服务器主机。

  1. 登录到Cloudera管理器管理控制台。默认凭证是:

    Username: admin

    Password: admin

注意:Cloudera Manager不支持更改已安装帐户的管理用户名。在运行安装向导后,您可以使用Cloudera管理器更改密码。虽然不能更改管理用户名,但可以添加新用户、为新用户分配管理特权,然后删除默认的管理帐户。

登录后,安装向导启动。以下部分将指导您完成安装向导的每个步骤:

欢迎

欢迎页面提供了Cloudera管理器的简要概述,以及您正在安装的版本的发布说明链接。单击Continue继续安装。

接受许可协议

Accept许可证页面提供最终用户许可证条款和条件。阅读许可协议并单击“Yes, I accept the End User license Terms and Conditions if you accept the Terms and Conditions of the license agreement”复选框。单击Continue继续。

选择版本

选择版本页面,您可以选择要安装的Cloudera Manager版本,也可以选择安装许可证:

  1. 选择要安装的版本:

    • Cloudera Express不需要许可证,但提供了一组有限的功能。

    • Cloudera Enterprise Trial,不需要许可证,但60天后到期,不能续期。

    • 拥有以下许可证类型之一的Cloudera企业:

      • 基本版

      • 数据科学与工程版

      • 操作数据库版本

      • 数据仓库版本

      • 企业数据中心版

    如果您选择Cloudera Express或Cloudera Enterprise Trial,您可以稍后升级许可证。看到管理许可证。

  2. 如果选择Cloudera Enterprise,请安装许可证:

    1. 单击“选择许可证文件”字段
    2. 浏览到许可文件的位置,单击该文件,然后单击Open
    3. 点击上传
  3. 显示指示CDH安装包含哪些内容的信息。此时,您可以单击支持下拉菜单来访问在线帮助或支持门户。

  4. 单击Continue继续安装。

欢迎(添加集群-安装)

Add Cluster - Installation向导的欢迎页面提供了安装和配置过程的简要概述,以及相关文档的一些链接。

单击Continue继续安装

集群基础知识

Cluster Basics页面允许您指定集群名称并选择集群类型:

常规集群:一个常规集群包含存储节点、计算节点和其他服务(如元数据和安全性)并置于单个集群中。
计算集群:计算集群只包含计算节点。要连接到现有的存储、元数据或安全服务,必须首先在基本集群上选择或创建数据上下文。
对于新的安装,常规集群是唯一的选择。如果没有现有的基本集群,则无法添加计算集群。

有关常规集群和计算集群以及数据上下文的更多信息,请参见虚拟私有集群和Cloudera SDX。
输入集群名称,然后单击Continue

设置Auto-TLS

重要提示:Auto-TLS只适用于企业许可证。

Setup Auto-TLS页面提供了如何初始化Auto-TLS的证书管理器(如果您还没有这样做的话)的说明。如果您已经在步骤3:安装Cloudera管理器服务器中初始化了证书管理器,向导将显示一个消息,表明已经初始化了auto-TLS。单击Continue继续安装。

如果还没有初始化证书管理器,并且希望启用auto-TLS,请在继续之前按照页面上提供的说明操作。当按指示重新加载页面时,将重定向到https://:7183,并显示一个安全警告。您可能需要表明您信任该证书,或者单击继续到Cloudera Manager服务器主机。您可能还需要再次登录并在向导中重新完成前面的步骤。

有关更多信息,请参见使用自动TLS为Cloudera管理器和CDH配置TLS加密。

如果此时不想启用自动tls,请单击Continue继续进行。

指定主机

选择将运行CDH和其他托管服务的主机。

  1. 要使Cloudera Manager能够自动发现要安装CDH和托管服务的主机,请在主机名字段中输入集群主机名或IP地址。您可以指定主机名和IP地址范围如下:
Expansion Range Matching Hosts
10.1.1.[1-4] 10.1.1.1, 10.1.1.2, 10.1.1.3, 10.1.1.4
host[1-3].example.com host1.example.com, host2.example.com, host3.example.com
host[07-10].example.com host07.example.com, host08.example.com, host09.example.com, host10.example.com

**重要提示:**非限定的主机名(简称)在Cloudera Manager实例中必须是唯一的。例如,您不能让同一个Cloudera Manager服务器同时管理host01.example.com和host01.stand .example.com。

您可以通过使用逗号、分号、制表符或空格分隔多个地址和地址范围,或者将它们放在单独的行中来指定它们。使用此技术进行更具体的搜索,而不是搜索过于广泛的范围。默认情况下,只有到达运行SSH的主机的扫描才会被选择包含在集群中。您可以输入跨越未使用地址的地址范围,然后在稍后的过程中清除不存在的主机,但是更大的范围需要更多的时间来扫描。

  1. 单击搜索。如果集群上有大量主机,请稍等片刻,让向导发现并显示它们。如果搜索时间过长,可以单击“中止扫描”来停止扫描。您可以修改搜索模式,并根据需要重复搜索,直到看到所有预期的主机。

**注意:**Cloudera管理器通过检查网络连接来扫描主机。如果你想要安装服务的主机列表中没有显示,请确保Cloudera Manager服务器主机和这些主机之间有网络连接,并且防火墙和SE Linux没有阻止访问。

  1. 验证显示的主机数量是否与您希望安装服务的主机数量匹配。清除不存在或不希望安装服务的主机项。

  2. 单击Continue

    将显示选择存储库屏幕。

选择存储库

**重要提示:**不能在同一个集群中同时使用parcels和packages安装软件。

选择存储库页面允许您为Cloudera Manager代理和CDH以及其他软件指定存储库。

在Cloudera Manager Agent部分:

  1. 为Cloudera Manager代理软件选择公共Cloudera存储库自定义存储库
  2. 如果选择自定义存储库,请不要在URL中包含特定于操作系统的路径。有关设置自定义存储库的说明,请参见配置本地包存储库。

CDH和其他软件部分:

  1. 选择要用于安装的存储库类型。在“安装方法”一节中,选择下列其中一项:

    • 使用包裹(推荐)

      包是一种二进制分发格式,包含程序文件以及Cloudera Manager使用的其他元数据。包裹需要滚动升级。有关更多信息,请参见包裹。

    • 使用包

      包是一种标准的二进制发行格式,包含编译后的代码和元信息,如包描述、版本和依赖关系。使用操作系统包管理器安装包。

  2. 选择要安装的CDH版本。

    1. ​ 如果选择了Use Parcels,但没有看到想要安装的版本,请单击More Options按钮为您的版本添加存储库URL。cdh6版本的存储库url记录在cdh6下载信息中。在添加存储库之后,单击Save Changes并等待几秒钟以显示版本。如果您的Cloudera Manager主机使用HTTP代理,请单击代理设置按钮来配置代理。

    **注意:**Cloudera管理器只显示它可以支持的CDH版本。如果一个可用的CDH版本对于你的Cloudera管理器版本来说太新了,它就不会显示出来。

    1. 如果您选择了Use Packages,并且没有列出您想要安装的版本,那么您可以选择Custom Repository来指定包含所需版本的存储库。cdh6版本的存储库url记录在cdh6下载信息中。
  3. 如果选择了“使用包裹”,请指定要安装的任何其他包裹。如果您正在安装CDH 6,不要选择KAFKAKUDUSPARK包,因为它们包含在CDH 6中。

  4. 单击Continue

接受JDK许可

注意:Cloudera, Inc.根据Oracle二进制代码许可协议收购了Oracle JDK软件。根据Oracle二进制代码许可协议补充许可条款D(v)(a)项,JDK软件的使用受Oracle二进制代码许可协议条款的约束。安装JDK软件,即表示您同意遵守这些条款。如果您不希望受这些条款的约束,那么就不要安装Oracle JDK。

要允许Cloudera Manager在集群主机上自动安装Oracle JDK,请阅读JDK许可证,如果您接受条款,请选中标有**install Oracle Java SE Development Kit (JDK8)**的复选框。如果您在步骤2:安装Java Development Kit中安装了自己的Oracle JDK版本,请保持未选中该复选框。

如果你允许Cloudera Manager安装JDK,会出现第二个复选框,标签是install Java Unlimited Strength Encryption Policy Files。在低于1.8u161的JDK版本中启用AES-256加密需要这些策略文件。JDK 1.8u161和更高版本默认情况下启用无限强度加密,并且不需要策略文件。

阅读许可条款并勾选适用框后,单击Continue

输入登录凭证

  1. root选择root账户,或选择另一个用户并为具有无密码sudo特权的帐户输入用户名。
  2. 选择一种认证方法:
    • 如果选择密码认证,请输入并确认密码。
    • 如果选择公钥身份验证,请提供所需密钥文件的口令和路径。如果需要,可以修改默认的SSH端口。
  3. 指定一次运行的主机安装的最大数量。默认和推荐的值是10。您可以根据您的网络容量进行调整。
  4. 点击继续

将显示安装代理页面。

安装代理

Install Agents页面显示安装的进度。您可以单击任何主机的Details链接来查看安装日志。
如果安装停止,可以单击**“Abort installation**”按钮取消安装,然后查看安装日志以排除问题。

如果在任何主机上安装失败,您可以单击“重试失败的主机”以重试所有失败的主机,或者单击特定主机上的“重试”链接。

如果您选择了手动安装代理的选项,请参阅该过程的手动安装Cloudera Manager代理包,然后在此页上继续下一步的步骤。
在所有主机上安装Cloudera Manager代理后,单击Continue
如果使用的是包裹,则会显示安装包裹页面。如果选择使用包安装,则会显示Inspect集群页面。

安装包裹

如果您为安装方法选择了包裹,那么Install packages页面将报告您之前选择的包裹的安装进度。软件包下载后,会出现代表每个集群主机的进度条。您可以单击单个进度条以获得有关该主机的详细信息。

安装完成后,单击Continue

将显示检查集群页面。

检查集群

Inspect集群页面提供了一个用于检查网络性能的工具,以及用于搜索常见配置问题的主机检查器。
Cloudera建议按顺序运行检查器:

  1. 运行Inspect网络性能工具。您可以单击高级选项来定制一些ping参数。
  2. 网络检查器完成后,单击Show inspector Results在一个新选项卡中查看结果。
  3. 解决任何报告的问题,并再次单击Run(如果适用)。
  4. 单击Inspect Hosts运行主机检查器实用程序。
  5. 在主机检查器完成后,单击Show inspector Results在一个新选项卡中查看结果。
  6. 处理任何报告的问题,然后再次单击Run(如果适用)。

如果报告的问题不能及时解决,而您想要放弃集群创建向导来解决它们,选择退出向导的单选按钮Cloudera Manager将删除临时创建的集群,然后单击Continue

否则,在解决任何确定的问题之后,选择标记为“我理解风险,让我继续创建集群”的单选按钮,然后单击continue

这样就完成了集群安装向导并启动了添加集群配置向导。

继续执行步骤7:使用向导设置集群。

步骤7:使用向导设置集群

完成添加集群安装向导后,添加集群配置向导将自动启动。以下章节将指导您浏览向导的每一页:

选择服务

“**选择服务”**页面允许您选择要安装和配置的服务。确保您拥有要使用的服务的适当许可证密钥。您可以选择:

Essentials

HDFS, YARN (MapReduce 2 Included), ZooKeeper, Oozie, Hive, and Hue

Data Engineering

HDFS, YARN (MapReduce 2 Included), ZooKeeper, Oozie, Hive, Hue, and Spark

Data Warehouse

HDFS, YARN (MapReduce 2 Included), ZooKeeper, Oozie, Hive, Hue, and Impala

Operational Database

HDFS, YARN (MapReduce 2 Included), ZooKeeper, Oozie, Hive, Hue, and HBase

All Services (Cloudera Enterprise Data Hub)

HDFS, YARN (MapReduce 2 Included), Zo

oKeeper, Oozie, Hive, Hue, HBase, Impala, Solr, Spark, and Key-Value Store Indexer

自定义服务

选择您自己的服务。所选服务所需的服务将自动包括在内。可以在初始集群设置完成后添加Flume。

要包含Cloudera导航器数据管理,请选中标签为include Cloudera Navigator的框。

选择要添加的服务后,单击Continue。显示分配角色页面。

分配角色

Assign Roles页面建议为集群中的主机分配角色。您可以单击角色的主机名来选择不同的主机。您还可以单击View By Host按钮来查看分配给主机的所有角色。

要查看推荐的角色分配,请参阅推荐的集群主机和角色分配。

为您的服务分配所有角色之后,单击Continue。将显示设置数据库页面。

设置数据库

在设置数据库页面上,您可以输入在步骤4:安装和配置数据库中创建的数据库主机、名称、用户名和密码。对于支持它的服务,可以使用JDBC URL覆盖添加更细粒度的自定义。

**重要提示:**Hive服务是目前唯一支持JDBC URL覆盖的服务。

选择数据库类型并为每个服务输入数据库名称、用户名和密码。对于MariaDB,选择MySQL
对于支持它的服务,要指定JDBC URL覆盖,请在Use JDBC URL覆盖下拉菜单中选择Yes
有关JDBC URL格式的信息,请参见为数据库连接指定JDBC URL覆盖。还必须指定数据库类型、用户名和密码。

单击测试连接以验证设置。
如果连接成功,则在每个服务旁边会出现一个绿色的复选标记和单词“成功”。如果有任何问题,错误将在连接失败的服务旁边报告。
在验证每个连接都成功之后,单击Continue。将显示审查更改页面。

审查更改

审查更改”页面列出了一些配置参数的默认设置和建议设置,包括数据目录。

**警告:**不要将DataNode数据目录放在NAS设备上。当调整NAS的大小时,会删除块副本,从而导致丢失块。

检查并进行必要的更改,然后单击Continue。将显示命令详细信息页面。

如果您正在安装Accumulo服务,请选择Initialize Accumulo作为安装过程的一部分来初始化服务。

命令细节

命令详细信息页面列出了第一个运行命令的详细信息。可以展开正在运行的命令以查看任何步骤的详细信息,包括日志文件和命令输出。您可以通过选择“显示所有步骤”、“只显示失败的步骤”或“只显示正在运行的步骤”来筛选视图。

第一个Run命令完成后,单击Continue转到摘要页面。

概要

摘要页面报告安装向导的成功或失败。单击Finish完成向导。安装完成。

Cloudera建议你尽快修改默认密码,点击主屏幕右上方的登录用户名,然后点击修改密码

你可能感兴趣的:(手撕官方文档系列,大数据,cloudera,运维)