安装之前需要准备以下安装包或者安装必要环境
节点 | 角色 |
---|---|
nod81 | scm-server,scm-agent |
nod82 | scm-agent |
nod83 | scm-agent |
3个节点均为虚拟机测试安装cdh,虚拟机最好在初始化环境的时候打上快照,这样可以很容易恢复到初始化状态,反复安装测试。
以下操作均需要(root)管理员权限
修改主机名: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
ssh-keygen -t rsa(主节点上输入回车到结束)
ssh-copy-id 0.0.0.0(根据提示输入密码)
ssh-copy-id node82(根据提示输入密码)
ssh-copy-id node83(根据提示输入密码)
##最后ssh测试是否需要无密码
rpm -ivh jdk-8u101-linux-x64.rpm
注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。
关闭防火墙:
service iptables stop (临时关闭)
chkconfig iptables off (重启后生效)
关闭SELINUX
setenforce 0 (临时生效)
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)
useradd --system --home=/opt/cm-5.13.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
yum install -y perl psmisc
#数据库我使用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
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
将离线安装包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
Agent配置
修改/opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。
#拷贝数据库驱动到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连接数据库密码
将主节点上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
设置,如果hue这里出现如图的错误,看下面错误里面的解决方法
# /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
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
拷贝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/