环境
| 名称 | 版本 |
|---|---|
| 操作系统 | CentOS 6.5 |
| java | jdk1.8 |
| cloudera-management | cloudera-manager-el6-cm5.7.1 |
| CDH | 5.7.1 |
前期准备
在启动CDH之前,请确认以下工作都已完成
-
软件包预安装(包含主机和从机)
# 安装所需的包和库文件yum groupinstall -y 'Development Tools'yum install -y numactl* libxslt* zlib* openssl* sqlite* net-tools ntp psmisc tree vim -
关闭防火墙(包含主机和从机)
# 关闭防火墙service iptables stop# 关闭防火墙开机自启动chkconfig iptables off# 查看iptables所有项是否为offchkconfig --list iptables -
配置hosts(包含主机和从机)
# 编辑hosts文件vi /etc/hosts# 在行尾根据实际情况添加如下内容例如,我有一台主机(master)和三台从机(slave1,slave2,slave3)172.23.1.61 master172.23.1.62 slave1172.23.1.63 slave2172.23.1.64 slave3 -
关闭selinux(包含主机和从机)
# 编辑config文件vi /etc/selinux/config# 修改SELINUX的值SELINUX=enforcing ===> SELINUX=disabled -
禁用大页面和修改内存交换值(包含主机和从机)
- 禁用大页面
# 编辑开机自启动文件rc.localvi /etc/rc.d/rc.local# 在行尾写入如下内容echo never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag# 需知CentOS7中rc.local的权限被降低了,需要手动修改文件的权限,否则开机后命令不生效chmod +x /etc/rc.d/rc.local- 修改内存交换值
# 需知CentOS6和CentOS7修改的方法是不一样的# CentOS6vi /etc/sysctl.conf在行尾写入如下内容vm.swappiness=0# CentOS7vi /usr/lib/tuned/virtual-guest/tuned.conf修改vm.swappiness的值vm.swappiness = 30 ===> vm.swappiness = 0# 备注find / -name *.conf -type f -exec grep "vm.swappiness" {} + -
重启系统,检查防火墙/hosts/selinux/大页面/内存交换是否生效(包含主机和从机)
# 防火墙[root@master ~]# service iptables statusiptables: Firewall is not running.# selinux[root@master ~]# sestatusSELinux status: disabled# hosts[root@master ~]# <=== '@'后面变为对应的master/slave1/slave2/...即可# 大页面[root@master ~]# cat /sys/kernel/mm/transparent_hugepage/enabledalways madvise [never][root@master ~]# cat /sys/kernel/mm/transparent_hugepage/defragalways madvise [never]# 内存交换[root@master ~]# cat /proc/sys/vm/swappiness0 -
配置ssh无密钥连接(包含主机和从机)
# 生成ssh密钥,[root@localhost ~]# ssh-keygen -t rsa输入如上命令,然后按三次回车Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa):Created directory '/root/.ssh'.Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:93:d0:41:c9:b8:41:4d:88:01:c7:c2:f4:7e:25:4a:86 root@localhost.localdomainThe key's randomart image is:+--[ RSA 2048]----+| oooo+.B+. || o+o +.+. || E.+ ooo || + ..+ . || o . S || . . || || || |+-----------------+# 将公钥复制到本机和其他主机[root@master ~]# ssh-copy-id slave1如上命令需要对集群中的所有主机名执行一次,包含本身The authenticity of host 'master (172.23.1.65)' can't be established.RSA key fingerprint is 10:01:b9:60:ba:84:d1:fe:d5:34:70:a4:a0:34:d2:6a.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'master,172.23.1.65' (RSA) to the list of known hosts.root@master's password:Now try logging into the machine, with "ssh 'master'", and check in:.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.# 测试无密连接[root@master ~]# ssh slave1Last login: Tue Feb 27 15:21:34 2018 from 172.21.1.201# Ctrl+D退出ssh连接[root@slave1 ~]# logoutConnection to slave1 closed.如上操作需要在所有主机之间进行验证 -
配置jdk环境变量(包含主机和从机)
cm默认回去
/usr/java目录寻找jdk,如果如果不存在,则新建一个,然后将jdk解压到该文件夹# 配置环境变量vi /etc/profile# 在行尾写入如下内容export JAVA_HOME=/usr/java/jdk1.8.0_152/export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport PATH=$PATH:$JAVA_HOME/bin# 使环境变量生效source /etc/profile# 测试java是否配置成功[root@master ~]# java -versionjava version "1.8.0_152"Java(TM) SE Runtime Environment (build 1.8.0_152-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode) -
安装mysql(主机)
安装mysql之前检查之前是否安装有mysql
rpm -qa|grep mysql # 查看是否有mysql包
rpm -e --nodeps mysql-libs # 删除该包(例,centos7为mariadb-libs)
mysql6.5基础所需的包为
client/devel/server,将三个包放一起然后执行以下命令rpm -ivh MySQL-*
启动mysql
service mysql start
安装完成后用初始的随机密码登录并修改密码,初始的随即密码保存在
/root/.mysql_secretmysql -uroot -pyZ3PplFeSgK8dTHV # 用初始密码登录(例)
set password=password('ceshi123'); # 修改初始密码
退出后重新进入mysql并执行以下命令
use mysql # 切换到mysql数据库
update user set password=password('ceshi123') where user='root'; # 设置所有'root'账户的密码 update user set host='%' where user='root' and host='localhost'; # 开启远程连接
update user set password_expired='N' where user='root'; # 设置密码永不过期
flush privileges; # 使以上修改生效
提前建立
oozie和hive的数据库create database oozie;
create database hive;
-
文件解压(主机)
解压
cloudera-manager-el6-cm5.7.1_x86_64.tar.gz到/opt目录 -
编辑config文件(主机)
编辑
/opt/cm-5.7.1/etc/cloudera-scm-agent/config.ini文件,按如下内容进行修改server_host=localhost ===> server_host=master
-
复制mysql-connector(主机)
将
mysql-connector-java-5.1.45-bin.jar文件复制到/opt/cm-5.7.1/share/cmf/lib/目录 -
新建用户(包含主机和从机))
sudo useradd --system --home=/opt/cm-5.7.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm -
初始化数据库(需要jdbc)(主机)
/opt/cm-5.7.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -pceshi123 --scm-host localhost scm scm scm注:出现'log4j'报错可以忽略复制文件到从机(主机) -
scp -r /opt/* slave1:/opt # 将opt目录下的所有文件复制到从机,如有多台从机则依次执行
scp -r /usr/java slave1:/usr/ # 将java复制到从机上,如有多台从机则依次执行
scp /etc/profile slave1:/etc/ # 将配置文件复制到从机上,如有多台从机则依次执行
复制完成后执行
source /etc/profile -
提升读写权限(主机)
将
/var/lib目录赋予其他用户读写的权限chmod o+w -R /var/lib/
-
配置ntp服务器(包含主机和从机)
-
ntp安装
yum install -y ntp # 安装ntp
chkconfig --add ntpd # 添加ntpd服务到启动项
chkconfig ntpd on # 设置ntpd开机启动
-
ntp配置
vi /etc/ntp.conf # 编辑ntp配置文件,并修改如下内容
-
主机配置
# Hosts on local network are less restricted.# 允许内网其他机器同步时间restrict 192.168.18.0 mask 255.255.255.0 nomodify notrap# Use public servers from the pool.ntp.org project.# 配置ntp服务器server ntp1.aliyun.comserver ntp2.aliyun.comserver ntp3.aliyun.comserver ntp4.aliyun.comserver ntp5.aliyun.com# allow update time by the upper server# 允许上层时间服务器主动修改本机时间restrict ntp1.aliyun.com nomodify notrap noqueryrestrict ntp2.aliyun.com nomodify notrap noqueryrestrict ntp3.aliyun.com nomodify notrap noquery# 外部时间服务器不可用时,以本地时间作为时间服务server 127.127.1.0 # local clockfudge 127.127.1.0 stratum 10 -
从机配置
# 配置ntp服务器的ipserver 192.168.18.90# 允许上层服务器主动修改本机时间restrict 192.168.18.90 nomodify notrap noquery# 外部服务器不可用时,以本地时间作为时间服务server 127.127.1.0 # local clockfudge 127.127.1.0 stratum 10
-
-
-
判断ntpd同步(通常ntpd自动同步需要5-30分钟不等的时间)
-
主机测试
如果ntp server出现ip地址,则同步成功
[root@master ~]# ntpstatsynchronised to NTP server (120.25.115.19) at stratum 3time correct to within 41 mspolling server every 1024 s从机测试 -
如果ntp server出现主机的ip地址,则同步成功
[root@slave1 ~]# ntpstatsynchronised to NTP server (172.23.1.61) at stratum 4time correct to within 57 mspolling server every 1024 s
ntp相关操作
service ntpd start/stop/restart # 启动/停止/重新启动ntpd服务
ntpstat # 查看当前ntpd同步状态
ntpdate -u ntp1.aliyun.com # 手动同步时间
hwclock -w # 手动同步时间后写入硬件
-
-
放入cloudera版本文件(主机)
将如下三个文件放入
/opt/cloudera/parcel-repo文件夹中CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel
CDH-5.7.1-1.cdh5.7.1.p0.11-el6.parcel.sha
manifest.json
-
启动master和slaves
-
主机需要启动
agent和server/opt/cm-5.7.1/etc/init.d/cloudera-scm-server start
/opt/cm-5.7.1/etc/init.d/cloudera-scm-agent start
-
从机只需要启动
agent/opt/cm-5.7.1/etc/init.d/cloudera-scm-agent start
-
-
检查7180端口是否启动(主机)
[root@master CDH-CentOS6-5.7.1]# netstat -nutlp|grep 7180tcp 0 0 0.0.0.0:7180 0.0.0.0:* LISTEN 1669/java如果出现如上内容的话,就可以打开浏览器进入安装页面了,如
172.23.1.60:7180
网页配置
- 主界面,帐号
admin,密码admin
-
- 协议,勾选同意,点击继续
- 版本选择,选择免费,点击继续
- 点击继续

- 勾选创建的有主机,点击继续
- 选择版本,选择我们5.7.1的版本,点击继续
- 安装,解压,激活过程,完成后点击继续

-
添加mysql连接使用的jar包
回到后台,将
mysql-connector-java-5.1.45-bin.jar包复制到以下两个路径/var/lib/oozie
/opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/hive/lib/
-
安全检查,点击继续

- 选择需要安装的服务,根据实际需求进行选择,这里我们选择全部,点击继续

- 选择每台主机对应的角色,这里我们保持默认,点击继续

- 为hive和oozie选择对应的数据库,因为之前我们提前创建了这两个数据库,所有这里填写mysql数据库的帐号密码即可,输入完成后可以点击测试连接进行验证,验证通过后,点击继续

- 服务参数配置界面,保持默认即可,点击继续

- 安装界面,这里过程比较久,等它自动跑完所有选择即可,完成后点击继续

- 下图就是安装完成后cloudera manager的主界面,关于cloudera如何使用会在后续文档中逐渐补充

参考网站
https://www.cloudera.com/documentation/enterprise/5-7-x.html # 官方5.7.1参考文档
http://archive.cloudera.com/cdh5/parcels/latest/ # CDH-parcels安装包下载地址
http://archive.cloudera.com/cm5/cm/5/ # cm安装包下载地址
浙公网安备 33010602011771号