CDH6.3.2搭建(一)——搭建流程

前言-虚拟机安装Centos 7 【略】

一、环境准备

1.0 设置静态ip,重启网络

vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"      【dhcp修改成static】
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="3ae6eeaa-9ed5-4166-89d2-6212f0e65c13"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.44.101    【添加】
GATEWAY=192.168.44.2     【添加】
DNS1=192.168.44.2        【添加】
service network restart     --重启网络

若是xshell客户端修改,会出现下面提示,按静态IP重新配置连接

1.1 3台机器主机名配置,reboot重启

[root@localhost ~]# hostname cdh01
[root@localhost ~]# vi /etc/hostname
cdh01

[root@localhost ~]# reboot

修改后

1.2 配置hosts映射

# vim /etc/hosts

 1.3 关闭防火墙

[root@cdh01 admin]# systemctl stop firewalld
[root@cdh01 admin]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@cdh01 admin]# 

1.4 SSH免密登录

先实现每一个节点自己免密码登录自己
在cdh01节点上操作

[root@cdh01 ~]# ssh-keygen -t rsa
[root@cdh01 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root@cdh01 ~]# ssh cdh01
[root@cdh01 ~]# exit

在cdh02节点上操作

[root@cdh01 ~]# ssh-keygen -t rsa
[root@cdh01 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root@cdh01 ~]# ssh cdh02
[root@cdh01 ~]# exit

在cdh03节点上操作

[root@cdh01 ~]# ssh-keygen -t rsa
[root@cdh01 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root@cdh01 ~]# ssh cdh03
[root@cdh01 ~]# exit

接着实现cdh01免密码登录cdh02和cdh03

在cdh01节点上操作

[root@cdh01 ~]# scp ~/.ssh/authorized_keys  cdh02:~/

[root@cdh01 ~]# scp ~/.ssh/authorized_keys  cdh03:~/

在cdh02和cdh03节点上操作

[root@cdh02 ~]# cat ~/authorized_keys >> ~/.ssh/authorized_keys

[root@cdh03 ~]# cat ~/authorized_keys >> ~/.ssh/authorized_keys

此时cdh01节点就可以免密码登录cdh02和cdh03了
验证一下

[root@cdh01 ~]# ssh cdh02
Last login: Wed Oct 28 14:31:26 2020 from cdh02
[root@cdh02 ~]# exit
logout
Connection to cdh02 closed.
[root@cdh01 ~]# ssh  cdh03
Last login: Wed Oct 28 14:32:14 2020 from cdh03
[root@cdh03 ~]# exit
logout
Connection to cdh03 closed.

接着实现cdh02免密码登录cdh01和cdh03
在cdh02节点上操作

[root@cdh02 ~]# scp ~/.ssh/authorized_keys cdh01:~/

[root@cdh02 ~]# scp ~/.ssh/authorized_keys cdh03:~/

在cdh01和cdh03节点上操作

[root@cdh01 ~]# cat ~/authorized_keys >> ~/.ssh/authorized_keys
[root@cdh03 ~]# cat ~/authorized_keys >> ~/.ssh/authorized_keys 

此时cdh02节点就可以免密码登录cdh01和cdh03了
 

接着实现cdh03免密码登录cdh01和cdh02
在cdh02节点上操作

[root@cdh03 ~]# scp ~/.ssh/authorized_keys cdh01:~/

[root@cdh03 ~]# scp ~/.ssh/authorized_keys cdh02:~/

在cdh01和cdh02节点上操作

[root@cdh01 ~]# cat ~/authorized_keys >> ~/.ssh/authorized_keys
[root@cdh02 ~]# cat ~/authorized_keys >> ~/.ssh/authorized_keys 

此时cdh02节点就可以免密码登录cdh01和cdh02了

到此为止,集群内的所有节点都可以互相免密码登录了。

 1.5 配置NTP时钟同步

1)首先在三台机器上进行如下操作
安装ntp服务,同步阿里云ntp服务器时间

[root@cdh01 ~]# yum -y install ntp
[root@cdh01 ~]# vi /etc/ntp.conf
.....
# 将下面这四行内容注释掉
#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

