centos7系统安装(5台)
JDK
jdk-8u191-linux-x64.tar.gz
scala-2.11.8.tgz
ClouderaManager安装包
cloudera-manager-centos7-cm5.13.3_x86_64.tar.gz
CDH相关包
CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel
CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel.sha1
manifest.json
SPARK2相关包
SPARK2-2.3.0.cloudera2-1.cdh5.13.3.p0.316101-el7.parcel
SPARK2-2.3.0.cloudera2-1.cdh5.13.3.p0.316101-el7.parcel.sha
manifest.json
KAFKA相关包
KAFKA-3.1.1-1.3.1.1.p0.2-el7.parcel
KAFKA-3.1.1-1.3.1.1.p0.2-el7.parcel.sha
驱动包
mysql-connector-java-5.1.47-bin.jar
Spark-Kafka的streaming包
spark-streaming-kafka-0-10-assembly_2.11-2.3.0.jar
固定ip、DNS、禁用ipv6(所有节点)
永久性改主机名(适用于linux7)
[root@centos ~]# hostnamectl set-hostname xxx.dffl.com
修改主机映射(所有节点)
[root@centos ~]# vim /etc/hosts
127.0.0.1 localhost
本机IP xxx.dffl.com #本机IP 主机名
本机IP xxx.dffl.com #集群各主机IP 主机名
关闭防火墙和SELinux(所有节点)
[root@centos ~]# systemctl status firewalld #查看防火墙状态
[root@centos ~]# systemctl stop firewalld #关闭防火墙
[root@centos ~]# systemctl disable firewalld #禁止防火墙开机启动
[root@centos ~]# setenforce 0
修改配置文件让机器重启也生效(所有节点)
[root@centos ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
配置ssh免密码登录:
主程序CM机
[root@centos ~]# cd /root/.ssh
[root@centos ~]# ssh-keygen -t rsa
执行以下命令后,如果提示,就一直按“Enter”键,直至生成公钥
执行完成后会生成两个文文件id_rsa(私钥)、id_rsa.pub(公钥)
把公钥复制到需要免密登录的服务器xx1
[root@centos ~]# scp id_rsa.pub [email protected]:/root/.ssh/authorized_keys_from_xx0
把xx0的公钥内容进行公钥合并
[root@centos ~]# cd /root/.ssh
[root@centos ~]# cat authorized_keys_from_xx0 >> authorized_keys
(说明:如果authorized_keys不存在就会自动创建,如果存在就会追加)
安装jdk1.8(所有节点)
卸载自带openjdk
查询出系统自带的jdk
[root@centos ~]# rpm -qa | grep Java
卸载所有openJDK
[root@centos ~]# rpm -e --nodeps xxx xxx xxx
创建jdk安装目录
[root@centos ~]# mkdir /usr/local/java/latest
解压jdk-8u191-linux-x64.tar.gz到jdk安装目录:
[root@centos ~]# tar -zxf jdk-8u191-linux-x64.tar.gz -C /usr/local/java/latest
配置环境变量
[root@centos ~]# vim /etc/profile
在末尾添加:
export JAVA_HOME=/usr/local/java/latest/jdk1.8.0_191
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar
是配置生效:
[root@centos ~]# source /etc/profile
**ntp时间同步 **
安装ntp服务
[root@centos ~]# yum -y install ntp
以一台主机作为集群的时间服务器(114),其他机器(110-113)跟这台主机进行时间同步
开启114主机的时间服务器服务
开机自动启动
[root@centos ~]# systemctl enable ntpd
开启
[root@centos ~]# systemctl start ntpd
先与远程互联网上的时间服务器进行同步
[root@centos ~]# ntpdate -u ntp.sjtu.edu.cn
将BIOS硬件时钟与系统时间进行同步
[root@centos ~]# hwclock --localtime -w
编辑ntpd配置文件(本次集群未编辑)
[root@centos ~]# vim /etc/ntp.conf
##打开注释
18 restrict 172.21.192.0 mask 255.255.255.0 nomodify notrap
##注释掉
22 #server 0.centos.pool.ntp.org
23 #server 1.centos.pool.ntp.org
24 #server 2.centos.pool.ntp.org
##打开注释
35 server 127.127.1.0 # local clock
36 fudge 127.127.1.0 stratum 10
服务器停机后,系统时间停止,硬件时间正常走,服务器重启后将硬件时间自动同步给系统时间
[root@centos ~]# vim /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes ###改为yes
服务器启动后,系统同步外界时间,自动同步给硬件时钟
[root@centos ~]# vim /etc/sysconfig/ntpdate
SYNC_HWCLOCK=yes ###改为yes
其他主机与该主机xxx进行同步:
[root@centos ~]# ntpdate -u xxx
其他主机与该主机xxx进行定时同步(本集群):
[root@centos ~]# crontab -e
*/10 * * * * /usr/sbin/ntpdate -u xxx
并且同时设置BIOS时钟时间与系统时间同步以及开机启动ntpd服务
[root@centos ~]# hwclock --localtime -w
[root@centos ~]# vim /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes ###改为yes
[root@centos ~]# vim /etc/sysconfig/ntpdate
SYNC_HWCLOCK=yes ###改为yes
[root@centos ~]# systemctl enable ntpd
[root@centos ~]# systemctl start ntpd
重启
[root@centos ~]# service crond restart && service ntpd restart
设置文件打开数目和用户最大进程数(所有节点)
[root@centos ~]# vim /etc/security/limits.conf
* soft nofile 32728
* hard nofile 1024567
* soft nproc 65535
* hard nproc unlimited
* soft memlock unlimited
* hard memlock unlimited
关闭swap区(所有节点)
避免swap的一种方式是设置swap空间为0
[root@centos ~]# echo "vm.swappiness = 0">> /etc/sysctl.conf (尽量不使用交换分区,注意不是禁用)
刷新SWAP
[root@centos ~]# swapoff -a && swapon -a
生效
[root@centos ~]# sysctl -p
上传安装包
存放于目录/opt/software
解压至/opt/modules
安装mysql
只需要在一台主机(114)上安装即可
注意:1)设置开机自动启动,2)设置用户可以远程访问,3)设置其他主机访问mysql
安装依赖包
[root@centos ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse portmap fuse-libs redhat-lsb
创建cloudera-manager目录存放安装包
在server主节点上创建
[root@centos ~]# mkdir -p /opt/cloudera-manager
安装包解压
[root@centos ~]# tar -zxf /opt/softwares/cloudera-manager-centos7-cm5.13.3_x86_64.tar.gz -C /opt/cloudera-manager
修改agent主机配置文件
[root@centos ~]# vim /opt/cloudera-manager/cm-5.3.6/etc/cloudera-scm-agent/config.ini
server_host=xxx.dffl.com
将安装包分发其他机器
[root@centos ~]# scp -r cloudera-manager/ xxx.dffl.com:/opt/
所有节点创建cloudera-scm用户
[root@centos ~]#useradd \
--system \ ##表示系统用户
--home-dir=/opt/cloudera-manager/cm-5.13.3/run/cloudera-scm-server \ ##指定一个home目录
--no-create-home \ ##不创建用户主目录
--shell=/bin/false \ ##不作为一个登陆用户
--comment "Cloudera SCM User" \
cloudera-scm ##用户名
检查用户是否已存在
[root@centos ~]# cat /etc/passwd | grep cloudera-scm
放置驱动包
[root@centos ~]# cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/
[root@centos ~]# cp mysql-connector-java-5.1.47-bin.jar /opt/cloudera-manager/cm-5.13.3/share/cmf/lib/
在主节点上初始化CM在mysql中的状态
[root@centos ~]# mysql
--cm数据库
>create database cm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
--hue数据库
>create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
--oozie数据库
>create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
--hive数据库
>create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
--授权
>grant all privileges on hive.* to 'scm'@'%' identified by 'cdh' with grant option;
>grant all privileges on hue.* to 'scm'@'%' identified by 'cdh' with grant option;
>grant all privileges on oozie.* to 'scm'@'%' identified by 'cdh' with grant option;
--远程访问
>grant all privileges on *.* to 'root'@'%' identified by 'zaq12wsx' with grant option;
>flush privileges;
初始化cloudera manager数据库配置
[root@centos ~]# /opt/cm-5.13.3/share/cmf/schema/scm_prepare_database.sh -h
格式:主机、数据库服务器、数据库名、用户、密码
配置CDH源(hadoop hive等框架的安装包集成)
[root@centos ~]# mkdir -p /opt/cloudera/parcel-repo
[root@centos ~]# mkdir -p /opt/cloudera/parcels
[root@centos ~]# mv /opt/softwares/CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel* /opt/cloudera/parcel-repo/
[root@centos ~]# mv CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel.sha1 CDH-5.13.3-1.cdh5.13.3.p0.2-el7.parcel.sha
更改所有人
[root@centos ~]# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/
[root@centos ~]# chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels/
启动server及agent进程
[root@centos ~]# /opt/cloudera-manager/cm-5.13.3/etc/init.d/cloudera-scm-server start
[root@centos ~]# /opt/cloudera-manager/cm-5.13.3/etc/init.d/cloudera-scm-agent start
验证并登录web
确认端口是否被监听
[root@centos ~]# netstat -tlnup | grep 7180
默认用户名和密码为admin
CM登录搭建时警告排除
[root@centos ~]# echo 0 > /proc/sys/vm/swappiness
[root@centos ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
挂载进程(不卸载用不到)
[root@centos ~]# umount /opt/cloudera-manager/cm-5.13.3/run/cloudera-scm-agent/process
主机运行状况不良时
[root@centos ~]# rm -rf /opt/cloudera-manager/cm-5.13.3/lib/cloudera-scm-agent/cm_guid