CDH6集群的离线搭建

CDH6集群的搭建

  • 1、虚拟机和组件的获取和选择
    • 1.1、虚拟机
    • 1.2、版本选择
    • 1.3 、架包下载
  • 2、配置基础环境
    • 2.1、虚拟机IP配置
    • 2.2、配置hostname
    • 2.3、配置hosts
    • 2.4、禁用防火墙
    • 2.5、卸载mariadb数据库
    • 2.6、禁用SELinux功能
    • 2.7、安装第三方依赖
    • 2.8、配置ssh免密登陆
    • 2.9、配置时间同步
      • 2.9.1、server服务器配置
      • 2.9.1、client服务器配置
  • 3、配置MySQL数据库(主节点)
    • 3.1、安装并配置MySQL
    • 3.2、创建数据库
  • 4、创建本地yum源(主节点)
  • 5、安装jdk(每个节点)
  • 6、安装cm服务
    • 6.1、主节点安装
    • 6.2、子节点安装
  • 6、启动cm服务并配置页面

1、虚拟机和组件的获取和选择

安装集群为内网环境(自己练手用的),一些安装文件通过U盘拷贝。准备3台生产机器,每台机器运行内存8G(官方推荐),硬盘大小为100G

1.1、虚拟机

参数 说明
虚拟机名称 nn,dn1,dn2 19.168.229.[150/151/152]
虚拟机个数 3台 个数最少3个,且最好为奇数
内存 20G/4G 主节点20G子节点4G
磁盘 300G 三台相同
系统 CentOS-7-x86_64-DVD-1708.iso 三台相同
CDH版本 CDH-6.2.1 CDH目前支持100台免费支持

1.2、版本选择

系统
CentOS-7-x86_64-DVD-1708.iso
cm
cloudera-manager-agent-6.2.1-1426065.el7.x86_64.rpm
cloudera-manager-daemons-6.2.1-1426065.el7.x86_64.rpm
cloudera-manager-server-6.2.1-1426065.el7.x86_64.rpm
cloudera-manager-server-db-2-6.2.1-1426065.el7.x86_64.rpm
enterprise-debuginfo-6.2.1-1426065.el7.x86_64.rpm
jdk
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
ASC文件
allkeys.asc
CDH文件
CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel
CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1
manifest.json
JDBC驱动
mysql-connector-java-5.1.47.tar.gz
Mysql
MySQL-5.6.27-1.linux_glibc2.5.x86_64.rpm-bundle.tar

1.3 、架包下载

系统下载地址:http://mirrors.163.com/centos/7/isos/x86_64/
cm架包和jdk下载地址:https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPMS/x86_64/
ASC文件下载地址:https://archive.cloudera.com/cm6/6.2.1/
CDH文件下载地址:https://archive.cloudera.com/cdh6/6.2.1/parcels/
JDBC驱动下载地址:https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz
Mysql下载地址:https://downloads.mysql.com/archives/community/
CDH6集群的离线搭建_第1张图片

2、配置基础环境

2.1、虚拟机IP配置

输入如下命令,开始配置ip

 vi /etc/sysconfig/netwok-scripts/ifcfg-*  

进入文件后配置静态IP添加或者修改配置如下

添加配置参数

 IPADDR=192.168.229.150/151/152    
 NETMASK=255.255.255.0	
 GATEWAY=192.168.229.2
 DNS1=114.114.114.114	

上面的配置是添加的ip地址,子网掩码,网关和DNS

修改配置参数

ONBOOT=yes
BOOTPROTO=static
机器重启生效和 机器IP地址获取方式由动态变为静态 static=>> dhcp

重启network

  service network restart

检测是否能ping通其他内网机器,若无法ping通,查看ESXI配置,是否是桥接模式且宿主机器网络是否联通。

2.2、配置hostname

执行如下操作修改主机名称

 vi /etc/hostname  或者
 vi /etc/sysconfig/network

填写想要设定的主机名称即可,查看主机名称

hostname

2.3、配置hosts

配置hosts的目的在于CDH能够通过主机名称或者别名登陆其他机器。

 vi /etc/hosts

我的配置如下

192.168.229.150 nn   
192.168.229.151 dn1  
192.168.229.152 dn2 

2.4、禁用防火墙

CDH运行过程中,可能会因为防火墙的原因,会有特殊的问题,建议关闭防火墙,如果不能关闭,那需要逐条配置端口规则。

systemctl stop firewalld	
systemctl disable firewalld  

2.5、卸载mariadb数据库

mariadb 是centeOS 7 自带的数据库,这里卸载是因为会跟mysql的部分功能产生冲突,如果你的CM的管理要用mariadb 或者已经安装了其他的数据库软件,那么这步跳过。

rpm -qa |grep mariadb	
yum remove mariadb* -y

上面两步依次是检查是否安装了mariadb和卸载mariadb

2.6、禁用SELinux功能

首先查看 SELinux功能是否开启。

getenforce           

如果显示Permissive 或者 Disabled 该步骤直接跳过,如果是enforcing ,进行下一步

vi /etc/selinux/config

