欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录

程序员文章站 2022-05-01 13:03:29
...

一、搭建之前的准备

1.安装包下载

1.1 cm6.2.1下载

https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPMS/x86_64/
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录

1.2 cdh6.2.1下载

https://archive.cloudera.com/cdh6/6.2.1/parcels/
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录如果不会下载json文件和sha1文件,建议使用wget命令下载,很方便!

1.3 mysql下载

https://dev.mysql.com/downloads/mysql/
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录

1.4 jdk下载

历史版本:https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html

最新版本:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

2 集群初步规划

2.1 服务器配置(centos7)

arturo.cdh.dn01 IP(10.0.10.1) 初步角色分配(cm,agent,nn) 内存6G 磁盘40G
arturo.cdh.dn02 IP(10.0.10.2) 初步角色分配(agent,datanode) 内存2G 磁盘30G
arturo.cdh.dn03 IP(10.0.10.3) 初步角色分配(agent,datanode) 内存2G 磁盘30G
arturo.cdh.dn04 IP(10.0.10.4) 初步角色分配(agent,datanode) 内存2G 磁盘30G

3 环境准备

3.1 修改主机名

hostnamectl set-hostname arturo.cdh.dn01
echo hostname=arturo.cdh.dn01 > /etc/sysconfig/network
其余节点参照修改

3.2 配置服务器hosts

vi /etc/hosts
arturo.cdh.dn01	10.0.10.1
arturo.cdh.dn02	10.0.10.2
arturo.cdh.dn03	10.0.10.3
arturo.cdh.dn04	10.0.10.4

3.3 关闭NetworkManager

systemctl stop NetworkManager 
systemctl disable NetworkManager 

3.4 关闭防火墙

systemctl stop firewalld 
systemctl disable firewalld

3.5 关闭selinux和设置swap交换空间使用

1) 关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
2) 设置禁止使用交换内存
echo 'vm.swappiness=0' >> /etc/sysctl.conf 
sysctl -p
3) 查看密码文件是否上锁
lsattr /etc/passwd /etc/shadow
如果存在上锁的话需要解锁,安装完成后再重新上锁(一般数仓客户的服务器环境都需要解锁,装完上锁)
chattr -i /etc/passwd /etc/shadow	#上锁命令
chattr +i /etc/passwd /etc/shadow	#解锁命令

[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录

3.6 禁用透明大页面

1) 执行命令
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
chmod +x /etc/rc.d/rc.local
2) 设置开机自动关闭
echo "if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never >
/sys/kernel/mm/transparent_hugepage/enabled fi if test -f
/sys/kernel/mm/transparent_hugepage/defrag; then echo never >
/sys/kernel/mm/transparent_hugepage/defrag fi " >> /etc/rc.d/rc.local

3.7 搭建本地私服

1) 创建目录
mkdir /media/iso 
将镜像文件挂在到iso目录下(这里的镜像文件需要调整为现场的文件)
mount -o loop -t iso9660 /media/CentOS-7-x86_64-DVD-1908.iso /media/iso/
备份或者直接删除原有的操作系统repo
mkdir -p /etc/yum.repos.d/bak
cd /etc/yum.repos.d/
mv *.repo bak 
rm -rf *.repo

2) 创建新的操作系统repo
vi /etc/yum.repos.d/cdrom.repo 
[cdrom] 
name=isofile 
baseurl=file:///media/iso
enabled=1 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

3) 清除yum缓存
yum clean all
从新加载yum缓存
yum makecache

配置httpd服务器,并且使用本地私服的镜像文件

1) 主节点安装httpd
yum -y install httpd
修改/etc/httpd/conf/httpd.conf配置⽂件,在<IfModulemime_module>中修改以下内容 
vi /etc/httpd/conf/httpd.conf
AddType application/x-gzip .gz .tgz .parcel
启动 httpd 服务并设置开机自启动: 
systemctl start httpd 
systemctl enable httpd 
2) 主节点复制镜像源文件到私服下:
cp -r /media/iso /var/www/html
删除服务器可能存在的原有repo文件,创建本地服务器repo
vi /etc/yum.repos.d/cdrom.repo 
[cdrom] 
name=isofile 
baseurl=http://172.16.39.2/iso
enabled=1 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