# 然后增加一行内容
server ntp.aliyun.com

#启动ntp服务
[root@cdh01 ~]# service ntpd start
Redirecting to /bin/systemctl start ntpd.service

#添加到开机启动项里面
[root@cdh01 ~]# systemctl enable ntpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.

配置好了以后查看验证一下当前同步的时间服务器
随便找一台机查看一下。

注意:需要等5~10分钟才能看到类似下面的结果,显示出来下面这种结果的时候才说明是真正成功了,如果看不到这样的效果,需要等一会再来查看。

[root@cdh01 ~]# ntpq -p          
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*203.107.6.88    100.107.25.114   2 u   40  128  377   36.058   -7.906   1.142
[root@cdh01 ~]# ntpstat 
synchronised to NTP server (203.107.6.88) at stratum 3
   time correct to within 42 ms
   polling server every 128 s

1.6 关闭SELINUX

安全增强型Linux(Security-Enhanced Linux)简称SELinux,它是一个 Linux 内核模块,也是Linux的一个安全子系统。为了避免安装过程出现各种错误,建议关闭,有如下两种关闭方法:

1)临时关闭(重启机器后会失效)

# setenforce 0

2)永久关闭(建议使用)

# vim /etc/selinux/config

--将SELINUX=enforcing 改为SELINUX=disabled

3)同步/etc/selinux/config配置文件

cd /root/bin
sh xsync.sh /etc/selinux/config 

--该脚本会批量修改其他机器的配置文件


4)重启master、slave01、slave02

# reboot

二、CM安装准备软件

2.1 安装JDK

#将jdk的rpm安装包上传到cdh01的/opt目录下
#安装jdk: 
    rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
#拷贝至其他机器:
    scp -rq oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm  cdh02:/opt/
    scp -rq oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm  cdh03:/opt/

#修改环境变量,在profile文件末尾添加JDK路径
   vim /etc/profile
   
    #JAVA_HOME
    export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
    export PATH=$PATH:$JAVA_HOME/bin

#重新加载环境变量
    source /etc/profile

#测试
    java -version

2.2 安装Mysql

卸载原生的mariadb

[root@cdh01 opt]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@cdh01 opt]# 

 将MySQL安装包上传到cdh01的/opt目录中

将MySQL安装包上传到cdh01的/opt目录中,解压

[root@cdh01 opt]# tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar 

 安装MySQL

[root@cdh01 opt]# rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm --force --nodeps
[root@cdh01 opt]# rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm --force --nodeps
[root@cdh01 opt]# rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm --force --nodeps
[root@cdh01 opt]# rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm --force --nodeps
[root@cdh01 opt]# rpm -ivh mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm --force --nodeps

先初始化MySQL

[root@cdh01 opt]# mysqld --initialize --user=mysql

 获取MySQL生成的随机密码,在文件/var/log/mysqld.log的最后一行

