CM+CDH大数据环境搭建 最终完整版
CM+CDH大数据环境搭建最终完整版
本文章纯手写,亲测有效,搭建过程参考公司冉大佬手写文档,尊重原创,若有参照或转载请注明出处!
一、集群准备
安装包资源提供:https://pan.baidu.com/s/1W2p1kZNSfSZcsKKGVbGWqg
提取码:9vud
文件包含如下内容
CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel
CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1
cloudera-manager-centos7-cm5.9.0_x86_64.tar.gz
jdk-8u251-linux-x64.tar.gz
manifest.json
mysql-connector-java-5.1.38.jar
若在自己本地创建虚拟机,请参考:
https://blog.csdn.net/weixin_42487460/article/details/106128573
1. 连接工具同时发送指令
使用xshell、MobaXterm或其他连接工具都可以同时发送指令到不同的会话,减少配置时间,如下所示

2. 修改基础配置
静态ip
192.168.56.10
192.168.56.11
192.168.56.12
修改主机名
hostnamectl set-hostname cdh01
hostnamectl set-hostname cdh02
hostnamectl set-hostname cdh03
确保网络畅通
systemctl restart network
ping www.baidu.com
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#查看防火墙状态(显示为not running)
firewall-cmd --state
3. 集群规划
| IP | 主机名 | 角色 |
|---|---|---|
| 192.168.56.10 | cdh01 | 主节点(NN)+DN |
| 192.168.56.11 | cdh02 | 备用主节点(NN)+DN |
| 192.168.56.12 | cdh03 | 子节点(DN) |
4. 创建非root用户
操作节点:
192.168.56.10
192.168.56.11
192.168.56.12
操作用户:root
添加非root用户并设置密码
useradd bigdata
passwd bigdata
5. 配置ip地址和主机名映射关系
操作节点:
192.168.56.10
192.168.56.11
192.168.56.12
操作用户:root
修改/etc/host,末尾添加ip 和主机名
vi /etc/hosts
192.168.56.10 cdh01
192.168.56.11 cdh02
192.168.56.12 cdh03
6. 设置swap交换空间
操作节点:所有节点cdh01,cdh02,cdh03
操作用户:root
修改/etc/sysctl.conf ,在末尾添加
vm.swappiness=0
7. 关闭大页面压缩
操作节点:所有节点
操作用户:root
-
修改/etc/rc.local ,在末尾添加
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag -
修改rc.local开机启动的权限
chmod +x /etc/rc.d/rc.local -
重启生效
reboot
8. SeLinux 设置
操作节点:所有节点
操作用户:root
修改/etc/selinux/config ,将SELINUX=enforcing改为SELINUX=disabled
如下图所示

9. 免密登陆
操作节点:所有节点
操作用户:root
-
生成公私钥
回车即可
ssh-keygen -t rsa -P '' -
拷贝私钥给集群中的每个虚拟机(本身和其他两个虚拟机,实际拷贝次数九次)
ssh-copy-id cdh01 ssh-copy-id cdh02 ssh-copy-id cdh03验证是否实现
ssh root@cdh02如下所示

10. 时间同步
操作节点:针对节点执行
操作用户:root
-
安装ntp(
操作节点:所有节点)yum -y install ntp -
修改 /etc/ntp.conf (
操作节点:cdh01)# 释放注释内容 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # 注释内容 #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 # 新增内容(添加默认的一个内部时钟数据,使用它为局域网用户提供服务) server 127.127.1.0 fudge 127.127.1.0 stratum 10如下图所示

