- 参考CDH平台部署参考手册
1. 部署信息
- 操作系统:CentOS 7.6.1810
- 版本:CDH6.2.0
2. 服务器环境初始化
2.1 操作系统初始化
见本站CentOS 7.3初始化
2.2 设置swap
echo vm.swappiness = 10 >> /etc/sysctl.conf
sysctl -w vm.swappiness=10
2.3 设置巨页
vi /etc/rc.d/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
chmod +x /etc/rc.d/rc.local
2.4 关闭防火墙
sudo systemctl stop firewalld
sudo systemctl disable firewalld
2.5 关闭selinux
sudo setenforce 0
sed -i "s/SELINUX=enforce/SELINUX=disabled/g /etc/selinux/config
2.6 设置主机名和hosts
hostnamectl set-hostname cdh-1.sysit.cn
cat > /etc/hosts <<'EOF'
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.50.101.106 cdh-1.sysit.cn cdh-1
10.50.101.64 cdh-2.sysit.cn cdh-2
10.50.101.115 cdh-3.sysit.cn cdh-3
10.50.101.88 cdh-4.sysit.cn cdh-4
10.50.101.82 cdh-5.sysit.cn cdh-5
EOF
2.7 关闭 NUMA(可选)
grubby --update-kernel=ALL --args="numa=off" --update-kernel="$(grubby --default-kernel)"
3. 配置时区及时间同步
- 本例以ntp为例,如果选用chronyd参见本站其他文档
# 时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# ntp server
yum install ntp -y
cat >>/etc/ntp.conf <<'EOF'
# 允许客户端同步时间
restrict 10.50.101.0 mask 255.255.255.0 nomodify notrap
# 本机作为时钟源
server 127.127.1.0
fudge 127.127.1.0 stratum 10
EOF
systemctl enable ntpd
systemctl restart ntpd
ntpq -p
# ntp client
yum install ntp -y
sed -i "s/^server/#server/g" /etc/ntp.conf
echo -e "server cdh-1.sysit.cn prefer" >>/etc/ntp.conf
systemctl stop ntpd
ntpdate cdh-1.sysit.cn
systemctl restart ntpd
4. 安装mysql
#mysql5.7
cat > /etc/yum.repos.d/mysql-community-el7.repo<<'EOF'
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://mirror.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/
enabled=1
gpgcheck=0
EOF
# 安装
yum install mysql-community-server -y
echo "character-set-server=utf8" >>/etc/my.cnf
systemctl restart mysqld
# mysqld.log中查询密码
grep password /var/log/mysqld.log
2019-04-09T07:28:44.292450Z 1 [Note] A temporary password is generated for root@localhost: wg:yykr4Kt;4
# 测试环境关闭强策略密码,生产环境建议开启。
echo "validate-password=off" >>/etc/my.cnf
# 重启mysql
systemctl restart mysqld
# 重置安全配置
mysql_secure_installation
# 登录mysql
mysql -uroot -p
# 创建用于cloudera运行的mysql数据库cmf
create database cmf default character set utf8;
grant all on cmf.* to 'cmf'@'%' identified by 'cmfpassword';
grant all on cmf.* to 'cmf'@'localhost' identified by 'cmfpassword';
# 创建其他组件的mysql数据库
create database hive default character set utf8;
grant all on hive.* to 'hive'@'%' identified by 'hivepassword';
grant all on hive.* to 'hive'@'localhost' identified by 'hivepassword';
create database oozie default character set utf8;
grant all on oozie.* to 'oozie'@'%' identified by 'cmfpassword';
grant all on oozie.* to 'oozie'@'localhost' identified by 'ooziepassword';
create database hue default character set utf8;
grant all on hue.* to 'hue'@'%' identified by 'huepassword';
grant all on hue.* to 'hue'@'localhost' identified by 'huepassword';
5 安装cloudera manager
5.1 配置源
# 所有节点
wget https://archive.cloudera.com/cm6/6.2.0/redhat7/yum/cloudera-manager.repo
mv cloudera-manager.repo /etc/yum.repos.d/
5.2安装JDK及mysql-connector-java
# 所有节点安装,可以从oracle官方下载rpm包安装,这里采用cloudera官方提供的jdk
yum install java -y
# 安装mysql-connector-java
# CentOS自带的mysql-connector-java版本太旧,可以满足cloudera的安装,但是后续安装Hive的时候会出错,原因是cloudera只支持5.1.x的版本,但自带的版本太低。
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz
tar -zxvf mysql-connector-java-5.1.47.tar.gz
mkdir /usr/share/java
cp mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar
5.3 安装cloudera manager-server
# 在manager server节点安装
yum install cloudera-manager-server -y
# 初始化数据库
# usage: /opt/cloudera/cm/schema/scm_prepare_database.sh [options] (postgresql|mysql|oracle) database username [password]
# --scm-host :SCM server's hostname. Omit if SCM is colocated with MySQL.
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql --scm-host cdh-1.sysit.cn cmf cmf cmfpassword
# 启动
systemctl start cloudera-scm-server
systemctl enable cloudera-scm-server
systemctl status cloudera-scm-server
# 查看监听端口
ss -antlp | grep 7180
- cloudera第一次启动的时候会比较慢,等待一段时间查看7180端口是否监听,监听了即可通过浏览器访问。
默认账号密码是admin/admin
5.4 安装cloudera manager agent
# 可以通过cloudera manager server的web界面安装agent,我这里手动安装agent
yum install cloudera-manager-agent -y
sed -i "s/server_host=localhost/server_host=cdh-1.sysit.cn/g" /etc/cloudera-scm-agent/config.ini
systemctl restart cloudera-scm-agent
systemctl enable cloudera-scm-agent
systemctl status cloudera-scm-agent
6 通过web界面安装自定义安装组件
登录cloudera server 的web界面http://cdh-1.sysit.cn:7180,输入admin/admin账号登录。
根据步骤安装。
点击“continue”进入下一步。
勾选“Yes,I accept the End User License Terms and Conditions. ”,点击“continue”进入下一步。
选择Cloudera Express版本,点击“Continue”进入下一步。
点击“continue”进入下一步
输入Cluster Name,点击“Continue”进入下一步。Cluster Name只是cloudera界面上识别的名字。
New Hosts:用于没有安装cloudera-manager-agent的主机,在这里可以列出需要安装cloudera-manager-agent的主机名或IP地址,通过web界面引导安装agent。
Currently Managed Hosts:用于实现已经安装好了agent,且agent已经将心跳信息发送给server的场景使用。
在这里,之前已经安装好了agent,勾选需要加入集群的主机,点击“Continue”进入下一步。
这里就需要配置CDH的Repository仓库。
因为Repository中文件比较大,从官方网站下载可能比较慢,我们可以下载到本地之后创建一个apache的访问地址,下载地址https://archive.cloudera.com/cdh6/6.2.0/parcels/,需要根据操作系统版本下载,这里下载4个文件:
* https://archive.cloudera.com/cdh6/6.2.0/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel
* https://archive.cloudera.com/cdh6/6.2.0/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha1
* https://archive.cloudera.com/cdh6/6.2.0/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha256
* https://archive.cloudera.com/cdh6/6.2.0/parcels/manifest.json
配置apache的方法,此处略。
在Install Method中,我们选择Use Parcels,点击“More Options”,进入parcel配置界面。
因为此处仅安装CDH,因此只需要CDH的仓库即可。
点击“Save Changes”返回上一页。
现在这里只看到了CDH的版本,说明本地仓库是正常访问的。点击“Continue”进入下一步。
点击“Continue”进入下一步。
对网络和服务器进行检测。检测完成后如下:
可以点击“Show Inspector Results”查看具体检测的详细结果。
选择“I understand the risks, let me continue with cluster creation.”,点击“Continue”进入下一步。
根据实际需要选择组件安装,我这里选择“Essentials”安装。点击“Continue”进入下一步。
这里根据CDH平台部署参考手册中角色的分布进行选择,部分组件(如Zookeeper)需要选择多个节点以实现高可用,点击“Continue”进入下一步。
配置hive,hue,oozie的MySQL数据库地址、账号、密码,点击“Test Connection”进行数据库连接测试,测试成功显示“Successful”,点击“Continue”进入下一步。
这个页面显示各个组件的配置,如数据目录等,根据需要修改。如果服务器有多块磁盘,且已经完成挂载,这里会有多个目录显示。点击“Continue”进入下一步。
点击“Continue”进入下一步。
至此初步安装完成,进入首页查看。
7 启用HDFS的HA
在页面上点击HDFS进入HDFS界面,点击“Actions” ->“Enable High Availability”进行配置。
这里根据项目的具体情况进行约定,如果没有额外约定,建议保持默认nameservice1。点击“Continue”进入下一步。
这里选择NameNode的主机及JournalNode的主机,JournalNode节点根据集群规模配置,建议最少选3个。
配置JournalNode的目录,其他保持默认。点击“Continue”进入下一步。
执行高可用初始化安装。红框中选中的是正常的,因为standby节点使用的是Secondary NameNode的节点,而Secondary NameNode已经格式化了目录。
执行完毕之后,点击“Continue”进入下一步。
点击“Finish”F返回页面。至此,CDH6.2.0基本安装完毕。
8 向现有集群添加服务
在Cloudera Manager的首页,点击下三角符号-> “Add Service” 添加服务。
选择需要安装的服务,如我这里添加spark服务(CDH6.2.0中默认Spark是2.4.0版本),点击“Continue”进入下一步。
选择组件需要安装的主机(参见CDH平台部署参考手册),点击“Continue”进入下一步。
点击“Continue”进入下一步。
点击“Continue”进入下一步。
点击“Finish”完成安装,返回首页。
如上图,Spark服务处于停止状态,还带有符号,点击符号,进入下一页。
点击“Deploy Client Configuration” 进入下一步。
执行完成后点击“Finish”完成配置。
9 其他
如下图所示,界面显示有配置参数的告警问题,后续专门文档描述各个组件的配置文件。此处略过。