事项清单
CDH5可以在线从Cloudera 的源装, 也可以下载文件从本地离线装,还可以自己搭建安装源。
为了方便反复撸,在线从Cloudera装先排除掉,太慢了而且容易断线。
本地离线文件的方式我试了一次parcel方式的,虽然成功了但有些鸡肋。CDH5的 parcel文件是一个2G左右的大文件,集群里每个节点不管什么角色,都要有一份这个文件。
即使在Cloudera Manager配置好一个内部parcel源,节点也要先下载一份。
对于硬盘动辄十几T,多则数百T的hadoop节点来说,几G的消耗微乎其微。
但对硬盘文件大小就只有几个G的虚拟机来说,这已经很可观了.
为了让虚拟机复制得快点,也为了让我的SSD盘多活几年,老司机选择搭一个私有yum安装源。
已经装好的centos7 虚拟机上,要做的事情包括
- 一个HTTP服务器
- CDH5的repo源配置文件
- 检验
HTTPD
centos里的httpd就是曾经的apache。
前面装好的虚拟机上,选择的compute node和add-ons里面,没有包括httpd,需要从光盘装
现在virtualbox里插上光盘,然后
# mount `blkid |grep iso9660|cut -d: -f1` /media
# rpm -ivh /media/Packages/mailcap-2.1.41-2.el7.noarch.rpm
# rpm -ivh /media/Packages/httpd-tools-2.4.6-88.el7.centos.x86_64.rpm
# rpm -ivh /media/Packages/httpd-2.4.6-88.el7.centos.x86_64.rpm
有没有发现有个奇怪的东西混进来?
httpd包要求/etc/mime.types这个文件,但它不告诉我依赖哪个包。
我试过创建一个空文件,但它不为所动
网上搜索一番才从一个英文的邮件列表里确认,安装mailcap包可以提供这个文件
嗯,开源软件的尿性实例之一
然后创建一个网站配置文件
# vim /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
DocumentRoot /var/www/cmrepo/
ServerName cm.hadoop
ServerAdmin laosiji@dashuju
Options +Indexes
ErrorLog logs/cmrepo.local-error_log
CustomLog logs/cmrepo-access_log combined
</VirtualHost>
这个配置里,整个网站都是一个vhost
一定要有的是指定DocumentRoot的一行
其他ServerName和ServerAdmin都是自己起的名字,
Options行是允许列出文件目录,方便检查文件
Errorlog和CustomLog是区分不同的访问日志文件,与httpd自身的主进程日志区分开
配置好后还要关闭centos 7 默认的防火墙,否则无法访问
# systemctl stop firewalld
# systemctl disable firewalld
CDH5安装包
CDH5有提供打包好的文件,我用的版本下载地址是
- http://archive.cloudera.com/cdh5/repo-as-tarball/5.16.2/cdh5.16.2-centos7.tar.gz
5G大,直接下载有些慢,特定把卸载多年的迅雷老兄弟请了回来
等待文件下载完的时间里,先准备好一些其他的
# mkdir -p /var/www/cmrepo/
# vim /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
# Packages for Cloudera Manager, Version 5, on RedHat or CentOS 7 x86_64
name=Cloudera Manager
baseurl=http://192.168.0.103/
gpgkey =http://192.168.0.103/RPM-GPG-KEY-cloudera
gpgcheck = 1
文件里的192.168.0.103是用来做源的虚拟机ip,
从cloudera官方下载好的repo数据文件,解压后放到前面设定的/var/www/cmrepo目录下
解压出来是带目录层级的,找到repodata RPMS SRPMS几个目录放进去,
另外还有RPM-GPG-KEY-cloudera这个文件也一起放进去
# ls /var/www/cmrepo/
repodata RPM-GPG-KEY-cloudera RPMS SRPMS
mysql
cloudera manager需要一个数据库,所以还要一个mysql
从mysql.com下载了5.7.27社区版本,对应el7的安装包,解压后是一堆rpm
因为mysql和centos自带的文件有点小冲突
要先强制卸载一个包
再把mysql的包按照commons-libs-client-server的顺序装上
# rpm -e --nodeps mariadb-libs
# rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm
# rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm
# rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm
# rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm
安装好后先修改my.conf调整密码策略,这样才能在后面操作里设定弱密码
# echo validate_password_policy=0 >>/etc/my.cnf
# echo validate_password_length=1 >>/etc/my.cnf
# systemctl start mysqld
# grep password /var/log/mysqld.log|head -1
2019-08-11T14:12:00.076559Z 1 [Note] A temporary password is generated for root@localhost: Y;lpgi4lNCle
mysql从某个版本后,完成安装后不再是默认空密码了,要从mysqld.log里找到自动生成的临时密码,
# mysql -uroot -p
Enter password:(输入临时密码,这次是Y;lpgi4lNCle,可以复制粘贴)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'laosiji';
居然还没完,下篇继续
参考资料 https://www.cloudera.com/documentation/enterprise/5-16-x/topics/installation.html