-
修改配置 /etc/sysconfig/ntpd (
操作节点:cdh01)末尾添加如下内容(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes -
重新启动ntpd(
操作节点:cdh01)systemctl restart ntpd -
同步cdh02和cdh03与cdh01时间一致,如下命令分别在cdh02和cdh03节点上执行(
操作节点:cdh02,cdh03)如果出现,端口已经在运行,请执行systemctl stop ntpd,再执行如下指令
ntpdate cdh01同步完,使用date查看时间是否同步
-
为了防止时间在后面出现错误,我们设置定时同步,每十分钟同步一次时间,若对时间十分严格可以设置一秒同步一次(
操作节点:所有节点)contrab -e */10 * * * * /usr/sbin/ntpdate cdh01 &>/dev/null
11. 创建目录用于上传安装包
操作节点:cdh01
操作用户:root
为方便安装和提高效率,我们可以只对一个机器进行安装,然后将安装好的文件直接发送到另外两台指定相同的目录即可。
创建一个目录用于上传下载的安装包用于安装,规范并方便查找
mkdir /root/packages
在这里上传所有需要的安装包,如下图所示,所有安装包均放置在cdh01节点上,安装好cdh01即可使用scp远程发送到剩余节点相同目录
如下图所示

12. 配置JDK
操作节点:所有节点
操作用户:root
-
卸载系统原有JDK命令(
操作节点:所有节点):for x in $(rpm -qa | grep java); do rpm -e --nodeps $x; done -
解压重命名
#创建本地存放目录(操作节点:所有节点) mkdir /usr/local/soft #解压并重命名(操作节点:cdh01 ) tar -zxvf /root/packages/jdk-8u251-linux-x64.tar.gz -C /usr/local/soft mv /usr/local/soft/jdk1.8.0_251/ /usr/local/soft/jdk180 -
发送至从节点(
操作节点:cdh01)scp -r /usr/local/soft/jdk180/ root@cdh02:/usr/local/soft/jdk180/ scp -r /usr/local/soft/jdk180/ root@cdh03:/usr/local/soft/jdk180/ -
配置环境变量(
操作节点:所有节点)vi /etc/profile添加如下内容
#JAVA_HOME export JAVA_HOME=/usr/local/soft/jdk180 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH -
激活(
操作节点:所有节点)source /etc/profile -
验证配置是否成功
java -version
13. 安装所需要的编译环境(可跳过)
操作节点:所有节点
操作用户:root
yum install -y make* gcc* ncurses-devel* gcc-c++* perl* psmisc
14. 安装mysql
操作节点:cdh01
操作用户:root
最新版本的linux开始,默认mariadb,而mariable 与mysql冲突,检查是否安装,若已安装,卸载mariable,具体操作顺序进行如下步骤:
# 检查是否自带mariadb并卸载
rpm -qa | grep mariable
rpm -e --nodeps xxxx
#检查是否自带mysql并卸载
rpm -qa | grep mysql
rpm -e --nodeps xxx
#下载weget
yum install -y wget
#下载mysql(这里版本为5.6.51,如果有要求可以更改)
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-server -y
#赋权
chown -R root:root /var/lib/mysql
#重启msyql服务
service mysqld restart
# 登录
mysql -uroot -p #登录无需密码,直接enter键回车
#使用数据库
use mysql;
#更新密码
update user set password=password('1234') where user='root';
#远程登陆
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "1234";
flush privileges;
# 退出
exit
#修改配置
vi /etc/my.cnf
在socket下面一行添加 character-set-server=utf8 并且注意utf8不能带杠,容易出错
#重启msyql服务
service mysqld restart
#登录验证
mysql -uroot -p1234
etc/my.cnf 添加内容如下图所示

二、CM+CDH安装
1. 解压cloudera
操作节点:cdh01
操作用户:root
-
解压
tar -zxvf packages/cloudera-manager-centos7-cm5.9.0_x86_64.tar.gz -C /opt/ -
移动
CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel和manifest.json至
/opt/cloudera/parcel-repo目录移动
CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1至
/opt/cloudera/parcel-repo目录,并重命名为CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.shamv /root/packages/CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel /opt/cloudera/parcel-repo/ mv /root/packages/manifest.json /opt/cloudera/parcel-repo/ mv /root/packages/CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha
2. 配置clouera
操作节点:cdh01
操作用户:root
修改配置文件
vi /opt/cm-5.9.0/etc/cloudera-scm-agent/config.ini
#修改文件中内容,将如下localhost改为主机名
server_host=cdh01
3. 创建Cloudera Manager所需要的数据库
操作节点:cdh01
操作用户:root
-
将MySQL的驱动拷贝至/opt/cm-5.9.0/share/cmf/lib/
cp /root/packages/mysql-connector-java-5.1.38.jar /opt/cm-5.9.0/share/cmf/lib/ -
执行如下命令
/opt/cm-5.9.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -P3306 -uroot -p1234 --scm-host localhost scm scm scm

-
分发其他节点
scp -r /opt/cm-5.9.0/ root@cdh02:/opt/cm-5.9.0 scp -r /opt/cm-5.9.0/ root@cdh03:/opt/cm-5.9.0
4. 创建服务所需的CDH用户
操作节点:所有节点
操作用户:root
执行如下命令:
useradd --system --home=/opt/cm-5.9.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
5. 启动Cloudera Manager
操作节点:针对节点操作
操作用户:root
-
主节点cdh01上启动server端和agent端(操作节点:cdh01)
#启动server端 /opt/cm-5.9.0/etc/init.d/cloudera-scm-server start #启动agent端 /opt/cm-5.9.0/etc/init.d/cloudera-scm-agent start -
子节点启动agent端(操作节点:chd02,cdh03)
#启动agent端 /opt/cm-5.9.0/etc/init.d/cloudera-scm-agent start
三、Web页面登陆并配置基本服务
-
访问地址:主节点ip地址,端口7180(启动后需要等待几分钟)
http://192.168.56.10:7180/
- 接受条款并继续

- 选择免费版本并继续

-
继续
-
勾选全部节点并继续,如果出现未能检测到所有节点,重新开启所在节点的服务,并刷新网页,如果仍未开启,检查防火墙是否关闭

- 选择存储库并继续

- 等待安装分配,时间较长,完成后点击继续

- 检查主机正确性,根据报错提示调整,并点击完成

- 选择自定义服务,勾选需要安装的内容,首次为安全可先安装基础内容:hdfs、yarn、zookeeper

- 根据自己的需求自定义分配,zookeeper集群管理者需要全部勾选

- 审核更改,按需求更改目录,如下所示,点击继续

-
继续
-
配置完成

-
首次加载主界面较慢,耐心等待

-
主机界面可查看,各节点资源使用情况

更多推荐
所有评论(0)