1、修改hosts
一批新机器采购上架以后需要安装操作系统,如果用于CDH集群的建设时要注意:新机器主机名称不要出现大写字母如DSJ字母,会在cm页面出现配置告警,与安全认证有关。如果集群启用kerberos时需要注意此事项
[root@whx-1 ~]# cat /etc/hosts
127.0.0.1 localhost
192.168.1.1 whx-1
192.168.1.2 whx-2
192.168.1.3 whx-3
192.168.1.4 whx-4
192.168.1.5 whx-5
192.168.1.6 whx-6
192.168.1.7 whx-7
2、配置免密码登陆
由于集群规模超大所有机器建议免密登陆,待集群配置安装完毕后建议回收取消root免密,免密配置如下:
[root@whx-1 桌面]# ssh-keygen -t rsa -P ""
[root@whx-1 ~]# cd .ssh
[root@whx-1 .ssh]# ls
id_rsa id_rsa.pub
[root@whx-1 .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.1
3、关闭防火墙selinux
集群运行时需要关闭所有节点防火墙以及selinux,生产集群不要暴漏在外网中。
[root@whx-1 ~]# systemctl stop firewalld.service && systemctl disable firewalld.service
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
可批量关闭,在root家目录创建hostlist文件里面为所有机器ip。
for ip in `cat hostlist`; do ssh $ip "systemctl stop firewalld.service && systemctl disable firewalld.service"; done
关闭selinux
及时生效
[root@whx-1 ~]# setenforce 0
[root@whx-1 ~]# getenforce
Permissive
永久生效
[root@whx-1 ~]# vim /etc/selinux/config
SELINUX=enforcing改成disabled
批量修改
for ip in `cat hostlist` ; do scp /etc/selinux/config root@$ip:/etc/; done
for ip in `cat hostlist`; do ssh $ip "setenforce 0"; done
4、安装jdk
查看机器是否安装jdk
这里建议安装oracle的jdk1.8
首先卸载自带open jdk
[root@whx-1 ~]# rpm -aq |grep jdk
java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
批量卸载
for ip in `cat iplist`; do ssh $ip "rpm -e java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64 --nodeps && rpm -e java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64 --nodeps"; done
下载oracle的jdk解压到/usr/java/下
在/etc/profile追加如下,source一下
PATH=$PATH:/usr/java/jdk1.8.0_161
export JAVA_HOME=/usr/java/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
此处说明下,当集群需要多个版本java时建议不要修改全局变量,可配置用户家目录的.bashrc文件,自定义java路径在/opt/soft/java/下。当用户使用
5、安装mysql数据库
建议使用mysql-mha模式,以下为单节点mysql配置方法。
[root@whx-1 opt]# tar xvf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
mysql-community-server-5.7.18-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.18-1.el7.x86_64.rpm
mysql-community-devel-5.7.18-1.el7.x86_64.rpm
mysql-community-client-5.7.18-1.el7.x86_64.rpm
mysql-community-common-5.7.18-1.el7.x86_64.rpm
mysql-community-embedded-5.7.18-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.18-1.el7.x86_64.rpm
mysql-community-libs-5.7.18-1.el7.x86_64.rpm
mysql-community-server-minimal-5.7.18-1.el7.x86_64.rpm(这个包可以删除)
mysql-community-test-5.7.18-1.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.18-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm
[root@whx-1 opt]# rm mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -f
[root@whx-1 opt]# mkdir mysql
[root@whx-1 opt]# mv mysql-community-* mysql
[root@whx-1 opt]# cd mysql/
[root@whx-1 mysql]# createrepo ./
Spawning worker 0 with 12 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
配置mysql的yum源,该步骤主要是方便其他机器安装mysql。
[root@whx-1 mysql]# cd /etc/yum.repos.d/
[root@whx-1 yum.repos.d]# vim mysql.repo
[mysql]
name=5.7
baseurl=file:///opt/mysql/
enable=1
gpgcheck=0
[root@whx-1 yum.repos.d]# yum repolist
源标识 源名称 状态
mysql 5.7 12
repolist: 12
卸载mariadb的lib
[root@whx-1 yum.repos.d]# rpm -qa | grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
[root@whx-1 yum.repos.d]# rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 –nodeps
安装mysql数据库,此处可注释掉本地center os 7的yum源
[root@whx-1 yum.repos.d]# yum -y install mysql
[root@whx-1 yum.repos.d]# yum -y install mysql-server
破解mysql密码,注意密码复杂程度,文档为安装示例使用弱口令
[root@whx-1 yum.repos.d]# systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
[root@whx-1 yum.repos.d]# systemctl start mysqld
[root@whx-1 yum.repos.d]# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.18 MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> flush PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush tables;
Query OK, 0 rows affected (0.00 sec)
[root@whx-1 yum.repos.d]# systemctl restart mysqld
[root@whx-1 yum.repos.d]# mysql -uroot -p
Enter password:
授权用户root使用密码passwd从任意主机连接到mysql服务器,如果规划好集群,可固定IP。
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
建立数据库用于后边服务安装,如果不想复用数据库可不建立。
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
6、配置ntp服务
正常生产集群环境中会有时钟源,将时钟源指定一下即可。此处大致掠过
[root@whx-1 yum.repos.d]# yum -y install ntp
[root@whx-1 yum.repos.d]# chkconfig ntpd on
[root@whx-1 yum.repos.d]# service ntpd start
7、所有节点创建用户
[root@whx-1 yum.repos.d]# useradd --system --home=/opt/cm-5.13.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
二、集群安装
1、下载CM与CDH
CM地址:http://archive.cloudera.com/cm5/cm/5/
CDH地址:http://archive.cloudera.com/cdh5/parcels/5.13.1/
所需文件为
CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel
cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha
manifest.json
注意sha1要改成sha
2、分发软件包
解压cm
[root@whx-1 opt]# tar xvf cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
会生成cm-5.13.1与cloudera两个文件夹
修改mysql的jdbc驱动移动到对应的目录
[root@whx-1 opt]# mv mysql-connector-java-5.1.46.jar mysql-connector-java.jar
[root@whx-1 opt]# cp mysql-connector-java.jar /usr/share/java/
[root@whx-1 opt]# cp mysql-connector-java.jar /opt/cm-5.13.1/share/cmf/lib/
初始化数据库
/opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p scm scm
Enter database password: 此处是123456
Enter SCM password:此处是passwd
将parcel包移动到对应目录
[root@whx-1 opt]# mv CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel* cloudera/parcel-repo/
[root@whx-1 opt]# mv manifest.json cloudera/parcel-repo/
修改agent文件
[root@whx-1 opt]# vim /opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini
server_host=whx-1
分发其他节点
[root@whx-1 opt]# for i in `cat /root/iplist`;do scp /opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini $i:/opt/cm-5.13.1/etc/cloudera-scm-agent/;done
3、启动server和agent
[root@whx-1 opt]# /opt/cm-5.13.1/etc/init.d/cloudera-scm-server start
Starting cloudera-scm-server: [ 确定 ]
[root@whx-1 opt]# /opt/cm-5.13.1/etc/init.d/cloudera-scm-agent start
Starting cloudera-scm-agent: [ 确定 ]
4、界面配置
程序启动后等待5分钟如无报错可通过浏览器访问xx.xxx.xxx.xxx:7180
用户名admin
密码admin
三、spark2.2安装
1、下载软件包
SPARK2_ON_YARN-2.2.0.cloudera1.jar
下载地址:http://archive.cloudera.com/spark2/
SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el7.parcel.sha1
下载地址:http://archive.cloudera.com/spark2/parcels/
SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el7.parcel
下载地址:http://archive.cloudera.com/spark2/parcels/
manifest.json
下载地址:http://archive.cloudera.com/spark2/parcels/
注意:版本对应,以及manifest.json对应。
2、分发软件包
将SPARK2_ON_YARN-2.2.0.cloudera1.jar放到/opt/cloudera/csd/
将SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el7.parcel.sha1改名字
SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el7.parcel.sha
与SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354-el7.parcel一起放到如下目录
/opt/cloudera/parcel-repo/
备份/opt/cloudera/parcel-repo/下的manifest.json为manifest.json.CDH
将manifest.json放到/opt/cloudera/parcel-repo/下
3、安装spark
重启server与agent
[root@whx-1 opt]# /opt/cm-5.13.1/etc/init.d/cloudera-scm-server restart
Starting cloudera-scm-server: [ 确定 ]
[root@whx-1 opt]# /opt/cm-5.13.1/etc/init.d/cloudera-scm-agent restart
Starting cloudera-scm-agent: [ 确定 ]