一、准备环境
1. 安装环境
系统配置:
系统:centos 7 最小安装版 64位
内存:20G 20G 20G
三台机器组成小集群(物理机)
DEV1 DEV2 DEV3
2. 需要下载的安装包
o cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz
o CDH相关
· CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel
· CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1
o mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
o mysql-connector-java-5.1.46.tar.gz
二、环境配置
1. 基本配置(所有节点)
配置好网络环境。
修改 /etc/hostname
DEV1
修改 /etc/hosts
此处一定要注意,不要按照网上有的说明,将127.0.0.1那一行里的localhost.localdomain改成主机名称,在安装Cloudera Agent的时候会识别不出名称和IP。
192.168.56.105 DEV1
192.168.56.106 DEV2
192.168.56.107 DEV3
修改 /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=DEV1
2. Java环境(所有节点)
下载jdk-8u161-linux-x64.tar.gz
解压到/usr/java(可根据个人习惯创建目录)
tar xzvf jdk-8u161-linux-x64.tar.gz
配置环境变量
[root@DEV1 .ssh]# vim /etc/profile #在文件末尾添加下面三行
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[root@DEV1 .ssh]# source /etc/profile #使生效
3. SSH无密码登录(集群内节点能够互相无密码访问)
思路:第一台机器配置authorized_keys,scp到第二台机器,将第二台机器的公钥添加到authorized_keys,然后将其scp到第三台,以此类推,直到配置到最后一台机器,将最后一台机器的authorized_keys scp到所有节点,如下
1)在主节点(DEV1)执行
[root@DEV1 .ssh]# ssh-keygen -t rsa
[root@DEV1 .ssh]# cat id_rsa.pub >> authorized_keys
[root@DEV1 .ssh]# chmod 600 authorized_keys
[root@DEV1 .ssh]# scp authorized_keys root@DEV2:~/.ssh
2)在DEV2执行
[root@DEV2 .ssh]# ssh-keygen -t rsa
[root@DEV2 .ssh]# cat id_rsa.pub >> authorized_keys
[root@DEV2 .ssh]# chmod 600 authorized_keys
[root@DEV2 .ssh]# scp authorized_keys root@DEV3:~/.ssh
3)在DEV3执行
[root@DEV3 .ssh]# ssh-keygen -t rsa
[root@DEV3 .ssh]# cat id_rsa.pub >> authorized_keys
[root@DEV3 .ssh]# chmod 600 authorized_keys
[root@DEV3 .ssh]# scp authorized_keys root@DEV1:~/.ssh
[root@DEV3 .ssh]# scp authorized_keys root@DEV2:~/.ssh
4. 关闭防火墙(所有节点)
centos 7 默认使用的是firewall,不是iptables
systemctl stop firewalld.service
systemctl mask firewalld.service
5. 关闭SELinux(所有节点)
[root@DEV1 .ssh]# vim/etc/selinux/config
设置SELINUX=disabled
6. 配置NTP服务(所有节点)
安装
[root@DEV1 .ssh]# yum install ntp
设置开机启动
[root@DEV1 .ssh]# chkconfig ntpd on
服务启动
[root@DEV1 .ssh]# service ntpd start
7. 所有节点上创建用户(所有节点)
useradd --system--home=/opt/cm-5.14.0/run/cloudera-scm-server/ --no-create-home--shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
8. 安装MySQL(主节点安装即可)
(1)卸载mariadb
此处需要注意的是centos 7 默认安装的是mariadb,如果不卸载直接安装的话会报错,报错信息mariadb-libs is obsoleted by mysql-community-libs-5.7.21-1.el7.x86_64
rpm -qa | grep mariadb #查看安装信息
rpm -e mariadb-libs* --nodeps #根据查找到的软件包信息卸载
(2)安装MySQL(必须按以下顺序安装)
解压 tar -xf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
rpm -ivhmysql-community-common-5.7.21-1.el7.x86_64.rpm
rpm -ivhmysql-community-libs-5.7.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm
rpm -ivhmysql-community-libs-compat-5.7.21-1.el7.x86_64.rpm
(compat解决hue数据库连接不上)
(3)基本设置
service mysqld start #启动服务
cat /var/log/mysqld.log |grep password #查看初始密码
mysql -uroot -p #登录
set password = password('1234');#设置密码
报错:
ERROR 1819 (HY000): Yourpassword does not satisfy the current policy requirements
首先,修改validate_password_policy参数的值
mysql> setglobal validate_password_policy=0;
这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。
validate_password_length参数默认为8,可以设置为其它值,最小4位
mysql> setglobal validate_password_length=1;
mysql> setpassword = password('1234');
Query OK, 0 rows affected,1 warning (0.00 sec)
#授权用户root使用密码passwd从任意主机连接到mysql服务器
GRANT ALL PRIVILEGES ON *.* TO 'root'@'主机名' IDENTIFIED BY 'mysql密码' WITH GRANT OPTION;
flush privileges;
(4)建数据库(用于后边组件安装)
create database hiveDEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
三、安装
1. 安装Cloudera Manager Server 和Agent
(1)解压
将下载好的cloudera-manager-centos7-cm5.13.0_x86_64.tar.gz解压到主节点的/opt/,解压出来的文件夹为cloudera与cm-4.13.0
(2)为Cloudera Manager建立数据库
将前边下载好的mysql-connector-java-5.1.46.tar.gz解压,找到文件夹中的
mysql-connector-java-5.1.45-bin.jar
cpmysql-connector-java-5.1.45-bin.jar /opt/cm-5.14.0/share/cmf/lib/
cp mysql-connector-java-5.1.45-bin.jar /usr/java/
/opt/cm-5.14.0/share/cmf/schema/scm_prepare_database.shmysql -uroot -p scm scm
(3)配置Agent
vim /opt/cm-5.14.0/etc/cloudera-scm-agent/config.ini
server_host=DEV1
#拷贝到其他节点
[root@DEV1]# scp -r /opt/cm-5.14.0/ root@DEV2:/opt/
[root@DEV1]# scp -r /opt/cm-5.14.0/ root@DEV3:/opt/
(4)准备parcels
将CDH相关文件拷贝到主节点/opt/cloudera/parcel-repo/
#相关文件
CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel
CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1
manifest.json
需要将CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1改成CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha,否则安装时会重新下载,很重要!!
[root@DEV1]# mv CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha1CDH-5.14.0-1.cdh5.14.0.p0.24-el7.parcel.sha
(5)启动
#主节点
/opt/cm-5.14.0/etc/init.d/cloudera-scm-server start
#主节点及其他节点
/opt/cm-5.14.0/etc/init.d/cloudera-scm-agent start
启动需要点时间,可以查看数据库scm中的HOSTS表,如果里面出现节点信息表示server启动完成
2. 安装hadoop集群:
1.登录主界面
登录主节点IP的7180端口,默认登录用户名和密码都是admin
2.选择安装版本
3.为CDH群集安装指定主机
4.集群安装
5.主机检查
第一个警告直接在所有节点上执行echo 10 > /proc/sys/vm/swappiness
第二个警告按照上面的说明,在所有节点上执行这两条命令
echo never >/sys/kernel/mm/transparent_hugepage/defrag >> /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/enabled>> /etc/rc.local
6.集群设置
服务配置,保持默认就可以(Cloudera Manager会根据机器的配置自动进行配置)
数据库设置
审查更改(默认即可)
开始安装
此处hive ,oozie会安装失败,失败信息如下。因为我们使用了MySQL作为hive元数据存储,需要将mysql驱动拷贝到hive和oozie目录下。(所有节点)
cp /opt/cm-5.14.0/share/cmf/lib/mysql-connector-java-5.1.45-bin.jar/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/hive/lib/
cp /opt/cm-5.14.0/share/cmf/lib/mysql-connector-java-5.1.45-bin.jar/var/lib/oozie/
安装完成
错误解决:
1、pstree: command not found
#/opt/cm-5.7.0/etc/init.d/cloudera-scm-server start
/opt/cm-5.7.0/etc/init.d/cloudera-scm-server: line 109:pstree: command not found
Starting cloudera-scm-server: [FAILED]
# /opt/cm-5.7.0/etc/init.d/cloudera-scm-agent start
/opt/cm-5.7.0/etc/init.d/cloudera-scm-agent: line 108:pstree: command not found
Starting cloudera-scm-agent: [FAILED]
因为系统是最小化安装,默认没有安装
解决方法
# yum-y install psmisc
2.中途安装失败,重新安装
关闭所有服务
#主节点
[root@DEV1 opt]# /opt/cm-5.14.0/etc/init.d/cloudera-scm-server stop
#主节点及其他节点
[root@DEV1 opt]# /opt/cm-5.14.0/etc/init.d/cloudera-scm-agent stop
删除agent uuid
rm -rf /opt/cm-5.14.0/lib/cloudera-scm-agent/*
删除数据库scm
重新配置数据库
/opt/cm-5.14.0/share/cmf/schema/scm_prepare_database.shmysql -hlocalhost -uroot -p scm scm
启动Cloudera server和agent,按照之前步骤安装即可