一、环境准备
1.1硬件:centos7.6
2.1软件:
jdk1.8
mysql5.7
MySQL JDBC jar
cm6.3.1
连接:https://archive.cloudera.com/cm6/6.3.1/repo-as-tarball/cm6.3.1-redhat7.tar.gz
Parcel:
https://archive.cloudera.com/cdh6/6.3.1/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel https://archive.cloudera.com/cdh6/6.3.1/parcels/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1 https://archive.cloudera.com/cdh6/6.3.1/parcels/manifest.json
以上软件打包近网盘中,可自取:
链接:https://pan.baidu.com/s/1UH50Uweyi7yg6bV7dl02mQ
提取码:nx7p
二、环境初始化
1、设置Linux主机名
各自节点执行修改主机名命令:
hostnamectl set-hostname cm
1.1修改 /etc/hostname
为自己想要的名字
然后编辑 /etc/hosts
,如下
2、关闭集群防火墙
每个节点上执行
systemctl stop firewalld && systemctl disable firewalld && iptables -F
3、关闭集群selinux
vi /etc/selinux/config
SELINUX=disabled
修改成disabled之后 重启linux系统生效
4、设置集群时钟同步
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
5、每个节点部署JDK
[root@node06 ~]# mkdir /usr/java
[root@node06 ~]# tar -zxf cdh/jdk-8u191-linux-x64.tar.gz -C /usr/java/
[root@node06 ~]# chown -R root:root /usr/java/jdk1.8.0_191
[root@node06 ~]# echo "export JAVA_HOME=/usr/java/jdk1.8.0_191" >> /etc/profile
[root@node06 ~]# echo "export PATH=/usr/java/jdk1.8.0_191/bin:${PATH}" >> /etc/profile
[root@node06 ~]# source /etc/profile
[root@node06 ~]# which java
/usr/java/jdk1.8.0_191/bin/java
[root@node06 ~]# java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
6、主节点部署MySQL
安装MySQL(主节点安装即可)
安装步骤:
(1)此处需要注意的是centos 7 默认安装的是mariadb,如果不卸载直接安装的话会报错,报错信息mariadb-libs is obsoleted by mysql-community-libs-5.7.20-1.el7.x86_64
rpm -qa | grep mariadb #查看安装信息 rpm -e mariadb-libs* --nodeps #根据查找到的软件包信息卸载
(2)安装MySQL(前四个必须按以下顺序安装,因为有依赖)
rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-compat-5.7.20-1.el7.x86_64.rpm
(3)基本设置
# 启动服务 systemctl start mysqld.service # 在日志中会生成初始密码 vim /var/log/mysqld.log # 登录 mysql -uroot -p # 设置密码 set password = password('test01.') #设置密码 #授权用户root使用密码passwd从任意主机连接到mysql服务器 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpasswd' WITH GRANT OPTION; flush privileges;
7、创建CDH源数据库、用户、amon服务的数据库
create database cmf DEFAULT CHARACTER SET utf8; create database amon DEFAULT CHARACTER SET utf8; grant all on cmf.* TO 'cmf'@'%' IDENTIFIED BY 'cmf';
grant all on cmf.* TO 'cmf'@'localhost' IDENTIFIED BY 'cmf';
grant all on cmf.* TO 'cmf'@'主机名' IDENTIFIED BY 'cmf';
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
grant all on amon.* TO 'amon'@'localhost' IDENTIFIED BY 'amon';
grant all on amon.* TO 'amon'@'主机名' IDENTIFIED BY 'amon';
flush privileges;
8、主节点部署JDBC
[root@node06 ~]# mkdir -p /usr/share/java
[root@node06 ~]# cp cdh/mysql-connector-java-5.1.47.jar /usr/share/java/
[root@node06 ~]# cd /usr/share/java/
[root@node06 java]# mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar
[root@node06 java]#
三、CDH部署
1、离线部署CM server及agent
1.1【所有节点】 创建软件目录解压软件
[root@node06 opt]# mkdir cloudera-manager
[root@node06 opt]# cd
[root@node06 ~]# cd cdh
[root@node06 cdh]# tar -zxf cm6.3.1-redhat7.tar.gz -C/opt/cloudera-manager
1.2【06主节点执行】 选择06为主节点作为cm server,直接部署
[root@node06 cdh]# cd /opt/cloudera-manager/cm6.3.1/RPMS/x86_64/
[root@node06 x86_64]# rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
[root@node06 x86_64]# rpm -ivh cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
1.3【所有节点(包含主节点)】 选择所有节点作为cm agent,直接部署
cd /opt/cloudera-manager/cm6.3.1/RPMS/x86_64
rpm -ivh cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm --nodeps --force
1.4【所有节点】修改agent配置,指向server节点06
sed -i "s/server_host=localhost/server_host=node06.research.com/g" /etc/cloudera-scm-agent/config.ini
1.5【修改主节点】的server配置
[root@node06 x86_64]# vim /etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=node06.research.com
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=cmf
com.cloudera.cmf.db.password=www.research.com
com.cloudera.cmf.db.setupType=EXTERNAL
2、主节点部署离线parcel源
2.1 安装httpd
yum install -y httpd
2.2 部署离线parcel源
[root@node06 ~]# mkdir -p /var/www/html/cdh6_parcel
[root@node06 ~]# cp cdh/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel /var/www/html/cdh6_parcel/
[root@node06
~]# mv cdh/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1
/var/www/html/cdh6_parcel/CDH-6.3.1[root@node[root@node06 ~]# mv
cdh/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha1
/var/www/html/cdh6_parcel/CDH-6.3.1-1.cdh6.3.1.p0.1470567-el7.parcel.sha
[root@node06 ~]# mv cdh/manifest.json /var/www/html/cdh6_parcel/
[root@node06 ~]# systemctl start httpd
2.3 页面访问http://10.295.102.6/cdh6_parcel/
3、06主节点启动server
[root@node06 ~]# systemctl start cloudera-scm-server
[root@node06 ~]# ll /var/log/cloudera-scm-server/
total 20
-rw-r----- 1 cloudera-scm cloudera-scm 16679 Dec 10 18:27 cloudera-scm-server.log
-rw-r----- 1 cloudera-scm cloudera-scm 0 Dec 10 18:27 cmf-server-nio.log
-rw-r----- 1 cloudera-scm cloudera-scm 0 Dec 10 18:27 cmf-server-perf.log
[root@node06 ~]# tail /var/log/cloudera-scm-server/cloudera-scm-server.log
4、所有节点启动agent
systemctl start cloudera-scm-agent
5、web页面操作
登录界面,默认登录用户名和密码都是admin
安装集群
1. 选择安装版本
2. 修改集群名称
3. 为CDH群集安装指定主机
此处是在当前管理的主机里选择机器,不要在新主机里查找,另外这个地方显示的主机信息一定要对,我开始的时候因为主机名配置出问题,导致无法识别主机名称和IP,虽然agent的uuid是分配到了四台机器上,但是后边的安装无法进行。
4. 选择CDH版本安装
5. 检查环境
分别点击 Inspect Network Performance
与 Inspect Hosts
发现异常,点击 显示检查器结果
解决方案
第一个警告直接在所有节点上执行echo 10 > /proc/sys/vm/swappiness
第二个警告按照上面的说明,在所有节点上执行这两条命令
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
然后将命令写到 /etc/rc.local
,保证每次重启时能执行
配置完成后。重新运行监测程序
6. 群集设置--选择安装服务--按需选择
7. 群集设置--自定义角色
默认即可,如有特殊需求可自定义配置(比如DataNode建议最少三个机器,但是默认master不含DataNode角色,可以更改)
8. 开始执行安装命令
9. 安装完成