搭建完全分布式CDH6.3.2详细教程(附安装包下载地址)

1、安装环境

本例中

  • 采用VMware-workstation-full-15.5.0-14665864.exe作为虚拟化载体

  • 采用CentOS-7.2-x86_64-Minimal-1511.iso作为系统镜像

  • 采用一个masterle两个slave的三节点集群架构
    在这里插入图片描述
    注:具体配置请根据自己的搭建环境进行调整

VMware和CentOS-7.2的安装以及网络配置可参考另外两篇文章:

VMWare虚拟机的下载和安装!值得拥有的一款软件!

虚拟机中安装Linux系统(CentOS7)和三种网络配置超级详细教程


2、安装包准备

1.官网下载

(目前官网已经不提供下载了,下面截图是之前下载时截的图,方便大家参考需要那些安装包)

  • Cloudera Manger下载

下载地为

https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/
在这里插入图片描述

  • CDH下载

下载地址为 https://archive.cloudera.com/cdh6/6.3.2/parcels/
在这里插入图片描述
2.网盘下载

(由于cloudera官网从2021年2月1日起全面移除的非订阅用户的下载链接,我将安装包传到百度网盘了,供大家下载使用)

注:除了下载CM和CDH相关安装包之外,还需要下载MySql安装包

微信搜索关键字“大数据峡谷”或扫描下方二维码关注微信公众号,回复“cdh6.3.2” 可获取完整的百度网盘下载连接地址图片
在这里插入图片描述

在这里插入图片描述

3、环境准备

1.修改主机名(所有节点)

所有机器都需要修改主机名称,

下面以cm01举例,其他两台服务器修改相对应的名称

hostnamectl set-hostname cm01

2.设置主机名映射(所有节点)

所有机器都需编辑 hosts 文件

vi /etc/hosts

添加如下内容

192.168.0.201 cm01
192.168.0.202 cm02
192.168.0.203 cm03

3.关闭并禁用防火墙(所有节点)

所有机器都需要关闭防火墙

systemctl stop firewalld.service

禁止开机启动

systemctl disable firewalld.service

#验证

systemctl status firewalld

在这里插入图片描述
4.设置selinux(所有节点)
临时关闭 selinux

setenforce 0

永久关闭 selinux

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

#验证

cat /etc/selinux/config

在这里插入图片描述
5.设置ssh免密登录(所有节点)

生成公钥和私钥,无需指定口令密码,直接回车

[root@cm01 ~]# ssh-keygen -t rsa

在这里插入图片描述
进入到.ssh/目录

[root@cm01 ~]# cd ~/.ssh/

将公钥拷贝到要免密登录的目标机器上

[root@cm01 .ssh]# ssh-copy-id cm01
[root@cm01 .ssh]# ssh-copy-id cm02
[root@cm01 .ssh]# ssh-copy-id cm03

在这里插入图片描述
验证:

在任意机器上对集群其他节点进行进行ssh登陆

不需要使用密码则为配置成功
在这里插入图片描述
注意:三台服务器都需要免密,方法同上

6.禁用透明大页面(所有节点)

查看透明大页的设置和启动状态

[root@cm02 ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
[root@cm02 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
#以下是关闭操作
#临时关闭
[root@cm02 ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@cm02 ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled


#永久关闭
#将临时关闭的命令添加到/etc/rc.d/rc.local文件中,并赋予执行权限
[root@cm02 ~]# echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.local
[root@cm02 ~]# echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local
[root@cm02 ~]# chmod +x /etc/rc.d/rc.local
#验证 
[root@cm02 ~]# cat /etc/rc.d/rc.local

7.修改Linux swappiness(所有节点)

Cloudera 建议将 /proc/sys/vm/swappiness 设置为最大值 10

临时修改:

sysctl vm.swappiness=10
cat /proc/sys/vm/swappiness

这里我们的修改已经生效,但是如果我们重启了系统,又会变成60.

#永久修改:

在/etc/sysctl.conf 文件里添加如下参数:

vm.swappiness=10

或者:

echo 'vm.swappiness=10'>> /etc/sysctl.conf

8.安装jdk(所有节点)
注意:CDH的安装 要求使用指定版本的oracle-j2sdk1.8

查询是否有已经安装的jdk

[root@cm01 ~]# rpm -qa | grep java

如果之前安装过Java组件,先将其卸载

yum remove java*

上传安装包oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm到/opt目录

[root@cm01 ~]# cd /opt
[root@cm01 opt]# ls

在这里插入图片描述
安装

[root@cm01 opt]# rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

查找jdk安装路经

[root@cm01 opt]# find / -name java

在这里插入图片描述
配置环境变量

[root@cm01 opt]# echo 'export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera' >> /etc/profile
[root@cm01 opt]# echo 'export PATH=.:$JAVA_HOME/bin:$PATH' >> /etc/profile
[root@cm01 opt]# source /etc/profile

验证

[root@cm01 opt]# java -version

在这里插入图片描述
9.部署NTP服务器进行时间同步

时间同步的方式:找一个机器, 作为时间服务器, 所有的机器与这台集群时间进行定时的同步, 比如, 每隔十分钟, 同步一次时间。

配置时间同步具体实操:

时间服务器配置(必须 root 用户,cm01节点)

(1) 检查 ntp 是否安装 (所有服务器)

[root@cm02 opt]# rpm -qa|grep ntp

在这里插入图片描述
如果没有以上内容,执行以下命令进行安装

yum install -y ntp

(2) 修改 ntp 配置文件

[root@cm01 opt]# vim /etc/ntp.conf

修改内容如下

a) 修改 1(授权 192.168.0.0-192.168.0.255 网段上的所有机器可以从这台机器上查询和同步时间)

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap 为restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

结果如下:

restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

b) 修改 2(集群在局域网中, 不使用其他互联网上的时间)
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 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 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

c) 添加 3(当该节点丢失网络连接, 依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)

