一.CDH简介
官网:https://www.cloudera.com/CDH,全称Cloudera's Distribution, including Apache Hadoop。是Hadoop众多分支中对应中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,提供了Hadoop的核心(可扩展存储、分布式计算),最为重要的是提供基于web的用户界面。优点:版本划分清晰,更新速度快,支持Kerberos安全认证,支持多种安装方式(如Yum、rpm等)。CDH分为Cloudera Manager管理平台和CDH parcel(parcel包含各种组件的安装包)。这里采用CM6.3.1(2019-10-11)和CDH6.3.2(2019-11-12更新)。二.CDH三节点集群搭建环境配置准备
1.三台机器配置及ip,每个节点的包和程序都放在/data下,包放在/data/cdh下centos7.6 主节点 ip:190.168.3.60centos7.6 从节点 ip:190.168.3.61 centos7.6 从节点 ip:190.168.3.622.修改主机名
hostnamectl set-hostname cdh01hostnamectl set-hostname cdh02hostnamectl set-hostname cdh033.关闭seLinux,firewalld
Sed -i 's/SELinux=enforcing/SELinux=disabled/' /etc/seLinux/configSystemctl stop firewalld 关闭防火墙Systemctl disable firewalld 禁用防火墙开机自启4.三台主机添加hosts,做好能相互解析
5.同步阿里云时间
ntpdate ntp1.aliyun.com6.三台机器相互免密
在root的根目录生成密钥:ssh-keygen -t rsa在cdh02上分发密钥:
ssh-copy-id cdh01ssh-copy-id cdh02ssh-copy-id cdh03在cdh03上分发密钥:
ssh-copy-id cdh01ssh-copy-id cdh02ssh-copy-id cdh03做完之后相互检测
7.禁用透明大页(所有节点)
查看透明大页的设置和启动状态cat /sys/kernel/mm/transparent_hugepage/defragcat /sys/kernel/mm/transparent_hugepage/enabled操作:临时关闭:echo never > /sys/kernel/mm/transparent_hugepage/defragecho never > /sys/kernel/mm/transparent_hugepage/enabled永久关闭:将临时关闭命令添加到/etc/rc.d/rc.local文件中,并赋予执行权限Echo ’echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.localecho 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.localchmod +x /etc/rc.d/rc.local验证:cat /etc/rc.d/rc.local8.修改Linux swappiness参数(所有节点)
为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0(cloudera建议10以下)echo 'vm.swappiness=10' >> /etc/sysctl.confsysctl -p9.安装JDK(所有节点)
注意:CDH的安装 要求使用指定版本的oracle-j2sdk1.8查询是否有已经安装的jdkrpm -qa | grep java如果之前安装过Java组件,先将其卸载yum remove java* -y上传安装包oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm到/data/cdh目录启动安装
rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm查找jdk安装路径find / -name java三.安装CDH三节点集群
1.Cloudera Manger下载https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/https://archive.cloudera.com/cm6/6.3.1/2.CDH下载
https://archive.cloudera.com/cdh6/6.3.2/parcels/3.在主节点上cdh01上安装数据库mysql下载版本为8
mysql-8.0.18-Linux-glibc2.12-x86_64.tar.xz查询出来已安装的mariadb rpm -qa | grep mariadb如果有,卸载mariadb,文件名为上述命令查询出来的文件rpm -e --nodeps 文件名创建目录mdkir /data/cdh ,上传安装包到/dat/cdh下
解压安装包
tar Jxvf mysql-8.0.18-Linux-glibc2.12-x86_64.tar.xz重命名mv mysql-8.0.18-Linux-glibc2.12-x86_64 mysqlmkdir /data/cdh/mysql/data创建并编辑my.cnf文件vim /etc/my.cnf填入以下内容[client]port=3306socket=/tmp/mysql.sock[mysqld]port=3306user=mysqlsocket=/tmp/mysql.sockbasedir=/data/cdh/mysqldatadir=/data/cdh/mysql/datalog-error=/data/cdh/mysql/error.logpid-file=/data/cdh/mysql/mysql.pidtransaction_isolation = READ-COMMITTEDcharacter-set-server = utf8collation-server = utf8_general_cilower_case_table_names = 1sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"创建组和用户
groupadd mysql useradd -g mysql mysql修改目录权限将 /data/cdh/mysql给予mysql用户 chown -R mysql:mysql /data/cdh/mysql/mysql将/data/cdh/mysql权限设置为755 chmod -R 755 /data/cdh/mysql/mysql初始化mysql cd /data/cdh/mysql
./bin/mysqld --initialize --user=mysql尝试启动mysqlcd cd /data/cdh/mysql./support-files/mysql.server start将mysql添加为服务
cp /data/cdh/mysql/support-files/mysql.server /etc/init.d/mysql设置开机启动cd /etc/init.dchmod 755 /etc/init.d/mysqlchkconfig --add mysqlchkconfig --level 345 mysql onservice mysql restart配置环境变量
echo 'export MYSQL_HOME=/usr/local/mysql' >> /etc/profileecho 'export PATH=.:$MYSQL_HOME/bin:$PATH' >> /etc/profilesource /etc/profile使用默认密码登陆mysqlmysql -uroot -p ...
在MySQL8中第一次登陆需要重新设置root密码123456ALTER user 'root'@'localhost' IDENTIFIED BY '123456';开启远程访问CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';GRANT ALL ON . TO 'root'@'%';FLUSH PRIVILEGES;这里注意要提前创建好库,要不然cdh集群启动会报错
create database cmserver;4.下载jdbc依赖,上传JDBC依赖包(所有节点)
mysql-connector-java-8.0.12.jar创建目录mkdir -p /usr/share/java,上传mysql-connector-java-8.0.12.jar包重命名 mv mysql-connector-java-8.0.12.jar mysql-connector-java.jar传到其他节点 scp mysql-connector-java.jar cdh01:/usr/share/java/5.安装Apache Httpd服务
安装启动yum install httpd -ysystemctl start httpdsystemctl enable httpd6.配置Cloudera Manager安装包yum源(master节点,此集群中为cdh01,cdh02和cdh03要配置该源)
创建目录mkdir -p /var/www/html/cloudera-repos/cm6将下载好的rmp安装包上传到/var/www/html/cloudera-repos/cm6创建仓库cd /var/www/html/cloudera-repos/cm6yum install -y createrepocreaterepo .创建repo文件(所有节点)vim /etc/yum.repos.d/cloudera-manager.repo[cloudera-manager]name=Cloudera Manager 6.3.1baseurl=http://cdh01/cloudera-repos/cm6gpgkey=https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPM-GPG-KEY-clouderagpgcheck=1enabled=1autorefresh=0type=rpm-md清理并缓存(所有节点):更新yum源yum clean allyum makecacheyum repolist查看cloudera源http://190.168.3.60/cloudera-repos/cm6/
将本地yum文件分发至从节点
cd /etc/yum.repos.d/scp cloudera-manager.repo [email protected]:$PWDscp cloudera-manager.repo [email protected]:$PWD更新cdh02和cdh03的yum源yum clean allyum makecacheyum repolist7.安装 Cloudera Manager(master节点,此集群中为cdh01)
执行安装yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server安装完CM后/opt/ 下会出现cloudera目录上传CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel和sha文件到/opt/cloudera/parcel-repo目录
执行校验
sha1sum CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel | awk '{print $1}' > CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha执行CM初始化脚本/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver root 123456启动服务
systemctl start cloudera-scm-server.service查看服务状态为启动systemctl status cloudera-scm-server.service8.其他服务安装及页面安装
在Windows C:Windows/system32/drivers/etc/hosts中进行添加190.168.3.60 cdh01方便浏览器可以访问 http://cdh01:7180/ 或者http://190.168.3.60:7180/用户名密码:admin/adminJDK 安装选项,选择不勾选
解决问题后,安装组件(HDFS,YARN,ZOOKEEPER)
这里可以将SecondaryNameNode和NameNode放在不同的机器,可以在NameNode异常时尽可能的确保数据正确性
数据库名称:cmserver
精彩评论