1、 首先准备材料,包括CDH5.15.1、CM5.15.1、JDK1.8.X、MySQL5.7.14(注意在下载时,一定要根据自己的Linux系统版本,下载相应的版本,可以参照官网的版本支持信息https://www.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_database_requirements.html)
2、 在服务器上安装JDK,配置JDK环境变量,关闭防火墙,配置SSH无密码访问
- 将jdk-8u181-linux-x64.rpm 上传至虚拟机 -----> 然后利用 rpm -ivh jdk-8u181-linux-x64.rpm进行安装 ------> 在/etc/profile文件中进行环境变量的配置 ---------->检查jdk环境是否配置成功
- 利用service iptables status查看防火墙的状态 -------> service iptables stop 关闭防火墙 ---------> chkconfig iptables --list 查看防火墙开机启动状态 -----------> chkconfig iptables off 关闭防火墙开机启动
- 安装cdh和cm所依赖的rpm包
yum install -y chkconfig
yum install -y Python
yum install -y bind-utils
yum install -y psmisc
yum install -y libxslt
yum install -y zlib
yum install -y sqlite
yum install -y cyrus-sasl-plain
yum install -y cyrus-sasl-gssapi
yum install -y fuse
yum install -y portmap
yum install -y fuse-libs
yum install -y redhat-lsb
yum install -y bind-utils
yum install -y libxslt
yum install -y sqlite
- 所有包安装成功 ---------> 在VM上进行虚拟机的克隆 ------->1、2、3、4 ---->更改主机名 vi /etc/sysconfig/network
- 配置SSH无密码访问 ------>https://www.cnblogs.com/ltolstar/p/9675055.html
3、配置ntp时间同步
- 安装ntp ------> yum install -y ntp --------->启用服务 chkconfig ntpd on ----->跟ntp网站同步一下时间 ntpdate cn.pool.ntp.org
- 修改ntp里面的配置文件 vi /etc/ntp.conf ----->将restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap 这句话前面的注释去掉 ----->保存文件
- 将ntp的服务进行启动 service ntpd start ----->查看ntp的状态 service ntpd status ---->成功
- 将其他节点同样安装ntp -----> yum install -y ntp ---->并启用服务 chkconfig ntpd on ------>跟ntp网站同步一下时间 ntpdate cn.pool.ntp.org ---->将各节点与主节点的时间进行同步 ntpdate -u n1
- 启动节点服务 ------>service ntpd start -----> chkconfig ntpd on ------>时间同步完成!
4、安装MySQL数据库
- 将下载好的正确版本的MySQL上传至服务器主节点 ----> 可以使用WinSCP
- 安装之前首先检查一下是否已经安装mariadb ------> rpm -qa |grep mariadb -------> 进行卸载rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps(因为在安装MySQL时会有冲突) ---->确认卸载完全
- 对MySQL上传的压缩包进行解压 -------> tar -zxvf mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz
- 给MySQL建立一个专门的文件夹 --------> cp mysql-5.7.14-linux-glibc2.5-x86_64 /usr/local/mysql -r
- 创建MySQL账户 -----> 先创建一个MySQL组 groupadd mysql ------>创建MySQL用户 useradd -r -g mysql mysql
- 进入MySQL安装目录 ------> 创建一个data文件夹(存放mysql数据库) ------>给mysql整个文件夹的使用权限给操作用户 chown -R mysql:mysql /usr/local/mysql ----->查看权限是否发生变化
- 创建配置文件 vi /etc/my.cnf 下图所示(Windows 下是.ini)----->文件中有些路径不存在要进行创建 (包括文件)----> mkdir -----> 将msqld文件的权限也给mysql
- 进入mysql的安装目录的bin文件夹 ---> 执行mysql数据库的初始化 ./mysqld --initialize ------->记住初始化密码
- 将 cp support-files/mysql.server /etc/init.d/mysql ----->启动mysql数据库 service mysql start ----->查看mysql数据库是否启动成功 ps -ef | grep mysql
- 进入到mysql文件夹下的bin目录 使用 ./mysql -u root -p启动数据库 ----->输入的密码为之前记住的密码(之前忘记密码可以进行修改)------>set password=password('123456'); 并修改成功!----> 重新进入检查密码是否更改成功
5、客户端远程连接mysql数据库
- 授权所有的客户端都可以访问服务器的权限-------> grant all privileges on *.* to root@'%' identified by '123456'; -----> 刷新权限 flush privileges;
- (和上面操作要区分两者区别)解决root权限访问所有的数据库的问题 -----> grant all privileges on *.* to 'root'@'n1' identified by '123456' with grant options;
- 用客户端工具进行检查权限是否分配成功,下图所示。
- 创建cloudera hadoop, cm 所需要的数据库 -------> hive数据库 create database hive default charset utf8 collate utf8_general_ci;
- 用来监控的数据库 -------> create database amon default charset utf8 collate utf8_general_ci;
- hue数据库 ---------> create database hue default charset utf8 collate utf8_general_ci;
- ooize 数据库-----> create database ooize default charset utf8 collate utf8_general_ci;
- ----------------->通过客户端进行查看,显示创建成功!
- 将上传的mysql的jar包到虚拟机 mysql-connector-java-5.1.47-bin.jar
6、设置mysql数据库为自动启动
- 首先查看 /etc/init.d 下面有没有mysql文件,如果有---------->设置权限,给mysql文件一个可执行权限 chmod +x mysql
- 然后将其添加到服务列表里面 chkconfig --add mysql -------->查看服务列表 chkconfig --list ----->若看到mysql (3-5)为on的状态说明添加成功
- 将mysql添加到环境变量中 -------> export PATH=$PATH:/usr/local/mysql/bin -----> 使得配置生效 source /etc/profile ---->登陆数据库检查是否成功
- reboot 重启虚拟机检查刚才的配置的数据库自动启动是否生效 ------>登陆mysql查看是否正常 mysql -u root -p ;或是用Navicat客户端进行访问
7、安装cm、安装cdh,展示cm,验证cdh安装是否成功
- 将下载好的3个安装包上传至虚拟机(可以用WinSCP)(CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel/ CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1/ cloudera-manager-centos7-cm5.15.1_x86_64.tar/ manifest.json)
- 首先建立专门的文件夹用来存放cloudera的数据 ------> mkdir /opt/cloudera-manager ----->将cloudera-manager移动到该目录下 mv cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz /opt/cloudera-manager
- 对该文件进行解压缩 tar -zxvf cloudera-manager-centos7-cm5.15.1_x86_64.tar.gz -----------> 解压过后就有一个文件夹cm-5.15.1
- 接下来将CDH三个文件夹存放到专门的文件夹下 ----> mkdir /opt/cloudera ----->在cloudera文件夹下 建立parcel-repo文件夹 ------>mkdir parcel-repo ---->将CDH的三个文件移动到parcel-repo文件夹下
- mv CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1 manifest.json /opt/cloudera/parcel-repo
- 将文件CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1 改一下名字将1去掉 ---------> mv CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1 CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha
- 将其他节点同样建立文件夹 -----> mkdir -p /opt/cloudera-manager 、 mkdir -p /opt/cloudera/parcel-repo
- 接下来在主节点上初始化cm的数据库 -------> 首先将下载好的驱动程序放到/opt/cloudera-manager/cm-5.15.1/share/cmf/lib 目录下 ------> mv mysql-connector-java-5.1.47-bin.jar /opt/cloudera-manager/cm-5.15.1/share/cmf/lib
- ----------> 执行 /opt/cloudera-manager/cm-5.15.1/share/cmf/schema/scm_prepare_database.sh mysql cm -h localhost -u root -p 123456 --scm-host localhost scm scm scm ----->输入密码后显示cloudera的数据库显示创建成功!!
- 使用命令 vi /etc/selinux/config 配置一些安全性设置 ----->设置SELINUX=disabled ---->同样的方式进行设置其他子节点
- 同步agent到其他节点 修改config.ini文件 ----> vi /opt/cloudera-manager/cm-5.15.1/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名(这里设置n1) --->保存退出!
- 然后将主节点中的cm-5.15.1复制到各子节点 -----> scp -r /opt/cloudera-manager/cm-5.15.1 root@n2:/opt/cloudera-manager scp -r /opt/cloudera-manager/cm-5.15.1 root@n3:/opt/cloudera-manager
- 在主节点上建立一系列cloudera hadoop所需要的一些目录 ,在创建之前需要在所有节点先创建cloudera-scm用户-----> useradd --system --home=/opt/cloudera-manager/cm-5.15.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
- 确保各子节点都存在文件夹parcel-repo -------> 在子节点中进行创建 mkdir -p /opt/cloudera/parcel-repo ---> 将主节点的 parcel-repo文件夹 拷贝到各子节点 --->scp -r /opt/cloudera/parcel-repo root@nx:/opt/cloudera
- 复制完成后使用命令 chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo 将目录parcel-repo授权给 cloudera-scm,对各节点进行如此操作
1 --------------在主节点执行创建目录 2 3 rm -rf /dfs 4 rm -rf /var/lib/zookeeper 5 rm -rf /opt/cloudera-manager/cm-5.15.1/lib/cloudera-scm-agent/* 6 rm -rf /var/lib/cloudera-scm-headlamp 7 rm -rf /var/lib/cloudera-scm-firehose 8 rm -rf /var/lib/cloudera-scm-alertpublisher 9 rm -rf /var/lib/cloudera-scm-eventserver 10 rm -rf /var/lib/cloudera-scm-server 11 12 rm -rf /var/log/cloudera-scm-headlamp 13 rm -rf /var/log/cloudera-scm-firehose 14 rm -rf /var/log/cloudera-scm-alertpublisher 15 rm -rf /var/log/cloudera-scm-eventserver 16 rm -rf /var/log/cloudera-scm-server 17 rm -rf /hbase 18 19 ---------如果之前安装过Cloudera Hadoop,那么之前创建的目录都需要重新创建,先删除,再创建 20 21 mkdir -p /var/lib/cloudera-scm-headlamp 22 mkdir -p /var/lib/cloudera-scm-firehose 23 mkdir -p /var/lib/cloudera-scm-alertpublisher 24 mkdir -p /var/lib/cloudera-scm-eventserver 25 mkdir -p /var/lib/cloudera-scm-server 26 27 mkdir -p /var/log/cloudera-scm-headlamp 28 mkdir -p /var/log/cloudera-scm-firehose 29 mkdir -p /var/log/cloudera-scm-alertpublisher 30 mkdir -p /var/log/cloudera-scm-eventserver 31 mkdir -p /var/log/cloudera-scm-server 32 mkdir /hbase 33 34 35 chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-headlamp 36 chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-firehose 37 chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-alertpublisher 38 chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-eventserver 39 chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server 40 41 chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-headlamp 42 chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-firehose 43 chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-alertpublisher 44 chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-eventserver 45 chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-server 46 chown -R cloudera-scm:cloudera-scm /opt/cloudera-manager 47 chown cloudera-scm:cloudera-scm /hbase/ 48 49 chown -R root:root /opt/cloudera/parcel-repo 50 51 52 53 rm -rf /user/hive/warehouse 54 mkdir -p /user/hive/warehouse 55 chown cloudera-scm:cloudera-scm /user/hive/warehouse 56 57 58 rm -rf /var/lib/cloudera-host-monitor 59 mkdir -p /var/lib/cloudera-host-monitor 60 chown cloudera-scm:cloudera-scm /var/lib/cloudera-host-monitor 61 62 rm -rf /var/lib/cloudera-service-monitor 63 mkdir -p /var/lib/cloudera-service-monitor 64 chown cloudera-scm:cloudera-scm /var/lib/cloudera-service-monitor
- 在主和子节点中分别创建文件夹 ----> mkdir /opt/cloudera-manager/cm-5.15.1/run/cloudera-scm-agent ------>创建完成!!
- 在主节点创建服务 ----> 先授权 chown -R cloudera-scm:cloudera-scm /opt/cloudera-manager ---->分别启动server 服务和 agent 服务 ----> /opt/cloudera-manager/cm-5.15.1/etc/init.d/cloudera-scm-server start 、/opt/cloudera-manager/cm-5.15.1/etc/init.d/cloudera-scm-agent start
- 注:在子节点中只启动agent服务,停止服务用stop;为了操作方便,设置开启时自动启动
开机启动service cp /opt/cloudera-manager/cm-5.15.1/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server --------> chkconfig cloudera-scm-server on
开机启动agents cp /opt/cloudera-manager/cm-5.15.1/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent --------> chkconfig cloudera-scm-agent on (注:在各子节点设置开机启动agents,关闭用off)
查看服务状态的命令
systemctl status cloudera-scm-server.service (systemctl是CentOS 7以后才有的命令) 等同于 service cloudera-scm-server status
systemctl start cloudera-scm-server.service
systemctl stop cloudera-scm-server.service
systemctl restart cloudera-scm-server.service
8、打开http://192.168.201.128:7180/cmf/login (注:Windows 自带的浏览器无法访问,可以用火狐浏览器,用户名和密码都是admin)
- 不同版本的操作系统在安装过程中会遇到很多问题,例如
- 异常1: 已启用“透明大页面”,可能会导致重大的性能问题。版本为”CentOS release 6.3 (Final)“ 且版本为 ”2.6.32-279.e16.x86_64“ 的Kernel 已将enabled 设置(每个节点)
解决 echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
- 异常2:cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。 当前设置为60, 使用sysctl 命令在运行时更改该设置并编辑/etc/sysctl.conf 在重启后保存该设置
解决 echo 0 > /proc/sys/vm/swappiness
sysctl vm/swappiness
echo 'vm.swappiness=0' > /etc/sysctl.conf
最终安装成功,进入管理界面!!
注:若出现驱动问题,需要向三个文件夹中考入mysql连接驱动
/opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/lib/hive/lib
/opt/cloudera/parcels/CDH-5.15.1-1.cdh5.15.1.p0.4/lib/oozie/lib
/var/lib/oozie