结果如下:

server 127.127.1.0
fudge 127.127.1.0 stratum 10

(3) 修改/etc/sysconfig/ntpd 文件

[root@cm01 opt]# vim /etc/sysconfig/ntpd

增加内容如下(让硬件时间与系统时间一起同步)

SYNC_HWCLOCK=yes

(4) 查看 ntpd 服务 状态

[root@cm01 opt]# systemctl status ntpd.service

(5) 启动 ntpd 服务

[root@cm01 opt]# systemctl restart ntpd.service

(7) 设置 ntpd 服务开机启动

[root@cm01 ~]# systemctl enable ntpd.service

2.其他机器配置(必须 root 用户)

(1) 在其他机器配置 10 分钟与时间服务器同步一次

[root@cm02 ~]# crontab -e

编写定时任务如下:

*/10 * * * * /usr/sbin/ntpdate cm01

(2) 在cm01修改任意机器时间

[root@cm01 ~]# date -s "2017-9-11 11:11:11"

(3) 十分钟后查看机器是否与时间服务器同步

[root@cm02 ~]# date

说明:测试的时候可以将 10 分钟调整为 1 分钟, 节省时间。

(4)查看主服务器时间

[root@cm01 ~]# date

我这里就和自己计算机的系统时间是统一的。

如果发现不统一的话,

就同步网络时间:(需要先关闭ntp服务,启动之后再重新启动

systemctl stop ntpd.service
ntpdate ntp1.aliyun.com

然后接着同步本地的时间:

hwclock --systohc

启动 ntpd 服务

systemctl start ntpd.service

4、MySql安装

(mysql安装在master主节点,本例中cm01)

1.安装包准备

    1.将下载好的mysql相关安装包上传到/opt/mysql下
在这里插入图片描述
     2. 如果是虚拟机按照如下步骤执行

卸载自带的 Mysql-libs(如果之前安装过 mysql, 要全都卸载掉)

[root@cm01 ~]# rpm -qa | grep -i -E mysql\|mariadb  | xargs -n1 sudo rpm -e --nodeps

     3. 如果是阿里云服务器按照如下步骤执行

(1) 卸载 MySQL 依赖, 虽然机器上没有装 MySQL, 但是这一步不可少

[root@cm01 ~]# yum remove mysql-libs
(2) 下载依赖并安装

[root@cm01 ~]# sudo yum install libaio
[root@cm01 ~]# sudo yum -y install autoconf

2.安装mysql

1) 安装 mysql 依赖

[root@cm01 ~]# cd /opt/mysql/
[root@cm01 mysql]# rpm -ivh 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
[root@cm01 mysql]# rpm -ivh 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
[root@cm01 mysql]# rpm -ivh 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm

2) 安装 mysql-client

[root@cm01 mysql]# rpm -ivh 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm

3) 安装 mysql-server

[root@cm01 mysql]# rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm

注意:如果报如下错误, 这是由于 yum 安装了旧版本的 GPG keys 所造成, 从 rpm 版本 4.1 后, 在安装或升级软件包时会自动检查软件包的签名。warning: 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm:Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYerror: Failed dependencies:libaio.so.1()(64bit) is needed bymysql-community-server-5.7.16-1.el7.x86_64

解决办法

[root@cm01 mysql]# rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm --force --nodeps

4) 启动 mysql

[root@cm01 mysql]# systemctl start mysqld

5) 查看 mysql 密码

