节点:10.201.246.[30-37]
一.安装前准备:
1.提前下载离线安装包
1) cloudera-manager-centos7-cm5.13.2_x86_64.tar.gz
下载地址:http://archive.cloudera.com/cm5/cm/5/
2) mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
3) CDH-5.13.2-1.cdh5.12.2.p0.4-el7.parcel
CDH-5.13.2-1.cdh5.12.2.p0.4-el7.parcel.sha1
manifest.json
下载地址:http://archive.cloudera.com/cdh5/parcels/5.13.2/
4) mysql-connector-java-5.1.38.jar
下载地址:http://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38
5) centos7.3 everything
6) Jdk1.8
2.创建文件夹
主节点 mkdir -p /opt/cloudera-manager
mkdir -p /opt/cloudera/parcel-repo
mkdir -p /opt/mysql
各子节点
mkdir -p /opt/cloudera-manager
mkdir -p /opt/cloudera/parcels
3.上传文件
1) cloudera-manager-centos7-cm5.12.2_x86_64.tar.gz上传到/opt/cloudera-manager
解压tar -xvf cloudera-manager-centos7-cm5.12.2_x86_64.tar.gz
2) 将mysql-community-server-5.7.23-1.el7.x86_64.rpm上传到/opt/mysql,解压
3) 将mysql-connector-java-5.1.38.jar 上传到/opt/cloudera-manager/cm-5.12.2/share/cmf/lib
4) 将CDH-5.12.2-1.cdh5.12.2.p0.4-el7.parcel
CDH-5.12.2-1.cdh5.12.2.p0.4-el7.parcel.sha1
manifest.json
上传到/opt/cloudera/parcel-repo
mv CDH-5.12.2-1.cdh5.12.2.p0.4-el7.parcel.sha1 CDH-5.12.2-1.cdh5.12.2.p0.4-el7.parcel.sha
二.安装环境配置:
1.修改主机名(所有节点)
vi /etc/hostname
如:node30 (建议node+ip)
****修改过后要重启生效 reboot(可放到后边和selinux配置一块重启)****
2.配置网络(所有节点)
vi /etc/sysconfig/network 添加
NETWORKING=yes
HOSTNAME=node30
****systemctl restart network 重启网络服务生效*****
3.关闭防火墙和selinux
1)关闭防火墙
【查看防火墙当前状态:systemctl status firewalld】
【关闭防火墙: systemctl stop firewalld】
【永久关闭防火墙(开机不自启):systemctl disable firewalld】
2)关闭selinux
临时关闭:setenforce 0
修改配置文件vi /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled
查看 SELINUX 状态:
/usr/sbin/sestatus -v
SELinux status: enabled(enabled:开启;disabled:关闭)
重启主机生效。
4.配置ssh免密登录
1)vi /etc/hosts 添加主机间的映射(所有节点)
10.201.246.30 node30
10.201.246.31 node31
10.201.246.32 node32
10.201.246.33 node33
10.201.246.34 node34
10.201.246.35 node35
10.201.246.36 node36
10.201.246.37 node37
2)配置免密登录
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa(主节点)
ssh-copy-id node30 (发送私钥到各个节点包括主节点)
5.配置ntp时间同步
(如果是阿里云服务器不需要配置时间同步,本身已经配好了时间同步)
首先将服务器端时间设置为当前时间
date -s "1990-00-00 00:00:00"
服务器端
1)vi /etc/chrony.conf
# Allow NTP client access from local network.
该行下添加:
allow 10.201.246.32 (需要同步时间的服务器的所有ip)
注释掉该行下所有以 server开头的
添加server 服务端ip iburst
解除下面一行注释
local stratum 10
2)启动chrony
systemctl start chronyd.service
3)设置开机同步时间
systemctl enable chronyd.service
客户端
1)vi /etc/chrony.conf
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
注释掉该行下所有以 server开头的
添加server 服务端ip iburst
2)启动chrony
systemctl start chronyd.service
3)设置开机同步时间
systemctl enable chronyd.service
所有主机刷新一下同步情况:
chronyc sources
三.安装所需组件
1.安装jdk(所有节点)
yum list installed |grep jdk
rpm -qa | grep java
卸载自带的openjdk:
批量卸载所有名字包含jdk的已安装程序。命令行:
rpm -qa | grep java | xargs rpm -e --nodeps
使用rpm -ivh jdk.rpm 安装jdk
2.主节点安装mysql
1) 卸载centos7自带的mariadb
[root@hdmaster mysql]# rpm -qa|grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
mariadb-devel-5.5.56-2.el7.x86_64
[root@hdmaster mysql]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
[root@hdmaster mysql]# rpm -e --nodeps mariadb-devel-5.5.56-2.el7.x86_64
2)解压mysql安装包
tar -xvf mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar
3)安装mysql (一定按照顺序安装)
rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm
4)启动mysql
systemctl start mysqld
开机自启动
systemctl enable mysqld
5)首次进入,先修改my.cnf
vi /etc/my.cnf
# Disable password validaion plugin
validate-password=off
# Disabling symbolic-links is recommended to prevent assorted security risks
skip-grant-tables #添加这句,进入mysql的命令行不需要密码
symbolic-links=0
重启mysql
systemctl restart mysqld
进入mysql 设置密码
mysql –uroot –p
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
#本地shell密码设置
mysql> set password for root@localhost=password('abc135');
Query OK, 0 rows affected, 1 warning (0.00 sec)
#远程访问授权及密码设置
mysql>grant all privileges on *.* to 'root'@'%' identified by 'abc135' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
#生效设置
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
a)创建各服务所用数据库
create database reports DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database sentry DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
b)相应数据库授权
grant all on reports.* to 'reports'@'%' identified by ' abc135';
grant all on oozie.* to 'oozie'@'%' identified by 'abc135';
grant all on hue.* to 'hue'@'%' identified by 'abc135';
grant all on hive.* to 'hive'@'%' identified by 'abc135';
grant all on *.* to 'root'@'%' identified by 'abc135';
grant all on *.* to 'scm'@'%' identified by 'abc135';
grant all on *.* to 'cm'@'%' identified by 'abc135';
c)重启MySQL服务
systemctl restart mysqld
6)密码修改完成,注释掉/etc/my.cnf中
# skip-grant-tables
末尾添加:
validate-password=off
重启mysql
systemctl restart mysqld
3.配置cm agent
1)修改cm配置
vi /opt/cloudera-manager/cm-5.13.2/etc/cloudera-scm-agent/config.ini
修改 server_host=node30 修改为主节点的主机名
2)将cloudera-manager拷贝到各个子节点
scp -r /opt/cloudera-manager/ root@node31:/opt/
3)创建用户 cloudera-scm(所有节点) 执行:
useradd --system --home=/opt/cloudera-manager/cm-5.13.2/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
4)配置 CM Server的数据库
将驱动包拷贝到目录下(注意拷贝过去的驱动包名字一定要和下边的一样,否则会报错) :
cp mysql-connector-java-5.1.38.jar /usr/share/java/mysql-connector-java.jar
5)初始化CM server
/opt/cloudera-manager/cm-5.13.2/share/cmf/schema/scm_prepare_database.sh mysql cm -hnode30 -uroot -pabc135 --scm-host node30 scm scm scm
异常:Access denied for user 'root'@'%'
原因:root权限不够
解决:mysql命令行修改权限
grant all privileges on *.* to 'root'@'%' identified by 'abc135' with grant option;
flush privileges;
set global validate_password_policy=0;
set global validate_password_length=4;
异常:java.sql.SQLException: Your password does not satisfy the current policy requirements
原因:密码验证不通过
解决:修改/etc/my.cnf
添加 validate_password=off
重启mysql
初始化成功会出现 INFO Successfully connected to database
4.创建parcel目录并付权限
Manager 节点创建目录/opt/cloudera/parcel-repo,执行:
mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
Agent 节点创建目录/opt/cloudera/parcels,执行:
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
主节点:
/opt/cloudera-manager/cm-5.13.2/etc/init.d/cloudera-scm-server start
所有节点包括主节点:
/opt/cloudera-manager/cm-5.13.2/etc/init.d/cloudera-scm-agent start
启动成功进7180界面 默认用户名和密码都是admin
四.安装过程报错及调优
继续耐心等待分配资源,时间很长20分钟左右,无错情况下已下载瞬间100%
问题:
删除agent目录下面的cm_guid文件,并重启失败节点的agent服务恢复。
rm -rf /opt/cloudera-manage/cm-5.13.2/lib/cloudera-scm-agent/*
./cloudera-scm-agent restart
需要在每个节点执行
echo 0 > /proc/sys/vm/swappiness
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
重新运行 错误消失
此处可自定义选择安装:HDFS、HIVE、HUE、IMPALA、OOZIE、SOLR、SPARK、YARN、ZOOKEEPER
服务配置,一般情况下保持默认就可以了(Cloudera Manager 会根据机器的配置自动进行配置,如果需要特殊调整,自行进行设置就可以了):
(1)
安装 Hive 、oozie、impala可能会报错,因为使用了MySql 作为元数据存储,默认没有带 mysql 的驱动,拷贝到所有节点该目录下:
/opt/cloudera/parcels/CDH/lib/hive/lib
/opt/cloudera/parcels/CDH/lib/oozie/lib
/opt/cloudera/parcels/CDH/lib/impala/lib
Hue界面刚进去是设置用户名和密码千万别忘了用户名和密码
1.Oozie安装报错
缺少驱动jar包
cp mysql-connector-java-5.1.38.jar /var/lib/oozie
重新运行解决
启用oozie的webUI界面时,显示被禁用需要安装Ext JS
将ext-2.2.zip上传集群目录:/opt/cloudera/parcels/CDH/lib/oozie/libext/
解压赋权:unzip ext-2.2.zip
chown oozie:oozie -R ext-2.2
下载地址:https://download.youkuaiyun.com/download/weixin_42652946/11169333
刷新页面完美解决!
2.hue安装报错
日志报错:ImportError: libxslt.so.1: cannot open shared object file: No such file or directory
对应的库文件缺失:
yum install libxslt
Could not start SASL: Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found
安装相应的包
yum install cyrus-sasl-plain cyrus-sasl-devel cyrus-sasl-gssapi
重启hue
Load Balancer安装报错
缺少库依赖
yum install httpd
yum install mod_ssl
3. Hdfs警告调优
解决: heap把NameNode和SecondaryNameNode的java堆大小改为一致都是4GB
4. Hdfs配置问题
解决方案:调整阀值 >0.8默认值
五.试用版数据治理安装
1.点击试用添加实例
创建nas库并赋权
create database nas DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all on reports.* to 'nas'@'%' identified by 'Wind@135';
创建nms库并赋权
create database nms DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all on reports.* to 'nms'@'%' identified by 'Wind@135';
flush privileges;
添加角色:
2.启动报错解决
日志文件缺少mysql驱动jar包
把驱动jar包拷贝到/usr/share/java 注意版本号
3.启动步骤
用户名和密码和cm界面一样
六.安装失败解决方案
1) 停止agent:cloudera-scm-agent stop
2) 停止server:cloudera-scm-server stop
3) 删除数据库cm: drop database cm;
4) 删除Agent节点nn、dn信息. 若历史数据存在,hdfs格式化将不会成功!
rm -rf /dfs
5) 重新初始化CM数据库
/opt/cloudera-manager/cm-5.13.2/share/cmf/schema/scm_prepare_database.sh mysql cm -hnode30 -uroot -pabc135 --scm-host node30 scm scm scm
6)清空所有节点agent数据
rm -rf /opt/cloudera-manager/cm-5.13.2/lib/cloudera-scm-agent/*
7)检查/opt/cm-5.14.2/run目录---------可有可无,重启会自动删除,删除不掉,再手动执行!!
是否有cloudera-scm-server.pid文件,存在删除, 由于正常服务停止时,会自动删除
有种可能是服务cloudera-scm-server启动一段时间自己挂掉。
8) Cloudaremanage卸载不干净:删除/var/lib下的cloudera*文件夹,启动成功;删除/var/log/cloudera-scm-firehose(权限不够)下的文件启动成功。
9) 重启CM服务
cloudera-scm-server restart
cloudera-scm-agent restart