一、修改hostname

修改集群中各机器的hostshostname,并使之永久生效。步骤如下:

  1. 输入命令 hostname:查看当前hostname;
  2. 输入命令 hostname <new.hostname>:修改new hostname并立即生效(临时有效,重启系统后失效)
  3. 输入命令 vim /etc/hosts:为集群中的各机器添加对应的hosts;
  4. 输入命令 vim /etc/sysconfig/network:修改HOSTNAME=new.hostname,使new.hostname永久生效。(如果没有该值则手动添加,并重启确认是否永久生效)

二、配置SSH登录

设置集群中的各机器能互相SSH免密登录,并且能够ssh locahost登录本机。步骤如下:

  1. 输入命令 ssh-keygen -t rsa,一路回车即可;
  2. 输入命令 ssh-copy-id -i .ssh/id_rsa.pub  username@target.machine.ip
  3. ssh登录各机器进行确认。

三、搭建cdh 6.0.0

该部分建议结合官方文档一起看。

1. 确保各机器拥有root权限

    如题。为了避免安装过程中的各种权限问题。

2. 临时关闭防火墙

CentOS 7下的方法为:systemctl stop firewalld

3. 放行端口

确保这些端口被放行,这些端口是Cloudera CDH中要用到的。

4. 设置SELinux的模式

  1. 检查SELinux当前状态:getenforce
  2. 如果输出为PermissiveDisabled,那么就可以不用设置SELinux的模式了。如果输出是enforcing,就接着做下一步;
  3. vim /etc/selinux/config (有些系统里是 /etc/sysconfig/selinux);
  4. 将 SELINUX=enforcing 修改为 SELINUX=permissive,保存并退出;
  5. 输入 setenforce 0,使设置立即生效。

5. 配置NTP服务

集群中各机器都要配。这是配置步骤

6. 安装python 2.7

必须是python2.7版本,CentOS 7 系统可以不用装,系统自带的。

7. JDK安装(必看!)

1. 必须是JDK 8 64位!JDK 8以下的版本以及JDK 9均不支持,并且不是所有的JDK 8版本都完美支持。详情如下图,必须用下图所示的JDK版本。(具体可参考:Java Requirements

宿主机转发的kvm 问题 专用宿主机cdh_大数据

2. JDK的路径必须是:/usr/java/jdk-version。比如,我用的是jdk1.8.0_162,安装路径为:/usr/java/jdk1.8.0_162。

3. 集群中所有机器的JDK版本与安装路径必须都相同

8. 安装 Cloudera Manager Server

请在Cloudera Manager Server host上进行安装。CentOS下,yum的安装命令为

yum -y install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

其他系统的安装命令请参考:Install Cloudera Manager Server

9. 安装 & 配置数据库

该数据库是用来给CDH Services用的。可以安装在任何一台服务器上,为了方便,我将数据库装在了Cloudera Manager Server host上。

CDH6支持这些数据库。我用的是MySQL 5.7,安装与配置都是围绕MySQL 5.7展开的。

 

1. 安装MySQL 5.7

 

2. 在my.cnf中追加如下配置,并重启mysql服务。(修改配置前请先备份)

[mysqld]

 

init_connect='SET NAMES utf8'

transaction-isolation = READ-COMMITTED

max_connections = 888

 

# 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

 

3. 执行命令 /usr/bin/mysql_secure_installation,并按如下图所示进行配置

宿主机转发的kvm 问题 专用宿主机cdh_CDH 6.0_02

4. 安装 MySQL JDBC Driver

集群上每个节点都要装!官方只推荐使用5.1版本的 JDBC Driver。下载地址:http://www.mysql.com/downloads/connector/j/5.1.html。安装步骤如下图:

宿主机转发的kvm 问题 专用宿主机cdh_宿主机转发的kvm 问题_03

 

5. 登录MySQL,创建CDH Service所需的数据库。命令如下:

#Create databases for each service you are using from the below table:

mysql> CREATE DATABASE <database> DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

 

mysql> GRANT ALL ON <database>.* TO '<user>'@'%' IDENTIFIED BY '<password>';

各Service所需的库如下图,其中库名和user名可以自定义,但自己必须记住。(建议库名使用图中所示的,user名可以自定义,并且可以相同)

宿主机转发的kvm 问题 专用宿主机cdh_CDH 6.0_04

执行以下命令,确认数据库和对应的用户权限是否正确创建。

#Confirm that you have created all of the databases:

mysql> SHOW DATABASES;

 

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

mysql> SHOW GRANTS FOR '<user>'@'%';

 

6. 初始化Cloudera Manager Database

执行以下命令进行初始化:

#命令解释:/opt/cloudera/cm/schema/scm_prepare_database.sh 数据库类型 数据库名 用户名

#Cloudera Manager Database默认名为scm,默认用户名为scm (具体请以你建库时的设计为准)。

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm

该命令是当数据库和Cloudera Manager Server装在同一个节点上时,在该节点上执行使用的。其他部署情况以及脚本的详细使用方法请参考:https://www.cloudera.com/documentation/enterprise/6/6.0/topics/prepare_cm_database.html

10. 启动Cloudera Manager Server,安装集群。

systemctl start cloudera-scm-server

启动成功后,登录 http://<server_host>:7180,用户名为admin,密码为admin。

根据Web UI上的提示安装集群。

四、参考文献

1. 官方文档