[root@cm01 mysql]# cat /var/log/mysqld.log | grep password

在这里插入图片描述
3.配置mysql

配置只要是 root 用户+密码, 在任何主机上都能登录 MySQL 数据库。

1) 用刚刚查到的密码进入 mysql(如果报错, 给密码加单引号)

[root@cm01 mysql]# mysql -uroot -p'-dQt5l:ed#C!'

2) 设置复杂密码(由于 mysql 密码策略, 此密码必须足够复杂)

mysql> set password=password("Qs23=zs32");

3) 更改 mysql 密码策略

mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=0;

4) 设置简单好记的密码

mysql> set password=password("123456");

5) 进入 msyql 库

mysql> use mysql

6) 查询 user 表

mysql> select user, host from user;

7) 修改 user 表, 把 Host 表内容修改为%

mysql> update user set host="%" where user="root";

8) 刷新

mysql> flush privileges;

9) 退出

mysql> quit;

10)备份数据库配置文件

[root@cm01 mysql]# cp /etc/my.cnf{,.bak}

11)官网推荐配置

[root@cm01 ~]# vim /etc/my.cnf

#添加以下内容

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
transaction-isolation = READ-COMMITTED
#Disabling symbolic-links is recommended to prevent assorted security risks;
#to do so, uncomment this line:
symbolic-links = 0


key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1


max_connections = 550
#expire_logs_days = 10
#max_binlog_size = 100M


#log_bin should be on a disk with enough free space.
#Replace '/var/lib/mysql/mysql_binary_log' with an appropriate path for your
#system and chown the specified folder to the mysql user.
log_bin=/var/lib/mysql/mysql_binary_log


#In later versions of MySQL, if you enable the binary log and do not set
#a server_id, MySQL will not start. The server_id must be unique within
#the replicating group.
server_id=1


binlog_format = mixed


read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M


# InnoDB settings
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit  = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M


[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

sql_mode=STRICT_ALL_TABLES

12)重启MySQL数据库

service mysqld restart

13)提前创建好以后可能用到的数据库
在这里插入图片描述

登录 MySQL 数据库

mysql -uroot -p

创建数据库和用户(后面会用到)

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'scm@123';

CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'amon@123';

CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'rman@123';

CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'hue@123';

CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'metastore@123';

CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'sentry@123';

CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'nav@123';

CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'navms@123';

CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie@123';

flush privileges;

#开放mysql远程权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;

14).上传jdbc依赖包(所有节点)

创建目录

[root@cm01 ~]# mkdir -p /usr/share/java

上传

[root@cm01 ~]# cp /opt/mysql/mysql-connector-java-5.1.48.jar /usr/share/java

重命名

[root@cm01 ~]# mv /usr/share/java/mysql-connector-java-5.1.48.jar /usr/share/java/mysql-connector-java.jar

移动都其它服务器

[root@cm01 ~]# scp /usr/share/java/mysql-connector-java.jar root@cm02:/usr/share/java/
[root@cm01 ~]# scp /usr/share/java/mysql-connector-java.jar root@cm03:/usr/share/java/

5、Cloudera Manager 安装

1.配置本地 Cloudera Manager 仓库(在主节点上操作,本例cm01)

#创建本地 CM 仓库文件夹

mkdir -p /var/www/html/cloudera-repos/cm6/

#上传下载好的 CM 安装包放入 /var/www/html/cloudera-repos/cm6/ 目录
在这里插入图片描述
#安装 httpd 和 createrepo

yum -y install httpd createrepo

#启动 httpd 服务并设置为开机自启动

systemctl start httpd && systemctl enable httpd

#生成 RPM,注意最后必须有 .

cd /var/www/html/cloudera-repos/cm6/ && createrepo .

#通过浏览器访问了:默认端口 80

http://cm01/cloudera-repos/cm6/

2.配置本地CDH仓库(在主节点上操作,本例cm01)

#创建本地 CDH 仓库文件夹

mkdir -p /var/www/html/cloudera-repos/cdh6/

#上传下载好的 CDH 安装包放入 /var/www/html/cloudera-repos/cdh6/ 目录
在这里插入图片描述
#生成 RPM,注意最后必须有 .

cd /var/www/html/cloudera-repos/cdh6/ && createrepo .

#通过浏览器访问了:默认端口80

http://cm01/cloudera-repos/cdh6/

3.构建yum源(所有服务器上都操作)
#所有机器都需要配置

vi /etc/yum.repos.d/cloudera-repo.repo

#拷贝如下内容

[cloudera-repo]
name=cloudera-repo
baseurl=http://cm01/cloudera-repos/cm6/
enabled=1
gpgcheck=0

#清理

yum clean all
yum makecache