[root@cdh01 opt]# cat /var/log/mysqld.log | tail -1
2020-10-28T11:51:25.902353Z 1 [Note] A temporary password is generated for root@localhost: Z+W(z1V%cii=

 设置MySQL服务开机启动

[root@cdh01 opt]# systemctl start mysqld.service

重启一下MySQL服务,否则连不上去

[root@cdh01 opt]# systemctl restart mysqld

修改密码 

[root@cdh01 opt]# mysql -uroot -p



mysql> alter user user() identified by "abc123456";

在MySQL中创建数据库,后面会用到这些库。

create database cmserver default charset utf8 collate utf8_general_ci;
grant all on cmserver.* to 'root'@'%' identified by 'abc123456';

 
create database metastore default charset utf8 collate utf8_general_ci;
grant all on metastore.* to 'root'@'%' identified by 'abc123456';

 
create database rman default charset utf8 collate utf8_general_ci;
grant all on rman.* to 'root'@'%' identified by 'abc123456';

 
create database oozie default charset utf8 collate utf8_general_ci;
grant all on oozie.* to 'root'@'%' identified by 'abc123456';

 
create database hue default charset utf8 collate utf8_general_ci;
grant all on hue.* to 'root'@'%' identified by 'abc123456';

创建/usr/share/java目录,将mysql的connector驱动jar包上传到里面
注意:需要在集群内的所有节点操作
先在cdh01、cdh02、cdh03上创建目录

[root@cdh01 ~]# mkdir -p /usr/share/java
[root@cdh02 ~]# mkdir -p /usr/share/java
[root@cdh03 ~]# mkdir -p /usr/share/java

将mysql的connector驱动jar包上传到集群内所有节点的/usr/share/java目录中,jar包重命名

[root@cdh01 java]# mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar

[root@cdh02 java]# mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar

[root@cdh03 java]# mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar

2.3 在cdh01节点上安装Httpd服务

使用yum在线安装httpd

[root@cdh01 opt]# yum -y install httpd

启动httpd服务

[root@cdh01 opt]# systemctl start httpd

添加到开启启动项中

[root@cdh01 opt]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

2.4 在cdh01节点上配置Cloudera Manager包

创建目录

[root@cdh01 opt]# mkdir -p /var/www/html/cloudera-repos/cm6

将Cloudera Manager的相关文件上传到/var/www/html/cloudera-repos/cm6目录中 ,allkeys.asc  RPM-GPG-KEY-cloudera 也上传

安装createrepo

http://www.rpmfind.net/linux/rpm2html/search.php?query=createrepo

将下载的createrepo-0.9.9-28.el7.noarch.rpm上传到/opt目录中

[root@cdh01 opt]# rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm  --force --nodeps

安装deltarpm

http://mirror.centos.org/centos/7/os/x86_64/Packages/python-deltarpm-3.6-3.el7.x86_64.rpm
将下载好的python-deltarpm-3.6-3.el7.x86_64.rpm上传到/opt目录中

[root@cdh01 opt]# rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm --force --nodeps

创建repodata

[root@cdh01 cm6]# createrepo .
Spawning worker 0 with 1 pkgs
Spawning worker 1 with 1 pkgs
Spawning worker 2 with 1 pkgs
Spawning worker 3 with 1 pkgs
Spawning worker 4 with 0 pkgs
Spawning worker 5 with 0 pkgs
Spawning worker 6 with 0 pkgs
Spawning worker 7 with 0 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

注意:repodata创建成功之后,会在cm6目录下看到一个新创建的repodata目录

此时cm6目录中的内容如下:

2.5 在集群内所有节点添加新配置的yum源

首先在cdh01节点上操作
添加yum源

[root@cdh01 ~]# vi /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager,Version
baseurl = http://cdh01/cloudera-repos/cm6
gpgcheck = 1

清除yum缓存

[root@cdh01 ~]# yum clean all
[root@cdh01 ~]# yum makecache

然后在cdh02节点上操作

添加yum源

[root@cdh02 ~]# vi /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager,Version
baseurl = http://cdh01/cloudera-repos/cm6
gpgcheck = 1

清除yum缓存

[root@cdh01 ~]# yum clean all
[root@cdh01 ~]# yum makecache

然后在cdh03节点上操作

添加yum源

[root@cdh02 ~]# vi /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager,Version
baseurl = http://cdh01/cloudera-repos/cm6
gpgcheck = 1

清除yum缓存

[root@cdh01 ~]# yum clean all
[root@cdh01 ~]# yum makecache

注意:要确保配置中baseurl 对应的url是可以访问的

由于我在windows中没有配置主机名和ip的映射关系,所以在windows中的浏览器里面访问的时候需要使用ip

2.6 安装 Cloudera Manager相关服务

 Cloudera Manager简称为cm
想要安装CDH集群,需要先安装cm,然后在cm提供的web界面上安装CDH集群,比较方便。

1)首先在三台机器上操作
注意:在安装之前,先执行这个命令,否则在安装cm相关服务的时候会报错

该文件只在CDH01上有

[root@cdh01 ~]# rpm --import http://cdh01/cloudera-repos/cm6/RPM-GPG-KEY-cloudera 

2) 安装 cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server这3个服务
cdh01节点作为cm的server节点,故需要多安装一个cloudera-manager-server服务