将SELINUX=enforcing改为 SELINUX= disabled或者在外面输入

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2.7、安装第三方依赖

离线安装CDH依赖文件太多太多,导致安装很困难,我们可以找一台可以联网的机器,安装一个虚拟机,装上相同的操作系统,什么其他的软件都不要安装,如果你的内网环境rpm的时候,需要什么依赖,你就直接在可以联网的机器上执行,执行的下面的命令

yum install --downloadonly --downloaddir=./你的软件 你的软件

然后就会只下载,不安装,通过U盘拷贝到内网环境 执行

rpm -ivh ./*.rpm --nodeps --force

这条命令中 --nodeps 是不检查依赖 --force是覆盖安装,安装即可。
如果集群可以连接网络使用如下指令

yum install -y bind-utils libxslt cyrus-sasl-plain cyrus-sasl-gssapi portmap fuse-libs /lib/lsb/init-functions httpd mod_ssl openssl-devel python-psycopg2 MySQL-python fuse ntp  perl perl-Module-Install.noarch

以上操作是在每个节点上运行进行搭建


2.8、配置ssh免密登陆

在一个节点上运行

ssh-keygen -t rsa      

回车三次 生成一个秘钥如下图所示
CDH6集群的离线搭建_第2张图片

分发密钥到所有节点

ssh-copy-id ip(需要分发节点的具体ip)

输入该节点的密码即可成功
验证:ssh root@节点名称 登陆成功不输入密码代表配置成功
(注:配置的第一个节点以后在配置第二个节点时不用再生成密钥,直接分发即可)

2.9、配置时间同步

CDH集群的所有机器都需要时钟同步,时间差距需要在10分钟以内。在集群中找一台机器当时钟同步的server ,其他机器直接从这个server上同步时间。

2.9.1、server服务器配置

修改系统时间

timedatectl set-ntp no 						
timedatectl set-time "2020-06-18 16:41:15"
timedatectl set-timezone Asia/Shanghai		
date	

上面的操作解释关闭ntp、设置时间 、设置时区和查看时间

配置时钟同步server

vi /etc/ntp.conf

对应修改

restrict 192.168.229.2 mask 255.255.255.0 nomodify notrap     
server 127.127.1.0     
fudge  127.127.1.0 stratum 10

上面的操作解释
第一行:允许内网其他机器同步时间;
第二行:外部时间服务器不可用时,以本地时间作为时间服务

注释以下内容

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

重启ntp 服务,关闭chronyd服务,ntp设置开机启动和同步时间

service ntpd restart
systemctl disable chronyd.service
systemctl enable ntpd.service
ntpstat

2.9.1、client服务器配置

修改时区和对应的配置文件

timedatectl set-timezone Asia/Shanghai	
vi /etc/ntp.conf

修改内容如下

server 192.168.229.150
restrict  192.168.229.150  nomodify notrap noquery  

上面的操作解释第二行:写server端的IP;第二行:允许上层时间服务器主动修改本机时间
注释以下内容

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

执行

ntpdate -u 192.168.229.150		
service ntpd restart				
systemctl disable chronyd.service	
systemctl enable ntpd.service			
ntpstat		

上面的操作解释
第一行:强制同步时间到server;
第二行:重启时钟同步服务
第三行:禁用chronyd服务;
第四行:开机启动;
第五行:查看同步状态

如果同步状态展示中,显示了ntp server的信息,表示同步成功,如果没有,那就等一会儿再执行看看

3、配置MySQL数据库(主节点)

安装mysql之前确认两件事
1、卸载mariadb数据库

rpm -qa | grep mariadb
yum remove -y mariadb*

2、安装这两个依赖perl, perl-Module-Install.noarch

3.1、安装并配置MySQL

解压文件

tar xvf MySQL-5.6.27-1.linux_glibc2.5.x86_64.rpm-bundle.tar

安装文件

rpm -ivh MySQL-*.rpm

复制配置文件并修改

cp /usr/share/mysql/my-default.cnf /etc/my.cnf
vi /etc/my.cnf

在[mysqld]后添加

default-storage-engine = innodb
innodb_file_per_table
collation-server = utf8_general_ci
init-connect = 'SET NAMES utf8'
character-set-server = utf8

以上配置好后进行初始化mysql

/usr/bin/mysql_install_db
cat  /root/.mysql_secret  
service mysql start
/usr/bin/mysql_secure_installation

上面的操作解释
第一行:初始化mysql;
第二行:查看MySQL初始密码;
第一行:开启mysql的服务;
第二行:进行MySQL的格式化;

运行mysql_secure_installation后会按顺序执行几个设置:
1、为root用户设置密码
2、删除匿名账号
3、取消root用户远程登录
4、删除test库和对test库的访问权限
5、刷新授权表使修改生效
CDH6集群的离线搭建_第3张图片

3.2、创建数据库

进入mysql :

mysql -uroot -p123456

使用mysql数据库:

use mysql

查看user表:

 select host,user from user; 

将user表中host选项只剩下localhost哪一行数据。
要一行一行的删除 语句:

delete from user where host='::1';

然后输入:

 update user set host='%';

查看是否修改

select user,host from user;

创建数据库,为以后的集群做准备:

create database hive DEFAULT CHARACTER SET utf8;
create user 'hive' identified by 'hive';
grant all on hive.* TO 'hive'@'%' with grant option;

create database amon DEFAULT CHARACTER SET utf8;
create user 'amon' identified by 'amon';
grant all on amon.* TO 'amon'@'%' with grant option;

create database rman DEFAULT CHARACTER SET utf8;
create user 'rman' identified by 'rman';
grant all on rman.* TO 'rman'@'%' with grant option;


create database oozie DEFAULT CHARACTER SET utf8;
create user 'oozie' identified by 'oozie';
grant all on oozie.* TO 'oozie'@'%' with grant option;

create database hue DEFAULT CHARACTER SET utf8;
create user 'hue' identified by 'hue';
grant all on hue.* TO 'hue'@'%' with grant option;

create database naud DEFAULT CHARACTER SET utf8;
create user 'naud' identified by 'naud';
grant all on naud.* TO 'naud'@'%' with grant option;

create database nmet DEFAULT CHARACTER SET utf8;
create user 'nmet' identified by 'nmet';
grant all on nmet.* TO 'nmet'@'%' with grant option;

刷新权限

flush privileges;

将mysql服务设成开机启动

chkconfig mysql on

4、创建本地yum源(主节点)

创建之前确保httpd,createrepo已下载没有下载执行下面的指令

yum install -y httpd
yum install -y createrepo

开启http服务

service httpd start

进入/var/www/html/中创建cm6和cdh6文件夹


如上面两个图所示将文件放入
进入cm6中输入

createrepo .

创建源文件(以下的每个节点都要做)

cat >> /etc/yum.repos.d/cm6.repo << EOF
[cm6.repo-local]
name=cm6.repo-local
baseurl=http://nn/cm6
enabled=1
gpgcheck=0
EOF

删除或者屏蔽CenteOS 自带的源,因为你无法访问外网,不删除会报错

rm -rf /etc/yum.repos.d/Centos*
或者
mkdir -p /etc/yum.repos.d/centos
mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/centos

清理缓存的源并验证

yum clean all
yum repolist

设为开机启动

systemctl enable httpd

5、安装jdk(每个节点)

本地yum源中有jdk的包,所以直接安装即可

yum install -y oracle-j2sdk1.8

配置java的环境变量的脚本方便省事

#! /bin/bash
echo 进入解压文件创建软连接
cd /usr/java/
ln -s jdk1.8* jdk8
echo 软连接创建成功
echo 开始配置环境
cd jdk8/
javahome=`pwd`
echo '' >> /etc/profile
echo '# JAVA_HOME' >> /etc/profile
echo export JAVA_HOME=$javahome >> /etc/profile
echo export PATH=\$JAVA_HOME/bin:\$PATH >> /etc/profile
source /etc/profile
echo 配置环境成功,请按回车进行验证
read k
java -version

创建驱动的文件夹并安装mysql的JDBC驱动

mkdir -p /usr/share/java/
cp mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar

6、安装cm服务

6.1、主节点安装

安装服务

yum install -y  cloudera-manager-daemons
yum install -y  cloudera-manager-server
yum install -y  cloudera-manager-agent

移动paracel包到parcel-repo
在安装服务后会自动生成/opt/cloulera/parcel-repo目录,将parcel移动到此目录,如果不复制的化,机器会尝试从网上下载。

mv CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel* /opt/cloudera/parcel-repo
mv manifest.json /opt/cloudera/parcel-repo/

将sha1结尾的文件改为sha结尾

mv /opt/cloudera/parcel-repo/CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha

修改权限

chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/

确定server主机

sed -i 's/server_host=localhost/server_host=nn/g' /etc/cloudera-scm-agent/config.ini

对应MySQL创建cm表

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h nn -uroot -p123456 --scm-host nn scm scm scm

6.2、子节点安装

安装服务

yum install -y  cloudera-manager-daemons
yum install -y  cloudera-manager-agent

确定server主机

sed -i 's/server_host=localhost/server_host=nn/g' /etc/cloudera-scm-agent/config.ini

6、启动cm服务并配置页面

systemctl start cloudera-scm-server
systemctl start cloudera-scm-agent

后面的配置可以参考https://www.cnblogs.com/yaowentao/p/12300437.html
基本上是傻瓜式安装。

我参考的网站
1、 https://blog.csdn.net/u010514380/article/details/88083139?utm_source=app
2、 https://www.cnblogs.com/yyy-blog/p/10697234.html
3、 https://blog.csdn.net/sinat_28007043/article/details/92840860
4、 https://www.cnblogs.com/swordfall/p/10816797.html
5、 https://www.cnblogs.com/mylovelulu/p/10384732.html
6、 https://www.cnblogs.com/yaowentao/p/12296329.html
7、https://www.cnblogs.com/yaowentao/p/12300437.html

本文内容为个人理解,如有错误,还请指出。

你可能感兴趣的:(其他,hadoop)