4.安装CM Server和Agent

主节点(cm01)

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

安装完CM后/opt/ 下会出现cloudera目录

从节点(cm02和cm03)

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

5.建立CM数据库

参考文档:官网创建 CM 数据库教程

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm scm@123

6.启动CM Server(cm01)

#启动服务

systemctl start cloudera-scm-server

#查看服务的状态

systemctl status cloudera-scm-server

#查看系统日志

journalctl -xe 

#默认日志存放地方

/var/log/cloudera-scm-server

7.访问服务

#需要等几分钟 不要慌

http://cm01:7180

6、Cloudera Manager 初始化集群配置

6.1.用户登录

http://cm01:7180

用户名:admin ,密码:admin
在这里插入图片描述
6.2、选择版本
1、欢迎页面
在这里插入图片描述
2、接受最终用户许可条款和条件。在这里插入图片描述
3、选择免费版本在这里插入图片描述
6.3、群集安装
1、欢迎页面在这里插入图片描述
2、群集名称在这里插入图片描述
3、扫描主机,输入主机名称点击搜索(cm01,cm02,cm03)在这里插入图片描述
4、选择存储库

自定义存储库:http://cm01/cloudera-repos/cm6/在这里插入图片描述
远程 Parcel 存储库 URL :http://cm01/cloudera-repos/cdh6/在这里插入图片描述
保存更改 继续在这里插入图片描述
5、JDK 安装选项,跳过不需要勾选(前面应安装过了)在这里插入图片描述
6、提供 SSH 登录凭据在这里插入图片描述
7、Install Agents ,自动安装在这里插入图片描述
记录CDH安装的一个坑:在web界面安装 agent那一步,抛错,单击信息查看如下,could not contact scm server at localhost:7182, giving up错误:在这里插入图片描述
解决做法:

在报错的节点上执行

mv /usr/bin/host /usr/bin/host.bak

7、Install Parcels,自动安装(比较慢,请耐心等待)在这里插入图片描述
8、Inspect Cluster检查集群在这里插入图片描述
先点击 Inspect Network Performance 再点击 Inspect Hosts在这里插入图片描述
警告,点击 显示检查器结果,对相对应的警告做相对应的措施就可以了。如果完全按照上面的教程走,是不会有警告的。在这里插入图片描述
6.4、群集设置
1、Select Services在这里插入图片描述
自定义服务,选择zk、yarn、hdfs在这里插入图片描述
2、自定义角色分配在这里插入图片描述
3、数据库设置在这里插入图片描述
Databases for Cloudera Software 参考如下,密码是用户名后面加@123在这里插入图片描述
填好密码之后点击测试连接,连接成功之后继续在这里插入图片描述
4、审核更改,默认设置在这里插入图片描述
5、命令详细信息在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6、汇总在这里插入图片描述
7.CM管理页面在这里插入图片描述
安装完成之后会有一些警告错误信息,不要紧张,很正常的现象,需要自己根据实际情况去修改配置,我在这儿就不一一说明了,大家可以实时关注我后面的文章找到解决方案。

  • 4
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
CDH(Cloudera Distribution Hadoop)是一个由Cloudera公司推出的大数据管理平台,它基于Apache Hadoop项目并集成了各种工具和组件,提供了一套全面的大数据解决方案。 CDH 6.3.2是CDH的一个版本,是Cloudera公司在CDH 6系列中发布的第三个小版本。安装包指的是CDH 6.3.2的软件安装包。 安装CDH 6.3.2需要按照以下步骤进行: 1. 下载安装包:在Cloudera的官方网站上下载CDH 6.3.2安装包。根据操作系统的不同,选择对应的安装包下载。 2. 解压安装包:将下载安装包解压到指定的目录中。可以使用命令行或图形界面工具进行解压。 3. 配置环境:根据系统要求,配置相应的环境变量和依赖项。这些配置包括Java、Hadoop配置文件等。 4. 启动CDH:使用命令行工具启动CDH服务。启动命令可以是启动整个CDH集群或者启动单个CDH服务。 5. 验证安装:使用Cloudera Manager或其他工具,验证CDH的安装是否成功。可以通过访问Cloudera Manager的Web界面来检查服务运行状态、集群健康状况等。 6. 配置和管理:根据具体需求,进行进一步的配置和管理。这包括添加和删除节点、调整资源分配、监控和管理数据流等任务。 通过以上步骤,就可以成功安装CDH 6.3.2并开始使用其提供的大数据管理和分析功能了。需要注意的是,安装CDH涉及到比较复杂的配置和管理过程,建议在安装之前仔细阅读相关文档和参考资料,并确保操作系统和硬件等环境满足CDH的要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值