一、系统环境准备
本文档以安装 3 个节点为例,
主节点 6G 内存(c1,服务端+Agent 客户端),其他各 1G 内存(c2/c3,Agent 客户端)
CDH 系统要求的安装文档参考下面链接,(CDH 在管理节点尽量分配或使用更多内存)
https://www.cloudera.com/documentation/enterprise/release-
notes/topics/rn_consolidated_pcm.html#cm_cdh_compatibility
- 选择最小化安装 CentOS 6.8 x64
基本工具安装: wget, openssh-clients(须所有节点都安装,可安装后再克隆虚拟机), etc
网络设置
(1) 每一台节点机器关闭 selinux
Setenforce 0
vi /etc/selinux/config
SELINUX=disable
(2) 在每一台节点机器关闭 iptables
iptables -F
chkconfig iptables off
(3) Hostname 设置,以设置“c1”为例:
hostname c1
vi /etc/sysconfig/network
c1
设置/etc/hosts 文件
vi /etc/hosts
192.168.106.148
192.168.106.149
192.168.106.150
c1
c2
c3
(4) 为 c1 去每一天节点机器设置免密码登录
ssh-keygen -t rsa –P ‘’
ssh-copy-id localhost
ssh-copy-id c1
ssh-copy-id c2
ssh-copy-id c3
(5) 复制/etc/hosts 到其他节点
scp /etc/hosts c2:/etc/hosts
scp /etc/hosts c3:/etc/hosts
2. JDK installation and configuration and Other software dependencies
CDH 5.4.x is supported with the versions shown in the following table:
Mimimal
1.7.0_55
1.8.0_31
Recommend
1.7.0_67 1.7.0_75
1.8.0_31
Notes
None
Recommend NOT use JDK
1.8_40 and JDK 1.8_60
JDK8 download url:
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
(1) 在每一台节点机器上都装 jdk
rpm -ivh jdk-8u131-linux-x64.rpm
(2) 在每一台节点机器上都设置好环境变量 JAVA_HOME
vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_131
shell> source /etc/profile
(3) 安装其他软件依赖在每一台机器(可安装后再一台后克隆到其他节点)
yum install –y chkconfig bind-utils psmisc libxslt zlib sqlite cyrus-
sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
二、CM 安装和运行
- CM 5.4.1 的下载地址 http://archive.cloudera.com/cm5/cm/5/
https://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.4.1_x86_64.tar.gz
下载完成后解压到目录
mkdir /opt/cloudera-manager/
tar zxvf cloudera-manager-el6-cm5.4.1_x86_64.tar.gz –C /opt/cloudera-
manager - 安装 Cloudera Manager 服务端和 Agents 客户端
(1) 在每一台节点机器都创建用户 cloudera-scm,
useradd --system --home=/opt/cloudera-manager/cm-5.4.1/run/cloudera-scm-
server --no-create-home --shell=/bin/false --comment “Cloudera SCM User”
cloudera-scm
(2) 创建 CM 的本地数据目录
mkdir /var/log/cloudera-scm-server
chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-server
(3) 配置 CM 的 Agents 客户端配置,并复制 CM 到其他节点
vi /opt/cloudera-manager/cm-5.4.1/etc/cloudera-scm-agent/config.ini
#更改 cm的 server地址,原为:server_host=localhost,改为:
server_host=cdh01
scp -r /opt/cloudera-manager/ cdh02:/opt
scp -r /opt/cloudera-manager/ cdh03:/opt - 为 Cloudera Manager 服务端设置数据库
为了 CM 的服务端准备一个外部的数据库,比如 MySQL,Oracle,PG
(1) 确定想要安装的 MySQL 版本,5.1,5.5,5.6 都支持,命令以 5.1 为例
yum install –y mysql mysql-server mysql-libs
chkconfig mysqld on
(2) 关闭 MySQL 数据库,如果已经启动
service mysqld stop
(3) 如果你的机器是生产环境机器已经有很多 MySQL 的日志,那要先把旧的 InnoDB 的数据
库日志移动出/var/lib/mysql 目录
(4) 确定 MySQL 的配置选项文件,通常为/etc/my.cnf 并设置成 CM 使用
范例文件:
[mysqld]
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
For MySQL version 5.1.8 or later. Comment out binlog_format for
older versions.
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
(5) 启动 MySQL 数据库并设置数据库 root 密码为’robbin’
service mysqld start
mysqladmin –u root password ‘robbin’
(6) 安装 MySQL JDBC, 官方下载链接:
http://www.mysql.com/downloads/connector/j/5.1.html
tar zxvf mysql-connector-java-5.1.43.tar.gz
mkdir -p /usr/share/java
cp mysql-connector-java-5.1.43/mysql-connector-java-5.1.43-bin.jar
/usr/share/java/mysql-connector-java.jar
(7) 为 CM 的数据库配置设置一个 temp 用户:
mysql> grant all
on . to ‘temp’@‘c1’ identified by ‘temp’ with grant option;
mysql> flush privileges;
(8) 用 CM 的脚本创建 CM 使用的数据库
脚本的语法:
scm_prepare_database.sh database-type [options] database-name username
password
命令如下:
/opt/cloudera-manager/cm-5.4.1/share/cmf/schema/scm_prepare_database.sh
mysql -h c1 -utemp -ptemp --scm-host c1 scm scm scm
(9) 安全相关:数据库设置成功后,可删除超级用户 temp
mysql> drop user ‘temp’@’c1’;
4. 创建本地软件仓库
(1) 给 CM 创建一个本地的软件包仓库,并设置目录权限给 CM 用户
mkdir –p /opt/cloudera/parcel-repo
chown –R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
(2) 在每一节点机器上都创建软件包仓库并 chown
(3) CDH 本地目录的建立和软件包的下载
CDH 官网软件包地址: http://archive.cloudera.com/cdh5/parcels/5.4.1/
选择相应平台的软件包和 manifest.json 及.sha1 文件并 mv to 仓库目录
/opt/cloudera/parcel-repo
mv CDH-5.4.1-1.cdh5.4.1.p0.6-el6.parcel CDH-5.4.1-1.cdh5.4.1.p0.6-
el6.parcel.sha1 manifest.json /opt/cloudera/parcel-repo/
cd /opt/cloudera/parcel-repo
mv CDH-5.4.1-1.cdh5.4.1.p0.6-el6.parcel.sha1 CDH-5.4.1-1.cdh5.4.1.p0.6-
el6.parcel.sha
- 开启 CM 服务端程序
(1) 使用 root 用户开启服务
/opt/cloudera-manager/cm-5.4.1/etc/init.d/cloudera-scm-server start
使用 cloudera-scm 用户开启服务
chown -R cloudera-scm:cloudera-scm /opt/cloudera-manager
sudo –u cloudera-scm /opt/cloudera-manager/cm-5.4.1/etc/init.d/cloudera-
scm-server start
(2) 设置服务器启动时自动启动 CM 的服务端
cp /opt/cloudera-manager/cm-5.4.1/etc/init.d/cloudera-scm-server
/etc/init.d/cloudera-scm-server
chkconfig cloudera-scm-server on
vi /etc/init.d/cloudera-scm-server
#注释:查找 CMF_DEFAULTS然后注释原有该变量相关内容,然后键入下面内容
CMF_DEFAULTS=/opt/cloudera-manager/cm-5.4.1/etc/default - 开启 CM 的 Agent 端程序
(1) 在所有 Agent 节点机器都启动 agent 程序:
#在所有节点运行
/opt/cloudera-manager/cm-5.4.1/etc/init.d/cloudera-scm-agent start
(2) 设置服务器重启后自启动,以 cdh01 为例
cp /opt/cloudera-manager/cm-5.4.1/etc/init.d/cloudera-scm-agent
/etc/init.d/cloudera-scm-agent
chkconfig cloudera-scm-agent on
(3) 编辑相关脚本,以 cdh01 为例
vi /etc/init.d/cloudera-scm-agent
#注释:查找 CMF_DEFAULTS然后注释原有该变量相关内容,然后键入下面内容
CMF_DEFAULTS=/opt/cloudera-manager/cm-5.4.1/etc/default
(4) 复制 cdh01 的自启动脚本到所有节点,并更改目录权限
ssh cdh02 chown –R cloudera-scm.cloudera-scm /opt/cloudera-manager
ssh cdh03 chown -R cloudera-scm.cloudera-scm /opt/cloudera-manager
scp /etc/init.d/cloudera-scm-* cdh02:/etc/init.d
ssh cdh02 chkconfig cloudera-scm-agent on
scp /etc/init.d/cloudera-scm-* cdh03:/etc/init.d
ssh cdh03 chkconfig cloudera-scm-agent on
(5) 在其他节点也都开启 CM 的 Agent 客户端服务
ssh cdh02 service cloudera-scm-agent start
ssh cdh03 service cloudera-scm-agent start
7. CDH 登录,缺省在 7180 端口
http://192.168.106.151:7180
缺省用户名和密码: admin/admin
8. 其他设置
内核参数设置(在每一台节点服务器设置)
sysctl vm.swappiness=10
vi /etc/sysctl.conf
#cdh文档中的设置 vm.swappiness = 0,此处建议设为 10
vm.swappiness = 10
ssh cdh02 sysctl vm.swappiness=10
ssh cdh03 sysctl vm.swappiness=10
scp /etc/sysctl.conf cdh02:/etc
scp /etc/sysctl.conf cdh03:/etc
三、CM 初始化配置
-
在用 admin/admin 登录及选择版本(免费版已经够用,这里以试用版为例)后来到下
图页面: -
来到下图页面,若配置正常则可看到已经启动 Agent 客户端的节点,点击红框标识的选
项: -
得到下图页面,点击红框选项,勾选所有节点主机:
-
得到下图,此时若之前 Parcel 仓库正确则会出现红框内容,若不正确则在后台终端按
步骤二.4 配置,并重启 server 端程序: -
来到下图,配置程序向各节点发送软件包:
-
软件包分发完之后,初始配置程序会对所有需要的配置进行总检查
此时若配置不正确,可在后台终端继续配置完成,并点击如下图的“重新运行” -
上图点击完成,即可选择需要安装的核心组件,这里只选择 Hadoop 以节省内存,其他
需要的组件可在安装完成后再自行添加 -
“继续”后,需要为每一个服务配置相应运行的节点
如下图,可点击红框处,可配置 secondary namenode 到 cdh02
点击下图红框可更改 DataNode 的节点:
点击下图红框可更改 NodeManager 的节点:
点击下图红框可更改 Zookeeper 的节点,注意 zookeeper 节点数必须单数
- 点击确定及继续后,来到数据库设置,如下图页面,
在此页面分别填写安装这些组件需要用到的数据库名(此时这些数据库还未创建)及其他内
容,用户名密码可使用下面命令:
mysqladmin -u root -h cdh01 password ‘hadoop’
创建(密码若已经创建则无需再建):
在后台终端创建数据库的命令:
-
设置集群各组件配置(都可缺省)
-
配置程序为每个组件初始化设置及启动,并最终“安装完成”!
-
完成后会进入 CM 的主页,下图红框内即为各种服务组件
-
可点击红色方框“添加服务”为集群添加组件等设置,红色圆框管理单个服务