手里有三台服务器,每台16内存,磁盘大小100G,搭建CDH集群
版本如下:
Centos7.6.1810
Mysql5.6.50
Cloudera-manager5.16.2
本文参考了网络上的CDH安装的文章
https://blog.youkuaiyun.com/czz1141979570/article/details/86658416)
https://blog.youkuaiyun.com/weixin_40079336/article/details/86648553
https://blog.youkuaiyun.com/u012448904/article/details/103702433
https://yq.aliyun.com/articles/341408
以及自己搭建时遇到的一些问题,进行说明
搭建CDH过程:
这里前提是默认已经配置好centos的ip,关闭防火墙,ssh免疫,ntp,hosts映射和连接外网等一些配置了
因为服务器上的是最小化安装,什么都没带,自己还得安装很多东西,个人安装centos时不推荐最小化安装
安装使用的root用户来安装
安装JDK
安装jdk1.8以上版本,安装的目录必须要在/usr/java下面,因为CDH默认会从这里找
第一次安装时我安装在/opt下面,CDH会报错 检测不到jdk
查看机器是否自带jdk,进行卸载
1.创建这个文件夹,存放jdk
mkdir -p /usr/java/jdk1.8
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/java/
必须存放在这个目录,否则后期机器默认找不到jdk,还得手动指定,挺麻烦的
1.配置环境变量
vim /etc/profile
2./etc/profile中添加下面配置项
export JAVA_HOME=/usr/java/jdk1.8
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
3.刷新环境变量使配置立即生效
source /etc/profile
4.检查JDK是否配置成功
java -version
安装Mysql
先安装Mysql,CHD集群的初始化数据和后续的组件(hive,oozie,cm的监控器和hue)的数据都会存放到Mysql中
1、先查看linux是否带有mariadb
rpm -qa|grep -i mariadb
2、 卸载mariadb
rpm -e --nodeps mariadb-libs
3、如果之前安装过mysql,需要卸载干净
rpm -qa |grep -i mysql
yum remove **********
find / -name mysql
rm -rf
rm -rf /etc/my.cnf
rm -rf /var/log/mysqld.log
4、安装mysql
yum install mysql
yum install mysql-server
yum install mysql-devel
这里安装mysql-server时可能会报错
可以参考下面
https://www.cnblogs.com/yowamushi/p/8043054.html
安装完成后启动mysql服务,首次没有密码
service mysql start
mysql
5、更改密码
update user set Password = password('123456') where user='root';
查看密码
select host, user, authentication_string, plugin from user;
刷新权限
flush privileges;
6、开启远程登录
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
FLUSH PRIVILEGES;
7、授权用户登录
grant all privileges on *.* to 'root'@'hadoop1' identified by 'root' with grant option;
8、创建数据库
#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#activity monitor
create database amon 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;
- 安装依赖(所有机器)
CDH安装需要python的依赖,我没有安装,之后报错了,需要提前安装
yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb httpd mod_ssl
- CM下载
CM下载地址:http://archive.cloudera.com/cm5/cm/5/
下载完毕后上传,解压到/opt下面,解压后会生成两个文件夹cloudera和cm-5.16.2
tar -zxvf /opt/software/cloudera-manager-centos7-cm5.16.2_x86_64.tar.gz -C /opt
- 添加用户(所有机器)
这个用户是cm的默认用户来使用
useradd --system --home=/opt/module/cloudera-manager/cm-5.12.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
//Cloudera Manager默认用户为cloudera-scm,安装完成后,将自动使用此用户。
- 配置/opt/cloudera-manager/cm-5.16.2/etc/cloudera-scm-agent/ config.ini
server_host改成主节点名称,server_port不用动
vim /opt/cloudera-manager/cm-5.16.2/etc/cloudera-scm-agent/ config.ini
[General]
# Hostname of the CM server.
server_host=hadoop1
# Port that the CM server is listening on.
server_port=7182
- 获取mysql的连接包
我这里用的是mysql5.1.28的连接包
下载地址:https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.28.tar.gz
cp /opt/software/mysql-connector-java-5.1.28/mysql-connector-java-5.1.28-bin.jar /opt/cm-5.16.2cm/share/cmf/lib/
将mysql连接的包放到这个/cm/share/cmf/lib目录下
网上两种方案存放这个包,一种是放在/usr/java/,一种是存放在/cm-5.16.2/share/cmf/lib/
这里经过这几天,证明只用放在/cm-5.16.2/share/cmf/lib/即可
- 分发解压包到其他节点上
scp -r cm5.16.2 hadoop2:/opt/
scp -r cm5.16.2 hadoop3:/opt/
传过去文件确认一下你的权限
chown -R cloudera-scm:cloudera-scm /opt/cm5.16.2
- 初始化CM数据库
/opt/cm-5.16.2/share/cmf/schema/scm_prepare_database.sh mysql cm -h hadoop1 -u root -p 123456 --scm-host localhost scm scm scm
这是数据库初始化语句,scm用户会在mysql冲初始化一个cm的数据库
如果初始化失败,还发现本地mysql登陆不成功等问题,可以在修改/etc/my.conf文件
进入mysql后修改mysql数据库的user表
参考文档
https://blog.youkuaiyun.com/weixin_40079336/article/details/86648553
根据上面的意思我的语句是
如果已经增加权限还是不能登录可使用下面语句,执行完是结果是user表会增加scm用户,mysql的user表条数有12条
grant all privileges on *.* to 'root'@'localhost' identified by '123456' with grant option;
grant all privileges on *.* to 'root'@'hadoop1' identified by '123456' with grant option;
grant all privileges on *.* to 'root'@'127*.*0*.*0*.*1' identified by '123456' with grant option;
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
grant all privileges on *.* to 'scm'@'localhost' identified by 'scm' with grant option;
grant all privileges on *.* to 'scm'@'hadoop1' identified by 'scm' with grant option;
grant all privileges on *.* to 'scm'@'127*.*0*.*0*.*1' identified by 'scm' with grant option;
grant all privileges on *.* to 'scm'@'%' identified by 'scm' with grant option;
下载三个文件
- 创建Parcel-repo 目录(主节点操作)
mkdir -p /opt/cloudera/parcel-repo
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/
将下载好的3个CDH文件放到parcel-repo这个目录中
SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012-el7.parcel.sha1
需要改名
SPARK2-2.4.0.cloudera2-1.cdh5.13.3.p0.1041012-el7.parcel.sha
把1去掉就行了
- 所有节点创建parcels目录(所有节点)
mkdir -p /opt/cloudera/parcels
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels
- 启动CM服务
hadoop1:
/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-server start
/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-agent start
hadoop2:
/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-agent start
hadoop3:
/opt/cloudera-manager/cm-5.16.2/etc/init.d/cloudera-scm-agent start
- 访问WebUI
hadoop1:7180
启动命令后等一会,会有个启动过程,可能比较慢,到这里应该就能正常访问了,默认的用户名和密码都是admin
进去添加服务组件,配置他们的节点位置和他们的存储目录
也可以点击集群->操作->添加服务
到此,CDH安装完成,文章有不足之处还请告知
CDH安装遇到问题可以参考以下连接
https://blog.youkuaiyun.com/BalaBalaYi/article/details/76904274
https://blog.youkuaiyun.com/qq_39680564/article/details/100013275