安装Cloudera Manager(5.12.1)一定要细心,每一步走错都可能造成最终安装失败。
安装Cloudera Manager(5.12.1)一定要硬件资源充足。
本示例参考了众多网上资料(放在文末),消耗了1000根白发终于肝出了这篇文章。
安装包放在了文末,按需下载。
本次安装共分为四章,可自行查看。
一、安装cloudera manager
二、安装CDH和集群
三、常见的问题
四、卸载重装
步骤分解
-
-
-
- 开始
- 设置固定IP(all)
- 关闭防火墙(all)
- 关闭selinux(all)
- 设置主机名(all)
- 免密(all)
- 时间工具ntp(all)
- ntp同步(server)
- ntp同步(agent)
- 安装jdk1.8(all)
- 安装mysql5.6(server)
- 创建scm用户可库(server)
- 安装java-mysql驱动(all)
- 开始安装cloudera-manager及CDH@@@@@@@@@@@@@@@@@@@@@@@@@@
- 解压cloudera-manager(all)
- 创建系统用户cloudera-scm(all)
- 创建模板目录,把parcel、sha、json放在此目录(server)
- 创建安装目录(all)
- 创建软连接(all)
- 配置agent的server指向(all)
- 使用CM脚本创建数据库。如果前面sql初始化了scm就不用这一步(server)
- 修改db配置为scm(server)
- 启动(很慢)
- 访问
- 查看启动日志
-
-
开始
共三台服务器,其中119作为server端,119、120、122作为agent端
ip | 主机名 | 系统 | 安装类型 |
---|---|---|---|
192.x.x.119 | cdh119 | centos7.9 | server、agent |
192.x.x.120 | cdh120 | centos7.9 | agent |
192.x.x.122 | cdh122 | centos7.9 | agent |
说明:(all)三个节点都要操作,(server)服务端节点操作,(agent)从节点操作
设置固定IP(all)
关闭防火墙(all)
bash
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
关闭selinux(all)
bash
vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
重启reboot
查看getenforce
设置主机名(all)
bash
不同主机设置不同名,不要闭眼复制
hostnamectl set-hostname cdh119
vim /etc/sysconfig/network 设置HOSTNAME=cdh119
vim /etc/hosts 添加所有节点
192.x.x.119 cdh119
192.x.x.120 cdh120
192.x.x.122 cdh122
免密(all)
生成密钥,分发给其他节点
bash
ssh-keygen -t rsa
ssh-copy-id cdh119(此命令第二步输入提示输入yes/no,请输入yes)
ssh-copy-id cdh120
ssh-copy-id cdh122
时间工具ntp(all)
bash
cd /etc/yum.repos.d
把现有的repo文件全部放在一个备份的文件夹里,防止一会yum更新有失效的url
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache fast
yum install ntp
ntp同步(server)
bash
vim /etc/ntp.conf
注释掉所有的restrict开头的配置
取消下面这一行注释,将ip和掩码改为真实信息:
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
找到server 0.centos.pool.ntp.org iburst,并将所有server配置进行注释
添加下面两行内容
server 127.127.1.0
fudge 127.127.1.0 stratum 10
启动
systemctl restart ntpd
systemctl enable ntpd
查看状态
ntpq -p
ntp同步(agent)
当主节点reach状态到达17后,开始配置从节点
bash
vim /etc/ntp.conf
注释所有restrict和server配置
添加server的IP,保存
server 192.x.x.119
执行手动同步
ntpdate 192.x.x.119
启动
systemctl restart ntpd
systemctl enable ntpd(或者 systemctl enable ntpd.service)
安装jdk1.8(all)
选择Linux x64 rpm版本:我这里选择了jdk1.8.0_121
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html
bash
卸载openjdk
rpm -qa | grep openjdk
rpm -qa | grep openjdk |xargs rpm -e --nodeps
rpm -qa | grep java
rpm -qa | grep java |xargs rpm -e --nodeps
安装oracle jdk
cd /mnt/storage
rpm -ivh jdk-8u121-linux-x64.rpm
添加环境变量 (虽然rpm不需要配环境变量,但保险起见,最好加上)
vim /etc/profile
#java 1.8
export JAVA_HOME=/usr/java/jdk1.8.0_121
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
保存后重载文件
source /etc/profile
查看
java -version
echo $JAVA_HOME
如果tar版安装(一般装在/usr/local/java),后期安装CDH集群会找不到JDK报错,可设置软连接解决此问题
bash
mkdir -p /usr/java/default(CDH寻找JDK的路径)
ln -s /usr/local/java/jdk1.8.0_231/* /usr/java/default/
安装mysql5.6(server)
最好是5.6和Cloudera Manager5.12比较匹配,我第一次装5.7,最后无论怎么配置Cloudera都连不上
这里我修改了mysql数据路径,你也可以不改
bash
卸载mysql和mariadb
rpm -qa|grep -i mysql |xargs rpm -e --nodeps
rpm -qa | grep -i mariadb |xargs rpm -e --nodeps
find / -name mysql
find / -name mariadb
找出来之后 rm -rf 删除
安装mysql5.6
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum -y install mysql-server
修改配置
vim /etc/my.cnf
注释掉 symbolic-links=0
#修改数据路径
datadir=/mnt/storage/mysql/data
#socket=/mnt/storage/mysql/mysql.sock(这个不要修改了,不然下面初始化找不到)
log-error=/mnt/storage/mysql/log/mysqld.log
pid-file=/mnt/storage/mysql/pid/mysqld.pid
#修改字符集
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
保存并授权
cd /mnt/storage/mysql
mkdir data log pid
sudo chown -R mysql:mysql /mnt/storage/mysql
sudo chmod -R 750 /mnt/storage/mysql
启动
systemctl status mysqld
systemctl start mysqld
systemctl enable mysqld
执行初始引导,我这里设置了密码123456,远程连接,删除测试库(不会使用自行查阅)
mysql_secure_installation
设置完后root依然不能远程,手动登录设置(你也可以不设置)
mysql -uroot -p
>mysql:GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
>mysql:FLUSH PRIVILEGES;
此时查看root已经可以远程连接
use mysql;
SELECT User, Host FROM user;
创建scm用户可库(server)
bash
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'scm'@'%' IDENTIFIED BY 'scm';
GRANT ALL PRIVILEGES ON scm.* TO 'scm'@'%';
FLUSH PRIVILEGES;
安装java-mysql驱动(all)
下载地址:https://downloads.mysql.com/archives/c-j/
拷贝到/usr/share/java/下并重命名
有的说是拷贝到clouder安装路径/cm-5.12.1/share/cmf/lib下,我先不用这个路径
bash
cp mysql-connector-java-5.1.38.jar /usr/share/java/mysql-connector-java.jar
开始安装cloudera-manager及CDH@@@@@@@@@@@@@@@@@@@@@@@@@@
解压cloudera-manager(all)
bash
cd /mnt/storage
mkdir cloudera-manager
tar -zxvf cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz -C /mnt/storage/cloudera-manager
创建系统用户cloudera-scm(all)
bash
useradd --system --home=/mnt/storage/cloudera-manager/cm-5.12.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
创建模板目录,把parcel、sha、json放在此目录(server)
bash
mkdir -p /mnt/storage/cloudera/parcel-repo
chown -R cloudera-scm:cloudera-scm /mnt/storage/cloudera/parcel-repo
创建安装目录(all)
bash
mkdir -p /mnt/storage/cloudera/parcels
chown -R cloudera-scm:cloudera-scm /mnt/storage/cloudera/parcels
chown -R cloudera-scm:cloudera-scm /mnt/storage/cloudera-manager
创建软连接(all)
也可以安装好后在界面修改,我这里没有执行这一步
bash
mkdir -p /opt/cloudera/parcel-repo
mkdir -p /opt/cloudera/parcels
rm -rf /opt/cloudera/parcel-repo
ln -s /mnt/storage/cloudera/parcel-repo /opt/cloudera/parcel-repo
rm -rf /opt/cloudera/parcels
ln -s /mnt/storage/cloudera/parcels /opt/cloudera/parcels
配置agent的server指向(all)
bash
vim /mnt/storage/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/config.ini
将server_host修改为server的主机名(cdh119)
使用CM脚本创建数据库。如果前面sql初始化了scm就不用这一步(server)
bash
cd /mnt/storage/cloudera-manager/cm-5.12.1/share/cmf/schema
./scm_prepare_database.sh mysql cm1 -hcdh119 -uroot -p123456 --scm-host cdh119 scm scm scm
修改db配置为scm(server)
bash
cd /mnt/storage/cloudera-manager/cm-5.12.1/etc/cloudera-scm-server
vim db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=cdh119
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.setupType=EXTERNAL
com.cloudera.cmf.db.password=scm
启动(很慢)
bash
/mnt/storage/cloudera-manager/cm-5.12.1/etc/init.d/cloudera-scm-server start(server)
/mnt/storage/cloudera-manager/cm-5.12.1/etc/init.d/cloudera-scm-agent start(agent)
访问
bash
http://192.x.x.119:7180/
admin
admin
查看启动日志
bash
tail -f /mnt/storage/cloudera-manager/cm-5.12.1/log/cloudera-scm-server/cloudera-scm-server.log
tail -f /mnt/storage/cloudera-manager/cm-5.12.1/log/cloudera-scm-agent/cloudera-scm-agent.log
到这里Cloudera Manager算是安装完毕
下一篇文章介绍CDH安装以及常见问题
参考文章 :
https://zhuanlan.zhihu.com/p/137631403
https://segmentfault.com/a/1190000045320282
https://zhuanlan.zhihu.com/p/658822854
https://blog.csdn.net/lukabruce/article/details/80805929
https://cloud.tencent.com/developer/article/2047067
https://developer.aliyun.com/article/879178
https://blog.csdn.net/weixin_40040107/article/details/91454921
安装包 :
https://pan.baidu.com/s/1ljiVVf7DNziL_ImevWcDbA 提取码: qnat