整体分几步做
首先下载需要的包,包括系统镜像文件+虚拟机工具,cloudera manager版本文件,CDH版本文件,flink parcls文件(最后集成flink才需要)
1.安装镜像文件
2.配置虚拟机环境包括网络的打通配置host,关闭防火墙,rzsz(方便上传下载),rsa机器之间免密操作(用于机器之间无密码ssh远程登录),yum插件的安装(解决后面安装CM的依赖问题),mysql的安装,配置mysql远程连接,配置CM的SCM库(提供给CM使用),hive库(提供给hive使用)
3.cloudera manager(CM)的安装,和启动(安装CM大数据管理工具)
4.启动CM 检测CDH parcles,开始安装大数据套件
5.安装flink,打parcles,安装套件
6.查看环境log大多在/var/xx(对应组件)/log,对应的错误进行错误修复
我的安装过程
先把这几个下载下来https://archive.cloudera.com/cm6/6.3.1/redhat6/yum/RPMS/x86_64/,还需要一个linux6系统(这个网上找有很多,CM分linux6和linux7版本,安装时候要记得别下载错)
虚拟机readhart系统安装(readhat6版本)
步骤1.首先需要复制三个包(需要复制分开三分镜像文件,有过用同一个出问题)
步骤2.打开Oracle VM VirtualBox进行镜像安装(选用这个工具安装无界面版本的linux会比较节约空间,我用的是有界面版本无界面64位没找到内存也比较足),记得linux要选用64位版本
步骤3.内存分配我为2G,我电脑为32G内存
步骤4.一直下一步(虚拟硬盘容量我都分配为30GB,实际master安装比较多组件需要多分配一点,这里要记得master作为协同CM工作的节点需要内存分配大点我测试是6个G不卡,2个G会很卡,slave工作节点可以分配2G不卡,当然跑spark这些内存是不够,spark模式只能用local模式做测试,吃内存大户测试集群不行),完成后如下图
步骤5.开始安装linux
这里选择跳过
选择next
选择第一个
机器的hostname设置(这里写错了到linux系统也可以做修改在hostname XX就好了,exit 重进就改了)
设置时区
自此开始安装linux系统
===========================================到这里安装完成linux系统开始配置机器环境================================================
步骤1.开始配置网络环境开始配置网络,本机外网和内网的打通
这是我和外网打通的配置
在外面linux工具需要选择桥接网卡,选择自己在用的网卡
步骤2:配置本机host文件
C:\Windows\System32\drivers\etc\hosts,把linux的hosts ip和hostsname加上去
192.168.1.113 master
192.168.1.114 slave1
192.168.1.115 slave2
找xshell或者CRT连接上虚拟机操作,分别配置好机器的hosts文件,在linux的/etc/hosts
步骤3:对三台linux设置相互免密访问过程(为了方便,实际上生产不会完全做免密操作)
ssh-keygen -t rsa生成密码文件目录在~/.ssh下
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2通过这个命令,此时slave1到slave2就免除密码
用同样方法对master slave1 slave2做相互免密操作
步骤4:开始安装rzsz文件方便需要文件的上传,下载完rzsz工具第一次通过ftp工具上载文件
开始安装rzsz
步骤5:开始安装mysql,我使用rpm包安装模式,也可以用tar和yum。(如果机器有网络强烈推介用yum,因为yum在安装插件的时候可以保证mysql各个包版本的一直比如client,server,mysql-python)
yum -y remove mysql-libs-*(redhat6默认会包含这个包需要清除不然mysqlserver无法安装上去)
https://downloads.mysql.com/archives/community/(自己选择对应的版本下载)
-rw-r--r--. 1 root root 19124980 Jul 8 15:00 MySQL-client-5.6.42-1.el6.x86_64.rpm
-rw-r--r--. 1 root root 57600260 Jul 8 14:45 MySQL-server-5.6.42-1.el6.x86_64.rpm
查看mysql首次登陆的随机密码
[root@slave1 tao]# vi /root/.mysql_secret
复制默认的密码进入首次mysql
# The random password set for the root user at Wed Jul 8 15:24:09 2020 (local time): tsHPJhx8gNC34ucX
设置mysql初始密码
set password=password('123456');(第一次登陆设置密码,到此mysql安装完毕)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
关闭linux自带防火墙
chkconfig iptables off
SELINUX关闭 setenforce 0
vi /etc/selinux/config ( SELINUX=disabled )
步骤6:安装oracle jdk
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
安装MySQL的jdbc驱动
下载MySQL的jdbc驱动,将驱动改名为mysql-connector-java.jar,然后三个节点将驱动复制到/usr/share/java目录下(没有该目录则自己创建,所有机器上都要装驱动)。
进入mysql创建SCM库:
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '密码';
=======================================开始安装cloudera manager==================================================
步骤1:下载CM6.3文件(这里要注意linux版本我选用的是6的版本)
步骤1:初始化SCM库
出现此错误是因为没有放mysql的驱动lib(此处放lib /opt/cloudera/cm/lib/mysql-connector-java.jar)
完成cloudera manager SCM库的初始化
步骤2:安装cloudera-server服务
rpm -ivh cloudera-manager-server-6.3.1-1466458.el6.x86_64.rpm
cd /etc/cloudera-scm-server
service cloudera-scm-server status/service cloudera-scm-server status
步骤3:安装 cloudera-manager-agent 服务
[root@master clouderaInstall]# rpm -ivh cloudera-manager-agent-6.3.1-1466458.el6.x86_64.rpm
warning: cloudera-manager-agent-6.3.1-1466458.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID b0b19c9f: NOKEY
error: Failed dependencies:
/lib/lsb/init-functions is needed by cloudera-manager-agent-6.3.1-1466458.el6.x86_64
httpd is needed by cloudera-manager-agent-6.3.1-1466458.el6.x86_64
mod_ssl is needed by cloudera-manager-agent-6.3.1-1466458.el6.x86_64
openssl-devel is needed by cloudera-manager-agent-6.3.1-1466458.el6.x86_64
python-psycopg2 is needed by cloudera-manager-agent-6.3.1-1466458.el6.x86_64
MySQL-python is needed by cloudera-manager-agent-6.3.1-1466458.el6.x86_64
缺包错误
接下来配置yum(但是内网不能用yum这个测了1挺久找包太累放弃了。最好还是公司内部自己有个yum服务器啊)
把yum配置成国内的yum源
vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.163.com/centos/6/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
yum clean all
yum list
然后就可以用yum把缺少插件安装上了
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
yum install -y httpd.x86_64
yum install -y mod_ssl.x86_64
yum install -y openssl-devel.x86_64
yum install -y MySQL-python.x86_64
yum install -y python-psycopg2.x86_64
yum install -y redhat-lsb.x86_64
yum list | grep xx 查看包
yum install -y xxx 安装包
rpm -ivh cloudera-manager-agent-6.3.1-1466458.el6.x86_64.rpm
service cloudera-scm-agent start
注意如果前面安装了和yum不同版本的mysql,需要安装和mysql匹配的MySQL-python
MySQL-python is needed by cloudera-manager-agent-6.3.1-1466458.el6.x86_64 安装这个包用yum出现冲突,怀疑是包不兼容。于是下载新版本的MySQL-python包,但是安装过程还是出现报错缺包,
如果mysql-python安装不上也可能这个MySQL-shared-compat没安装上
三台机器都安装完cloudera-scm-agent后启动服务
service cloudera-scm-agent status/service cloudera-scm-agent status(这个命令可以看agent的状态)
此时可以访问 master:7180 (记得关闭防火墙)
开始安装CDH组件
如果机器全部被CM发现说明agent已经生效,下面就不用让你让新机器安装agent
选择你放到机器上的parcel(你这里如果在/opt/cloudera/parcel-repo预先放好文件,CM检测到就不用从网上再下载会省事很多,直接进行分配安装)
-rw-r--r--. 1 root root 2095098849 Jul 9 11:37 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el6.parcel
-rw-r--r--. 1 root root 40 Jul 10 09:59 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el6.parcel.sha
-rw-r--r--. 1 root root 64 Jul 10 10:05 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el6.parcel.sha256
-rw-r-----. 1 cloudera-scm cloudera-scm 80110 Jul 10 12:37 CDH-6.3.2-1.cdh6.3.2.p0.1605554-el6.parcel.torrent
在目录下先配置好安装文件,进行分配parcles时候会显示已经安装完
开始进行分配安装
数据库权限问题,需要设置数据库
先把主要组件添加,添加hdfs
添加cloudera manager的监控
一直下一步继续
此处记得先启动cm server(service cloudera-scm-server start)服务再启动全部机器的cm agent(service cloudera-scm-agent start)服务不然会有时候出现检测不到(sudo -uhdfs hdfs dfsadmin -safemode leave离开安全模式)
添加在zookeeper服务,一直下一步完成
开始安装yarn,选择依赖zk
安装hive,需要配置元数据库
这里是mysql默认无远程访问权限造成
用root进入mysql创建个新用户,并进行授权库和远程操作权限(如果不行多百度试试,以前安装过5.X从来用root用户做元数据库,6.x好像必须新建个用户了不然一直连接不上)
CREATE USER 'hive'@'%' IDENTIFIED BY '123456';
create database hive;
#GRANT ALL ON *.* TO 'hive'@'%';
GRANT ALL ON *.* TO 'hive'@'%' IDENTIFIED BY '123456';
flush privileges;
直接一直下一步直到安装完成.
节点会出现告警大多是由于内存交换问题,或者虚拟机磁盘内存阈值造成,自己测试调试学习可以无视。
==============================开始安装flink的parcles==========================================
下载地址:https://archive.cloudera.com/csa/1.0.0.0/csd/ 下载flink jar
https://archive.cloudera.com/csa/1.0.0.0/parcels/ 下载flink 文件
步骤1:将这两个flink的parcles和sha rz到之前放cdh文件的目录/opt/cloudera/parcel-rep
mv FLINK-1.9.0-csa1.0.0.0-cdh6.3.0.jar /opt/cloudera/csd/(记得要把jar包放到/opt/cloudera/csd/下,cloudera manager才能继承flink工具操作,不然界面看不到的)
步骤2:进入parcles进行分配文件和安装
步骤3:找不到文件的情况下可以点击检测进行扫描文件,点击分配开始安装
点击激活
开始添加flink服务
一直下一步直到安装完成
自此全部安装完成,集群由于使用虚拟机其实还有很多调节的地方,比如时间同步问题。磁盘剩余多少告警,CM监控还有点问题。都属于细节问题可以网上查询解决。默认yarn和hive也需要调节任务并行问题等。