3) 其他服务器删除可能存在的原有repo文件(所有节点执行)
rm -rf /etc/yum.repos.d/*.repo
分发主节点cdrom.repo到其他服务器/etc/yum.repos.d/目录(所有datanode节点执行)
scp -r /etc/yum.repos.d/cdrom.repo arturo.hdp.dn02:/etc/yum.repos.d/
4) 所有服务器执行重新加载yum源命令
yum clean all
yum makecache

3.8 配置ntp时间同步

主节点配置时钟主机

1) 修正主节点时间,输入 date 命令,查看时间是否是当前时间 
修改时区的命令: 
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2) 修改时间为当前时间  date -s "2020-07-24 11:09:27" 
修改其他机器时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3) 安装ntpd
yum -y install ntp

4) 增加配置:(配置本地同步 )
server 127.127.1.0 # local clock 
fudge 127.127.1.0 stratum 10 
5) 注释不需要的 server (加#号注释)
#restrict 127.0.0.1
#restrict ::1

#server 0.centos.pool.ntp.org iburst 
#server 1.centos.pool.ntp.org iburst 
#server 2.centos.pool.ntp.org iburst 
#server 3.centos.pool.ntp.org iburst 
6) 给指定的客户机访问 ntp server 的权限(restrict 后面的 arturo.hdp.dn01就是我 们的 ip 的前三个数字) 删除#号修改即可。
restrict arturo.hdp.dn01 mask 255.255.255.0 nomodify notrap
(允许那些机器可以和我同步)
7) 启动 ntpd 服务,并且设置 ntpd 开机自启动 
systemctl start ntpd 
systemctl enable ntpd 

其他节点配置与主机同步

其他机器作为 ntpd 客户端,分别其它机器上执行如下的命令来配置 ntpd: 
vi /etc/ntp.conf 
1) 增加配置: 
server arturo.hdp.dn01
2)注释不需要的 server 
#server 0.rhel.pool.ntp.org iburst
#server 1.rhel.pool.ntp.org iburst
#server 2.rhel.pool.ntp.org iburst
#server 3.rhel.pool.ntp.org iburst
3) 启动 ntpd 服务,并且设置 ntpd 开机自启动
systemctl start ntpd 
systemctl enable ntpd
4) 查看时间同步进度 
使用命令 ntpq -p 来查看时间同步进度(时间同步 cdh-master 需要大概 10 分钟左右才能同步好) 
查看同步状态 ntpstat
查看和谁同步ntpq -p 
如果时间越差的太多,可以采用
date -s "2020-07-24 13:30:00" 和ntpd -u arturo.hdp.dn01
手动来尽快同步。

3.9 设置主节点与其他节点的免密登录

在 arturo.hdp.dn01 节点上在 worker 节点启动相关的组件服务的时候需要无**的登陆 worker 节点,所以我们需要配置 ajxt.hdp.dn01 到 worker 节点无**登陆。
1)生成**
ssh-****** -t rsa
连续回车3下
2)将自己的公钥发给每一台机器,包括自己
ssh-copy-id arturo.hdp.dn01
ssh-copy-id arturo.hdp.dn02
ssh-copy-id arturo.hdp.dn03
ssh-copy-id arturo.hdp.dn04
3)分发完成过后,ssh hostname  不输入密码跳转成就可以了。

3.10 JDK的安装

1) 卸载CentOS自带的openJDK:
查看openJDK命令:rpm -qa|grep java
卸载openJDK相关
   执行命令:rpm -e --nodeps 文件名
2) 在所有节点创建 JDK 目录: 
mkdir -p /usr/java 
将上传的 jdk1.8.0_212.tar.gz 解压至/usr/java 目录 
cd /usr/java 
tar -xvf jdk1.8.0_212.tar.gz 
3) 将 JDK 复制到所有节点,在所有节点创建目录: 
scp -r /usr/java/jdk1.8.0_212 arturo.hdp.dn01:/usr/java/ 
scp -r /usr/java/jdk1.8.0_212 arturo.hdp.dn02:/usr/java/ 
scp -r /usr/java/jdk1.8.0_212 arturo.hdp.dn03:/usr/java/ 
scp -r /usr/java/jdk1.8.0_212 arturo.hdp.dn04:/usr/java/ 
在所有节点执行创建 JDK 目录的软链接(CDH 默认识别/usr/java/default 目录) 
ln -s /usr/java/jdk1.8.0_212 /usr/java/default 
所有节点添加环境变量 
vi /etc/profile 
JAVA_HOME=/usr/java/jdk1.8.0_231 
JRE_HOME=/usr/java/jdk1.8.0_231/jre 
CLASS_PATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib 
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 
export JAVA_HOME JRE_HOME CLASS_PATH PATH 
退出保存/etc/profile,执行命令命令使环境变量生效 
source /etc/profile 
4) 执行查看版本命令,出现下面的界面则表示成功 
java -version

PS:生产环境出现搭建JDK环境后,cloudera-manager-agent依然无法找到java_home的情况,所以需要用yum的方式安装或者选择不卸载系统自带的1.8 oracle版本的jdk,不会影响系统的运行,具体看情况再定 。

3.11 MySQL的安装

1)在arturo.hdp.dn01节点上安装Mysql,卸载已有的mysql
rpm -qa | grep mysql
rpm -e --nodeps【包名】
卸载CentOS自带的mariadb,不然mysql装不进去
查看mariadb命令:rpm -qa|grep mariadb
 卸载mariadb相关
执行命令:rpm -e --nodeps 文件名
执行安装:
rpm -ivh mysql-community-common-5.7.15-1.el6.x86_64.rpm --force --nodeps 
rpm -ivh mysql-community-libs-5.7.15-1.el6.x86_64.rpm --force --nodeps 
rpm -ivh mysql-community-libs-comp-5.7.15-1.el6.x86_64.rpm --force --nodeps 
rpm -ivh mysql-community-client-5.7.15-1.el6.x86_64.rpm --force --nodeps 
rpm -ivh mysql-community-server-5.7.15-1.el6.x86_64.rpm --force --nodeps 
2)修改my.cnf的配置
vim /etc/my.cnf
[client]
default-character-set=utf8
[mysql]
skip-grant-tables
character_set_server=utf8
init_connect='SET NAMES utf8'
max_connections=2000
使用root用户免密登录mysql
3)修改 root 密码 
systemctl restart mysqld
mysql -uroot
use mysql ;
update user set Authentication_string=PASSWORD('datanode01') where USER='root';
flush privileges;
退出mysql
quit;
注释掉skip-grant-tables免密登录
重启mysqld
systemctl restart mysqld
设置开机启动 
systemctl enable mysqld
或者
	chkconfig mysqld on 
启动 mysql: 
systemctl status mysqld 
systemctl start mysqld 
查看 mysql 日志: 
tail -f /var/log/mysqld.log
4)设置mysql可远程访问权限(可按需求选配置)
set global validate_password_policy=0;
set global validate_password_length=0;
ALTER USER USER() IDENTIFIED BY 'datanode01';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'datanode01' WITH GRANT OPTION;
flush privileges;
5)手工创建目录,并权限归属于 Mysql 
mkdir -p /var/run/mysqld 
chown -R mysql:mysql /var/run/mysqld 

放置mysql的jdbc驱动jar包

1)在所有机器上创建目录: 
mkdir -p /usr/share/java 
将 mysql 的 jdbc 的驱动 mysql-connector-java-5.1.47.jar 复制至/user/share/java 目录 下,然后执行: 
 cp /appinstall/cdh6/mysql-connector-java-5.1.47.jar /usr/share/java
设置软连接 
ln -s mysql-connector-java-5.1.47.jar mysql-connector-java.jar
切换目录
cd /usr/share/java
2)复制至其他节点: 
scp -r mysql-connector-java.jar ajxt.hdp.dn01:/usr/share/java
scp -r mysql-connector-java.jar ajxt.hdp.dn02:/usr/share/java
scp -r mysql-connector-java.jar ajxt.hdp.dn03:/usr/share/java
scp -r mysql-connector-java.jar ajxt.hdp.dn04:/usr/share/java

4 安装cm6.2.1

4.1 cm节点创建本地源

1)安装createrepo 
yum -y install createrepo 
上传 cdh6.2.1 至服务器/var/www/html/ 目录下,进入 cdh6.2.0 目录如下:
创建 /var/www/html/primary.ajxt.com.cn/cm6目录
2)进入目录 cm6 目录生成 RPM 元数据: 
cd /var/www/html/cm6 
createrepo . 
创建 /var/www/html/parcels目录
进入目录 parcels 目录生成 RPM 元数据: 
cd parcels 
createrepo . 
确保可以通过浏览器查看到这些 RPM 包
3)创建cm.repo
vi /etc/yum.repos.d/cm.repo
[cm.repo]
baseurl=http://10.0.10.1/cloudera/cm6/
gpgcheck=0
enabled=1
4) 复制cm.repo到其它数据节点
scp -r /etc/yum.repos.d/cm.repo arturo.cdh.dn02:/etc/yum.repos.d/
cm.repo
scp -r /etc/yum.repos.d/cm.repo arturo.cdh.dn03:/etc/yum.repos.d/
cm.repo
scp -r /etc/yum.repos.d/cm.repo arturo.cdh.dn04:/etc/yum.repos.d/
cm.repo

4.2 安装cloudera-manager-server

1)安装server客户端
yum -y install cloudera-manager-server
2) 初始化数据库到mysql中,打开mysql执行sql(用户名密码自定,记住从属关系就行)
set global validate_password_length=6;
set global validate_password_policy=0;

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 

GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'cdh_scm'; 
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'cdh_amon'; 
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'cdh_rman'; 
GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'cdh_hive'; 
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'cdh_hue'; 
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'cdh_sentry'; 
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'cdh_nav'; 
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'cdh_navms'; 
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'cdh_oozie'; 
flush privileges;
3)初始化cm6的配置库
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -harturo.cdh.dn01 --scm-host arturo.cdh.dn01 scm root aaa@qq.com

[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录

4)启动cloudera-manager-server
systemctl start cloudera-scm-server
systemctl status cloudera-scm-server
5) 过一分钟左右监听7180端口是否启用,Cloudera Manager Server 启动,需要稍微等待,可以通过命令查看启动状态: 
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log 

[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录

4.3 手动安装cloudera-manager-agent

1) 安装agent(所有节点执行)
yum -y install cloudera-manager-agent.x86_64
2) 修改配置文件,使所有agent指向cm节点(所有节点修改)
vi /etc/cloudera-scm-agent/config.ini

[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录

3) 启动agent
systemctl start cloudera-scm-server
systemctl status cloudera-scm-server
systemctl enable cloudera-scm-server

5 安装CDH6.2.1

1 配置安装文件

1) 上传CDH的parcel包到本地http服务器目录下,上传到/var/www/html/cloudera/cdh6目录即可
查看sha串
sha1sum CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel
对比官方下载下来的串是否正确
cat CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1
修改sha文件
mv CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.pa4-el7.parcel.sha1 CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha

2 开始安装CDH

使用chrome进入10.0.10.1:7180页面,初始账户密码admin/admin
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
按操作一顿下一步,选择免费版
来到安装界面
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
设置一个集群名字(随意!)
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
因为已经手动安装过agent,所以只需要添加已经管理的机器即可
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
添加http服务器的parcel地址
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
这里“远程Parel存储库URL”,其余的删除,选择本地http服务器的cdh包目录
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
点击继续开始安装CDH
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
一般配置没什么问题,这里安装也不会出什么岔子
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
勾选一下配置
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
选择需要添加的组件,由于我做数仓,所以选择包含impala内核的组件
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
自定义角色分配,这些组件和角色后续都可以调整,不用太过纠结
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
测试通过后继续往下安装
分配路径都默认就行,后续可以调整,点击继续直接开始运行
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
PS:如果遇到创建某个库下的表失败的话,删除用户名和表重建即可(由于我是自己虚拟机的原因造成)
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录

drop database hive;
drop user 'hive'@'%';
FLUSH PRIVILEGES;
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; 
GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'cdh_hive'; 
FLUSH PRIVILEGES;

Resume继续安装
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
运行完成,进入cloudera-manager-service界面,(集群名称存在一点隐私取名,抱歉!)
[CDH]企业数据仓库数据管理平台CDH6.2.1离线安装记录
至此,CDH6.2.1就安装完成了,已经写得很多了,后续的调整和集成LDAP,启用高可用配置等等调整,留着以后再记录吧!