1.软件准备
安装之前需要准备以下安装包或者安装必要环境
- 1.jdk1.8
(不要安装openjdk,要安装oracle官网的jdk1.8) - 2.mysql(这里我使用docker运行,因为docker方便,当然你也可以自己部署mysql)
- 3.Cloudera Manager,
http://archive.cloudera.com/cm5/cm/5/
下载对应操作系统版本的cm,centos7下载cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz - 4.CDH安装包
http://archive.cloudera.com/cdh5/parcels/latest/
下载
CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel
CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1(下载后名字改为CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha)
manifest.json
2.硬件环境
节点 | 角色 |
---|---|
nod81 | scm-server,scm-agent |
nod82 | scm-agent |
nod83 | scm-agent |
3个节点均为虚拟机测试安装cdh,虚拟机最好在初始化环境的时候打上快照,这样可以很容易恢复到初始化状态,反复安装测试。
3.机器准备
以下操作均需要(root)管理员权限
3.1网络配置(所有节点)
修改主机名:vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node81
NETWORKING_IPV6=no
PEERNTP=no
通过service network restart重启网络服务
修改ip与主机名的对应关系:vim /etc/hosts
192.168.1.81 node81
192.168.1.82 node82
192.168.1.83 node83
3.2 ssh无密码访问
ssh-keygen -t rsa(主节点上输入回车到结束)
ssh-copy-id 0.0.0.0(根据提示输入密码)
ssh-copy-id node82(根据提示输入密码)
ssh-copy-id node83(根据提示输入密码)
##最后ssh测试是否需要无密码
3.3 安装jdk(所有节点)
rpm -ivh jdk-8u101-linux-x64.rpm
3.4 关闭防火墙(所有节点)
注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。
关闭防火墙:
service iptables stop (临时关闭)
chkconfig iptables off (重启后生效)
关闭SELINUX
setenforce 0 (临时生效)
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)
3.5 添加cm用户(所有节点)
useradd --system --home=/opt/cm-5.13.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
3.6 安装其它必要软件
yum install -y perl psmisc
4.安装数据库(主节点)
#数据库我使用docker安装mysql
#启动命令
docker run -d --restart=always --name=mysql \
-p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 \
-v /var/lib/mysql:/var/lib/mysql \
mysql:5.6
5.配置cm(主节点)
5.1 解压cm
cm一般都解压在/opt/下面,因为cm里面一些配置默认就是这个目录
将cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz拷贝到/opt下面解压
tar xzvf cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
## 解压后会出现两个文件夹,cm以及cloudera
[root@node81 ~]# ll
drwxr-xr-x 4 1106 4001 34 Nov 15 07:34 cloudera
-rw-r--r--. 1 root root 753729280 Jan 19 10:20 cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
drwxr-xr-x 9 1106 4001 81 Nov 15 07:34 cm-5.13.1
5.2 放入安装包
将离线安装包CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel等三个放入/opt/cloudera/parcel-repo下面
[root@node81 opt]# cd cloudera/parcel-repo/
[root@node81 parcel-repo]# ll
total 1888980
-rw-r--r--. 1 root root 1934231261 Jan 19 10:20 CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel
-rw-r--r-- 1 root root 41 Dec 6 01:30 CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha
-rw-r--r-- 1 root root 73766 Dec 6 01:32 manifest.json
5.3 配置cm
Agent配置
修改/opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。
5.4 初始化数据库
#拷贝数据库驱动到lib里面
cp /opt/cm-5.13.1/share/cmf/common_jars/mysql-connector-java-5.1.38.jar /opt/cm-5.13.1/share/cmf/lib/
#初始化数据库,首先在mysql里面创建一个cm的database
/opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh -h localhost -P 3306 -u root -p123456 mysql cm root 123456
#-h数据库地址
#-P 端口
#-u 数据库用户名
#-p 数据库密码
#mysql 数据库类型
#cm 数据库名
#root cm连接数据库用户名
#123456 cm连接数据库密码
6.启动
将主节点上cm拷贝到其它子节点上
scp -r /opt/cm-5.13.1 node82:/opt
scp -r /opt/cm-5.13.1 node83:/opt
#启动cm-server
/opt/cm-5.13.1/etc/init.d/cloudera-scm-server start
#在所有子节点上启动cm-agent
/opt/cm-5.13.1/etc/init.d/cloudera-scm-agent start
等两分钟左右,访问网页,http://ip:7180/,默认帐号密码admin admin
7.安装cdh
选择安装版本
选择管理节点,显示三台启动agent的节点
这里看到下载的cdh包
拷贝cdh包到其它节点
检查主机
选择安装组合
配置角色
设置,如果hue这里出现如图的错误,看下面错误里面的解决方法
确认组件配置项
安装组件,安装中出现错误,看下面错误里面解决方法
8 错误
8.1 line 109: pstree: command not found
# /opt/cm-5.13.1/etc/init.d/cloudera-scm-server start
/opt/cm-5.13.1/etc/init.d/cloudera-scm-server: line 109: pstree: command not found
Starting cloudera-scm-server: [FAILED]
# /opt/cm-5.13.1/etc/init.d/cloudera-scm-agent start
/opt/cm-5.13.1/etc/init.d/cloudera-scm-agent: line 108: pstree: command not found
Starting cloudera-scm-agent: [FAILED]
遇到这个错误安装下面的包
yum -y install psmisc
8.2 Unexpected error. Unable to verify database connection
hue Unexpected error. Unable to verify database connection
这个错误很头疼,很难找到原因在哪,网上说的各种方法都不行,经过查看日志,发现执行一个sh脚本错误,sh脚本里面执行的是java -jar命令,最后找到原因是权限问题,设置java的权限为777
yum install -y python-lxml
chmod 777 ${JAVA_HOME}/bin/java
8.3 部署hive时报错
拷贝mysql driver到hive的lib中
cp mysql-connector-java-5.1.38.jar /var/lib/hive
cp mysql-connector-java-5.1.38.jar /var/lib/oozie
cp mysql-connector-java-5.1.38.jar /var/lib/hue
日志
其它不能正常启动的,可以通过查看scm的日志来查找原因
日志地址/opt/cm-5.13.1/log/