1. 安装前的准备工作
我采用的是使用CM 5.14.0来安装CDH,因此只讲这一种。目前,根据官方给的文档所给出的数据,支持的各个环境最新版本如下:
Ubuntu 16.04
jdk 1.8u144
mysql 5.7
python2.4以上 不支持python3
同时为了以防万一,全程采用root用户安装。
修改主机名:
gedit /etc/hostname
在打开的文件中写入主机名我的主节点是cdhmaster,从节点是cdh01,注意主机名最好不要有下划线和大写。
配置hosts文件
将主节点与从节点的ip与主机名的映射关系配置好。
需要特别注意的是:
主机名不能有大写,最好不要有127.0.0.1 和localhost的字眼出现,不要有ip地址重复的条目,配置主机名时最好加上域名。不然那后期会出现一些莫名奇妙的错误,排查起来有点困难。最好按照如下格式:
122.222.233.244 cdhaaa.bbb.com cdhaaa
122.222.233.144 cdhbbb.bbb.com cdhbbb
防火墙关闭
ufw disable
SSH
首先运行 一下命令来安装SSH服务。
sudo apt-get install openssh-server
但是在有些机器上可能会出现下列错误:
此时,我们安装openssh-client,并且加上版本号,命令如下:
sudo apt install openssh-client=1:6.6p1-2ubuntu1
成功之后在重新执行就没有问题了。安装成功之后,
$ ssh-keygen -t rsa -P ""
然后把生成的id_rsa.pub加入authorized_keys
里:
$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
这时本机已经可以对localhost
免密访问了
$ ssh localhost
接下来,为了使master能免密访问slave:
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub name@ip
这样就能免密码登陆了。
注意,在配置免密登录时,为了以防万一,所需要的免密登录的用户均为root用户。
mysql
使用如下命令可以直接安装mysql数据库。
apt-get install mysql-server
安装完成之后,使用一下命令进去命令行界面
mysql -uroot -p
按照提示输入密码,但是有些可能会出现以下错误问题:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
进入mysql的安装目录,打开debian.cnf文件,查看client节的用户名和密码来直接使用。
sudo etc/mysql/debian.conf
获取到用户名和密码后,使用提供的用户名和密码来登陆mysql
mysql -udebian-sys-maint -p
Enter password: <输入[client]节的密码>
进去mysql后,然后来更新root的密码:
mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass')
mysql> FLUSH PRIVILEGES;
mysql> quit
然后重启mysql就能使用你新改的密码来登录进mysql数据库了。
创建cdh服务组件所需要用到的数据库
同时需要授权mysql数据库可以远程登录:
grant all on *.* to root@'%' Identified by 'root';
flush privileges;
ntp安装(网上很多这里不详细列出)
安装jdk(网上同样有很多)
2. 正式开工:
2.1 解压缩(所有节点)
首先下载CM5.14.0压缩包,地址http://archive.cloudera.com/cm5/cm/5/ 选择合适的版本。然后进入下载目录解压到/opt/cloudera-manager下:
tar -xzvf cloudera-manager-trusty-cm5.10.0_amd64.tar.gz -C /opt/cloudera-manager
等待解压完成。
2.2 添加cloudera-scm账户(所有节点)
useradd --system --home=/opt/cloudera-manager/cm-5.14.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
2.3 指定cloudera server 地址(从节点)
gedit /opt/cloudera-manager/cm-5.10.0/etc/cloudera-scm-agent/config.ini
将server_host的值改为服务器的主机名。
2.4 创建cloudera-manager-server的本地元数据保存目录(主节点)
- mkdir /var/cloudera-scm-server
- chown cloudera-scm:cloudera-scm /var/cloudera-scm-server
- chown cloudera-scm:cloudera-scm /opt/cloudera-manager
2.5 创建parcel-repo仓库目录(主节点)
2.6 创建parcels目录(所有节点)
Clouder-Manager将CDHs从主节点的/opt/cloudera/parcel-repo目录中抽取出来,分发解压激活到各个节点的/opt/cloudera/parcels目录中。
2.7 初始脚本配置数据库scm_prepare_database.sh(主节点)
/opt/cloudera-manager/cm-5.14.0/share/cmf/schema/scm_prepare_database.sh mysql -hmaster -uroot -proot --scm-host master scmdbn scmdbu scmdbp
参数解释:
mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。
-uroot:root身份运行mysql。-proot:mysql的root密码是root。
--scm-host localhost :CMS的主机,一般是和mysql安装的主机是在同一个主机上。
最后三个参数是:数据库名,数据库用户名,数据库密码。
注意:如果填充失败了,请先删去数据库与其用户,再看错误报告后,进行排错。
2.8 启动
主节点:
1. /opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-server start
2./opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-agent start
从节点
/opt/cloudera-manager/cm-5.14.0/etc/init.d/cloudera-scm-agent start
2.9 使用web登录
打开浏览器输入127.0.0.1:7180,可能需要等3分钟就可以弹出cm的登录界面了,默认的账户密码都是admin,登录之后进入进群安装向导:
选择部署免费版,进入添加主机向导:
注意此时最好填入主机的域名。不要直接填IP地址,可能会导致之后一些不明所以的安装错误。填好后点击search,等待寻找主机。
搜索到之后点击继续,之后保持默认点击继续,如果已经安装java则不需要在安装java,点击继续,输入配置的root用户的密码。点击继续,来到安装主机的界面.如下所示:
耗时较长,需要耐心等待.可能会出现如下错误:
这是由于之前的hosts文件没按上面说的要求配置导致出现的莫名其妙的问题。
这是由于hive已经后面的oozie等等都默认需要jdbc驱动,需要在所有节点中把驱动放到/opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/hive/lib/ /opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/oozie/lib/ /var/lib/oozie/ 目录下即可。
由于是安装完成后根据回忆写的,可能有遗漏之处,多多谅解。