CentOS7.9安装CDH6.2.1
[toc]
1.CDH简介
Cloudera Manager,简称CM
Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具
CM架构
组件 | 说明 |
---|---|
Cloudera Repository | 软件由Cloudera管理分布存储库 |
Server | 负责软件安装、配置、启动、停止,管理服务运行的集群 |
Management Service | 由一组执行各种监控、告警、报告功能角色的服务 |
Database | 储存配置和监控信息 |
Agent | 安装在每台机器上,负责启动和停止、配置、监控主机 |
Clients | 用于与服务器进行交互的接口 |
2.环境准备
2.0 安装纯净系统后执行的脚本
#!/usr/bin/env bash
#
# 修改系统yum源为aliyun并添加epel源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
[ ! -e /etc/yum.repos.d/CentOS-Base.repo ] && curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
[ ! -e /etc/yum.repos.d/epel.repo ] && curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum makecache
yum -y install tar wget net-tools git vim tree lrzsz htop iftop iotop psmisc python36 python3-devel zlib zlib-devel gcc gcc-c++ conntrack-tools jq socat bash-completion telnet nload strace tcpdump lsof sysstat
# 关闭防火墙、selinux、NetworkManager
systemctl disable firewalld NetworkManager
sed -i '7s/enforcing/disabled/' /etc/selinux/config
# 同步时间计划任务 由于后续要用到ntpserver,因此ntpdate选择不执行
#sed -i '/*\/10 \* \* \* \* \/usr\/sbin\/ntpdate ntp2\.aliyun\.com &>\/dev\/null/d' /var/spool/cron/root
#echo "*/10 * * * * /usr/sbin/ntpdate ntp2.aliyun.com &>/dev/null" >>/var/spool/cron/root
# 历史命令显示时间
sed -i '/HISTFILESIZE=2000/d' /etc/bashrc
sed -i '/HISTSIZE=2000/d' /etc/bashrc
sed -i '/HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "/d' /etc/bashrc
sed -i '/export HISTTIMEFORMAT/d' /etc/bashrc
cat >>/etc/bashrc<<'EOF'
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
export HISTTIMEFORMAT
EOF
source /etc/bashrc
# 修改系统最大文件描述符
sed -i '/root soft nofile 65535/d' /etc/security/limits.conf
sed -i '/root hard nofile 65535/d' /etc/security/limits.conf
sed -i '/* soft nofile 65535/d' /etc/security/limits.conf
sed -i '/* hard nofile 65535/d' /etc/security/limits.conf
cat >>/etc/security/limits.conf<<'EOF'
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
EOF
# 设置pip国内源
mkdir ~/.pip
cat >~/.pip/pip.conf<<EOF
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
EOF
# 个人习惯执行命令 netstat -ntpl,所以做一个别名
sed -i.bak "8c alias n='netstat -ntpl'" ~/.bashrc && source ~/.bashrc
reboot
2.1 实验环境
角色 | IP地址 | 主机名 | CDH版本 | 硬件配置 | 节点角色 | 系统 | 内核 |
---|---|---|---|---|---|---|---|
master | 10.0.0.50 | cdh-master01 | 6.2.1 | 4c8g+50G | Hadoop Master,CM Server,数据节点,Mysql | CentOS7.9 | 3.10.0-1160.el7.x86_64 |
slave | 10.0.0.51 | cdh-slave01 | 6.2.1 | 4c8g+50G | 数据节点,CMAgent | CentOS7.9 | 3.10.0-1160.el7.x86_64 |
slave | 10.0.0.52 | cdh-slave02 | 6.2.1 | 4c8g+50G | 数据节点,CM Agent | CentOS7.9 | 3.10.0-1160.el7.x86_64 |
2.2 配置ssh免密
说明
如无特殊说明,以下操作均在 cdh-master01 节点
CDH服务开启与关闭是通过server和agent来完成的,所以这里不需要配置ssh免密登录,但是为了我们分发文件方便,在这里我们也配置ssh免密
2.2.1 编辑环境变量文件
环境变量文件中IP、主机名、子网网段可自行修改
[ -d /opt/cdh6.2.1/script ] || mkdir -p /opt/cdh6.2.1/script && cd /opt/cdh6.2.1/script
cat > env.sh <<EOF
export NODE_IPS=(10.0.0.50 10.0.0.51 10.0.0.52)
export NODE_NAMES=(cdh-master01 cdh-slave01 cdh-slave02)
export NODE_SUBNET='10.0.0.0/24'
EOF
2.2.2 生成密钥对
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa &>/dev/null
2.2.3 编辑expect自动化交互脚本
-
这里机器用户名是
root
,密码是国际标准通用密码1
,ssh端口22
-
执行路径在
/opt/cdh6.2.1/script
cat > ssh.exp <<'EOF'
#!/usr/bin/expect
if { $argc !=2 } {
send_user "usage: expect ssh.exp file ip\n"
exit
}
set file [lindex $argv 0]
set ip [lindex $argv 1]
set password "1"
spawn ssh-copy-id -i $file -p 22 root@$ip
expect {
"yes/no" {send "yes\r";exp_continue}
"*password" {send "$password\r"}
}
expect eof
EOF