CDH6.3.2集群搭建
官网: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.60
centos7.6 从节点 ip:190.168.3.61
centos7.6 从节点 ip:190.168.3.62
2.修改主机名
hostnamectl set-hostname cdh01
hostnamectl set-hostname cdh02
hostnamectl set-hostname cdh03
3.关闭selinux,firewalld
Sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config
Systemctl stop firewalld 关闭防火墙
Systemctl disable firewalld 禁用防火墙开机自启
4.三台主机添加hosts,做好能相互解析
echo -e "190.168.3.60 cdh01\n190.168.3.61 cdh02\n190.168.3.62 cdh02\n " >> /etc/hosts
5.同步阿里云时间
ntpdate ntp1.aliyun.com
6.三台机器相互免密
在root的根目录生成密钥:
ssh-keygen -t rsa
在cdh01上分发密钥:
ssh-copy-id cdh01
ssh-copy-id cdh02
ssh-copy-id cdh03
在cdh02上分发密钥:
ssh-copy-id cdh01
ssh-copy-id cdh02
ssh-copy-id cdh03
在cdh03上分发密钥:
ssh-copy-id cdh01
ssh-copy-id cdh02
ssh-copy-id cdh03
做完之后相互检测
7.禁用透明大页(所有节点)
查看透明大页的设置和启动状态
cat /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled
操作:
临时关闭:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 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.local
echo ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled‘ >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
验证:cat /etc/rc.d/rc.local
8.修改Linux swappiness参数(所有节点)
为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0(cloudera建议10以下)
echo ‘vm.swappiness=10‘ >> /etc/sysctl.conf
sysctl -p
9.安装JDK(所有节点)
注意:CDH的安装 要求使用指定版本的oracle-j2sdk1.8
查询是否有已经安装的jdk
rpm -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
配置环境变量
echo ‘export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera‘ >> /etc/profile
echo ‘export PATH=.:$JAVA_HOME/bin:$PATH‘ >> /etc/profile
source /etc/profile
验证java -version
三.安装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 mysql
mkdir /data/cdh/mysql/data
创建并编辑my.cnf文件
vim /etc/my.cnf
填入以下内容
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
user=mysql
socket=/tmp/mysql.sock
basedir=/data/cdh/mysql
datadir=/data/cdh/mysql/data
log-error=/data/cdh/mysql/error.log
pid-file=/data/cdh/mysql/mysql.pid
transaction_isolation = READ-COMMITTED
character-set-server = utf8
collation-server = utf8_general_ci
lower_case_table_names = 1
sql_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
尝试启动mysql
cd 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.d
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on
service mysql restart
配置环境变量
echo ‘export MYSQL_HOME=/usr/local/mysql‘ >> /etc/profile
echo ‘export PATH=.:$MYSQL_HOME/bin:$PATH‘ >> /etc/profile
source /etc/profile
使用默认密码登陆mysql
mysql -uroot -p ...
在MySQL8中第一次登陆需要重新设置root密码123456
ALTER 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 -y
systemctl start httpd
systemctl enable httpd
6.配置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/cm6
yum install -y createrepo
createrepo .
创建repo文件(所有节点)
vim /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name=Cloudera Manager 6.3.1
baseurl=http://cdh01/cloudera-repos/cm6
gpgkey=https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPM-GPG-KEY-cloudera
gpgcheck=1
enabled=1
autorefresh=0
type=rpm-md
清理并缓存(所有节点):更新yum源
yum clean all
yum makecache
yum repolist
查看cloudera源http://190.168.3.60/cloudera-repos/cm6/
将本地yum文件分发至从节点
cd /etc/yum.repos.d/
scp cloudera-manager.repo root@190.168.3.61:$PWD
scp cloudera-manager.repo root@190.168.3.62:$PWD
更新cdh02和cdh03的yum源
yum clean all
yum makecache
yum repolist
7.安装 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.service
8.其他服务安装及页面安装
在Windows C:Windows/system32/drivers/etc/hosts中进行添加190.168.3.60 cdh01
方便浏览器可以访问 http://cdh01:7180/ 或者http://190.168.3.60:7180/
用户名密码:admin/admin
WELCOME 继续
Accept License 同意协议,继续
Select Edition 勾选免费版,继续
Welcome (Add Cluster - Installation) 创建集群
Cluster Basics 集群起名
Specify Hosts 添加节点,地址是之前安装的地址,不影响参考
Select Repository 选择安装方式
JDK 安装选项,选择不勾选
提供root SSH 登录凭据
Install Agents 安装agent
Install Parcels 安装数据包
Inspect Cluster 检查集群
解决问题后,安装组件(HDFS,YARN,ZOOKEEPER)
这里可以将SecondaryNameNode和NameNode放在不同的机器,可以在NameNode异常时尽可能的确保数据正确性
数据库名称:cmserver
基本设置不许更改
安装完成,解决问题
查看主机节点信息
其他的组件服务可以通过CDH的添加服务安装
原文:https://blog.51cto.com/anfishr/2550426