[root@cdh01 ~]# yum -y install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

 cdh02,03只需安装 cloudera-manager-daemons cloudera-manager-agent

[root@cdh03 ~]# yum -y install cloudera-manager-daemons cloudera-manager-agent

2.7 上传cdh安装包到集群所有节点上

安装完cm之后,在/opt/目录下会出现cloudera目录
将cdh的安装包CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel上传到/opt/cloudera/parcel-repo目录中。

生成sha文件

[root@cdh01 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

然后通过scp将CDH安装包和sha文件拷贝到cdh02和cdh03节点的/opt/cloudera/parcel-repo目录中

注意:cdh02和cdh03节点上只有/opt/cloudera/目录,没有parcel-repo目录,需要我们手工创建
在cdh02,03节点上操作

[root@cdh02 ~]# mkdir -p /opt/cloudera/parcel-repo

[root@cdh03 ~]# mkdir -p /opt/cloudera/parcel-repo

在cdh01节点上使用scp远程拷贝

[root@cdh01 parcel-repo]# scp -rq CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel cdh02:/opt/cloudera/parcel-repo
[root@cdh01 parcel-repo]# scp -rq CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha cdh02:/opt/cloudera/parcel-repo
[root@cdh01 parcel-repo]# scp -rq CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel cdh03:/opt/cloudera/parcel-repo
[root@cdh01 parcel-repo]# scp -rq CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha cdh03:/opt/cloudera/parcel-repo

2.8 在cdh01节点上启动cm+安装cdh集群

初始化cm

[root@cdh01 ~]# /opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver root abc123456

启动cm

[root@cdh01 ~]# service cloudera-scm-server start

稍后几分钟(5~10分钟),就可以打开cm的管理界面了,端口是7180。

http://cdh01:7180

安装cdh集群

注意:在windows中没有配置cdh01主机名和ip映射关系的话,就需要使用ip访问了
我在这里就使用ip访问了

http://192.168.44.101:7180

用户名和密码都是admin
登录进来之后是这样的,点击继续

 

 

 

 输入集群中的所有节点主机名

 点击搜索按钮

选中所有主机,【继续】 

输入自定义存储库,确认CDH版本为6.3.2

点击【继续】 

输入集群中节点的密码,然后点击继续

然后会进入到cm Agent安装界面,需要稍等一会,5~10分钟。

需要用到【步骤2.4】中上传的文件allkeys.asc

cm Agent安装成功之后是这样的,点击继续按钮

此时会进入到CDH安装界面,需要稍等一会,10~20分钟 

 安装完成

击这两个高级选项,开始检测

点击第一个 连通性检测结果 【可能误报,具体以实际情况为准】

连通性 ok

第二个检测结果,一些修改机器配置的建议,建议根据提示修改

 

 【执行建议方案】

首先在三个节点上操作

[root@cdh01 ~]# sysctl vm.swappiness=10
[root@cdh01~]# echo 'vm.swappiness=10'>> /etc/sysctl.conf
[root@cdh01 ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@cdh01 ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@cdh01 parcel-repo]# vi /etc/rc.local
# 将下面这两行配置添加到文件末尾即可
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

修改完毕以后,点击重新运行,重新检测

选择适合自己的方案

cdh会自动进行角色分配,将刚才选择的大数据组件安装到集群的不同节点上。

注意:前期不是很熟悉的情况下,建议使用自动分配的方式即可,这里什么都不要修改。

 在这里输入数据库名称,用户名、密码,然后点击 测试连接 按钮,测试成功的话,在每一行的最后面都会显示Successful,如果有问题,会显示具体的错误信息。

【问题】Logon denied for user/password. Able to find the database server and database, but the login request

【解决方式】

grant all privileges on *.* to 'root'@'cdh01' identified by 'abc123456' with grant option;
flush privileges;
 


这些数据库我们在前面安装mysql的时候已经提前创建好了。

 

默认在这里不需要改什么东西

等待启动集群内大数据组件的服务,大致需要10~20分钟

服务启动成功之后是这样的,如果有红色的报错提示,可以点进去查看详细报错信息。

  

点击完成按钮,到此为止,CDH集群安装成功。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值