文章目录

  • 1.集群搭建环境准备
  • 2.集群节点规划
  • 3.操作系统优化设置
    • 3.1 关闭防火墙(所有节点)
    • 3.2 修改Linux系统内核内存参数(所有节点)
    • 3.4 设置最大文件打开数最大进程数(所有节点)
    • 3.5 关闭Selinux(所有节点)
    • 3.6 关闭透明大页THP(所有节点)
  • 4.集群基础服务安装
    • 4.1 配置集群免密登录(所有节点)
    • 4.2 配置服务yum源(manager节点)
      • 4.2.1 配置本地系统yum源(manager节点)
      • 4.2.2 安装httpd服务(manager节点)
      • 4.2.3 配置系统yum源(manager节点)
      • 4.2.4 配置 Ambari yum源(manager节点)
      • 4.2.4 配置 HDP yum源(manager节点)
      • 4.2.5 配置 HDP-UTILS yum源(manager节点)
      • 4.2.6 配置 HDP-GPL yum源(manager节点)
      • 4.2.7 配置MySQL yum源(manager节点)
      • 4.2.8 分发repo文件到其余节点(manager节点)
    • 4.3 安装时间同步服务NTP(所有节点)
    • 4.4 删除OpenJDK 安装并配置OracleJDK(所有节点)
    • 4.5 删除Mariadb安装MySQL服务(manager节点)
    • 4.6 创建大数据服务MySQL数据库
      • 4.6.1 创建ambari数据库
      • 4.6.2 创建其余大数据服务对应的数据库
  • 5.部署Ambari集群
    • 5.1 部署Ambari-Server(manager节点)
    • 5.2 部署Ambari-Agent(所有节点)
  • 6.部署大数据集群组件

1.集群搭建环境准备

环境 版本 下载地址
CentOS:7.9 CentOS-7-x86_64-Everything-2009.iso https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/x86_64/
Ambari ambari-2.7.5.0-centos7.tar.gz Ambari Repositories - Hortonworks Data Platform (cloudera.com)
HDP HDP-3.1.5.0-centos7-rpm.tar.gz HDP 3.1.5 Repositories - Hortonworks Data Platform (cloudera.com)
HDP-GPL HDP-GPL-3.1.5.0-centos7-gpl.tar.gz HDP 3.1.5 Repositories - Hortonworks Data Platform (cloudera.com)
HDP-UTILS HDP-UTILS-1.1.0.22-centos7.tar.gz HDP 3.1.5 Repositories - Hortonworks Data Platform (cloudera.com)
MySQL mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar 补充:mysql-connector-java-5.1.37.jar
JDK jdk-8u121-linux-x64.tar.gz

2.集群节点规划

Hostname IP(static) 内存 磁盘
manager.bigdata 192.168.121.100 16G 1T
master.bigdata 192.168.121.101 16G 500G
worker.bigdata 192.168.121.102 16G 500G

3.操作系统优化设置

3.1 关闭防火墙(所有节点)

# 关闭防火墙:systemctl stop firewalld
# 查看防火墙的状态:systemctl status firewalld
# 设置开机不启动:systemctl disable firewalld
# 查看防火墙服务是否设置开机启动:systemctl is-enabled firewalld

3.2 修改Linux系统内核内存参数(所有节点)

# 编辑配置文件:vim /etc/sysctl.conf,添加如下配置:
vm.swappiness=1
vm.min_free_kbytes=4194304
vm.zone_reclaim_mode=0
# 使修改生效:sysctl -p

3.4 设置最大文件打开数最大进程数(所有节点)

# 编辑配置文件:vim /etc/security/limits.conf,添加如下配置:
* soft nofile 655350
* hard nofile 655350
* soft nproc 204800
* hard nproc 204800

3.5 关闭Selinux(所有节点)

# 查看Selinux状态:sestatus
# 编辑配置文件:vim /etc/sysconfig/selinux,修改为以下配置:
SELINUX=disabled
# 重启服务器后才生效:等关闭透明大页之后一并重启

3.6 关闭透明大页THP(所有节点)

# 查看透明大页情况:
cat /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled# 关闭透明大页:vim /etc/rc.d/rc.local,添加如下配置:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; thenecho never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; thenecho never > /sys/kernel/mm/transparent_hugepage/defrag
fi# 保存退出,然后赋予rc.local文件执行权限:chmod +x /etc/rc.d/rc.local
# 重启服务器才生效:reboot

4.集群基础服务安装

4.1 配置集群免密登录(所有节点)

# 修改所有节点的 hosts文件,配置如下:
192.168.121.100 manager.bigdata
192.168.121.101 master.bigdata
192.168.121.102 worker.bigdata
# 配置manager对manager、master、worker三个节点的免密登录:
#【因为NameNode、ResourceManager服务需要对其它节点无密访问】
[root@manager ~]# ssh-keygen -t rsa             # 一路回车
[root@manager ~]# ssh-copy-id manager.bigdata   # 输入密码
[root@manager ~]# ssh-copy-id master.bigdata    # 输入密码
[root@manager ~]# ssh-copy-id worker.bigdata    # 输入密码
# 配置master对manager、master、worker的免密登录:
#【因为NameNode、ResourceManager服务需要对其它节点无密访问】
[root@master ~]# ssh-keygen -t rsa              # 一路回车
[root@master ~]# ssh-copy-id manager.bigdata    # 输入密码
[root@master ~]# ssh-copy-id master.bigdata     # 输入密码
[root@master ~]# ssh-copy-id worker.bigdata     # 输入密码

4.2 配置服务yum源(manager节点)

# 把安装包上传到 /opt 目录下:
[root@manager opt]# ll /opt/
total 22226212
-rw-r--r--. 1 root root  2062874048 Jul 30 11:18 ambari-2.7.5.0-centos7.tar.gz
-rw-r--r--. 1 root root 10200547328 Jul 30 11:00 CentOS-7-x86_64-Everything-2009.iso
-rw-r--r--. 1 root root  9815239567 Jul 30 11:42 HDP-3.1.5.0-centos7-rpm.tar.gz
-rw-r--r--. 1 root root      161804 Jul 30 11:18 HDP-GPL-3.1.5.0-centos7-gpl.tar.gz
-rw-r--r--. 1 root root    90606616 Jul 30 11:19 HDP-UTILS-1.1.0.22-centos7.tar.gz
-rw-r--r--  1 root root   183246769 Jul 30 11:06 jdk-8u121-linux-x64.tar.gz
-rw-r--r--. 1 root root   531056640 Jul 30 11:21 mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar
-rw-r--r--. 1 root root    59142788 Jul 30 11:22 mysql-connector-java-rpm-package.tar.gz

4.2.1 配置本地系统yum源(manager节点)

# 挂载系统镜像
mkdir /mnt/cdrom
mount -t iso9660 -o loop CentOS-7-x86_64-Everything-2009.iso /mnt/cdrom/# 删除旧repo文件
cd /etc/yum.repos.d
rm -rf ./*.repo# 创建系统repo文件
vim local.repo
[centos]
name=centos
baseurl=file:///mnt/cdrom
gpgcheck=0
enabled=1# 更新yum源
yum clean all
yum update

4.2.2 安装httpd服务(manager节点)

# 安装服务
yum install httpd -y
# 启动httpd服务:systemctl start httpd
# 查看httpd状态:systemctl status httpd
# 设置开启启动:systemctl enable httpd# 安装完毕httpd服务之后,local.repo即可删除
rm -f /etc/yum.repos.d/local.repo

4.2.3 配置系统yum源(manager节点)

# 挂载系统镜像
mkdir /var/www/html/CentOS
mount -t iso9660 -o loop /opt/CentOS-7-x86_64-Everything-2009.iso /var/www/html/CentOS# 配置系统repo文件
vim /etc/yum.repos.d/centos.repo
[CentOS-7.9]
name=CentOS Version - 2009
baseurl=http://manager.bigdata/CentOS
gpgcheck=0
enabled=1

4.2.4 配置 Ambari yum源(manager节点)

# 解压Ambari压缩包
tar -zxvf /opt/ambari-2.7.5.0-centos7.tar.gz -C /var/www/html/# 配置Ambari-repo文件
vim /etc/yum.repos.d/Ambari.repo
[Ambari-2.7.5.0]
name=Ambari Version - Ambari-2.7.5.0
baseurl=http://manager.bigdata/ambari/centos7/2.7.5.0-72/
gpgcheck=1
gpgkey=http://manager.bigdata/ambari/centos7/2.7.5.0-72/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1

4.2.4 配置 HDP yum源(manager节点)

# 解压HDP压缩包
tar -zxvf /opt/HDP-3.1.5.0-centos7-rpm.tar.gz -C /var/www/html/# 配置HDP-repo文件
vim /etc/yum.repos.d/HDP.repo
[HDP-3.1.5.0]
name=HDP Version - HDP-3.1.5.0
baseurl=http://manager.bigdata/HDP/centos7/3.1.5.0-152
gpgcheck=1
gpgkey=http://manager.bigdata/HDP/centos7/3.1.5.0-152/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1

4.2.5 配置 HDP-UTILS yum源(manager节点)

# 解压HDP-UTILS压缩包
tar -zxvf /opt/HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/# 配置HDP-UTILS-repo文件
vim /etc/yum.repos.d/HDP-UTILS.repo
[HDP-UTILS-1.1.0.22]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.22
baseurl=http://manager.bigdata/HDP-UTILS/centos7/1.1.0.22
gpgcheck=1
gpgkey=http://manager.bigdata/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

4.2.6 配置 HDP-GPL yum源(manager节点)

# 解压HDP-GPL压缩包
tar -zxvf /opt/HDP-GPL-3.1.5.0-centos7-gpl.tar.gz -C /var/www/html/# 配置HDP-GPL-repo文件
vim /etc/yum.repos.d/HDP-GPL.repo
[HDP-GPL-3.1.5.0]
name=HDP-UTILS Version - HDP-GPL-3.1.5.0
baseurl=http://manager.bigdata/HDP-GPL/centos7/3.1.5.0-152
gpgcheck=1
gpgkey=http://manager.bigdata/HDP-GPL/centos7/3.1.5.0-152/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1

4.2.7 配置MySQL yum源(manager节点)

# 加压MySQL压缩包
mkdir /var/www/html/MySQL
tar -xvf /opt/mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar -C /var/www/html/MySQL/
tar -zxvf /opt/mysql-connector-java-rpm-package.tar.gz -C /var/www/html/MySQL/
# 生成repodata
yum install createrepo -y
cd /var/www/html/MySQL
createrepo ./

4.2.8 分发repo文件到其余节点(manager节点)

# 前提是把master和worker节点 /etc/yum.repos.d 目录下的repo文件删除,再进行拷贝:
cd /etc/yum.repos.d
scp ./*.repo master.bigdata:$PWD
scp ./*.repo worker.bigdata:$PWD# 拷贝完毕之后,登录三个节点,分别执行yum更新:
yum clean all
yum update

4.3 安装时间同步服务NTP(所有节点)

# 集群所有节点,安装ntp服务
yum install ntp* -y# 配置manager节点:vim /etc/ntp.conf
restrict 192.168.120.2 mask 255.255.255.0 nomodify notrap
server ntp1.aliyun.com prefer
server 127.127.1.0
fudge 127.127.1.0 stratum 8
# 备注
192.168.120.2 和 255.255.255.0是集群所在网段的网关和子网掩码
ntp1.aliyun.com 是主时钟源,我选择的是阿里的时钟源,可根据实际情况选择,如果内网没有时钟服务器,配置为:127.127.1.0# 在master节点修改:vim /etc/ntp.conf
restrict 192.168.120.2 mask 255.255.255.0 nomodify notrap
server manager.bigdata prefer
server 127.127.1.0
fudge 127.127.1.0 stratum 9# 在worker节点修改:vim /etc/ntp.conf
server manager.bigdata prefer
server master.bigdata# 在manager启动ntp之后:
systemctl start ntpd
systemctl enable ntpd
# 其余各节点启动ntp服务之前,master和worker节点执行命令,同步manager时间:
ntpdate manager.bigdata# 启动master、worker节点ntp服务
systemctl start ntpd
systemctl enable ntpd# 查看ntp状态
ntpq -p
’*’ 表示当前使用的时钟源,’+’ 表示这些源可作为 NTP 源
# ntpstat查看ntp与上层ntp服务的联通性

4.4 删除OpenJDK 安装并配置OracleJDK(所有节点)

# 删除OpenJDK
# 查看openjdk:rpm -qa | grep java
# 删除openjdk:
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
# manager节点分发jdk包到其余节点
cd /opt
scp jdk-8u121-linux-x64.tar.gz master.bigdata:$PWD
scp jdk-8u121-linux-x64.tar.gz worker.bigdata:$PWD# 创建jdk目录
mkdir /usr/java
tar -zxvf /opt/jdk-8u121-linux-x64.tar.gz -C /usr/java/# 配置环境变量:vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_121
export PATH=$PATH:$JAVA_HOME/bin# 使环境变量立即生效命令:source /etc/profile

4.5 删除Mariadb安装MySQL服务(manager节点)

# 查询
rpm -qa | grep mariadb
# 删除
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
cd /var/www/html/MySQL
rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-libs-5.7.27-1.el7.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-devel-5.7.27-1.el7.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-client-5.7.27-1.el7.x86_64.rpm --force --nodeps
rpm -ivh mysql-community-server-5.7.27-1.el7.x86_64.rpm --force --nodeps# 启动mysql服务
systemctl start mysqld# 查看密码
cat /var/log/mysqld.log | grep password# 修改root密码,密码登录:mysql -u root
# 首次登录必须先修改密码(强密码)
alter user user() identified by "Spark@V123";SHOW variables LIKE 'validate_password%';
set global validate_password_policy=0;
set global validate_password_length=4;
# 可以修改为弱密码啦
ALTER USER 'root'@'localhost' IDENTIFIED BY "bigdata123";
flush privileges; # 更新权限use mysql;
update user set host = '%' where user ='root'; # 配置可远程登录
flush privileges; # 更新权限
exit; # 退出# 修改MySQL配置文件:vim /etc/my.cnf
# 在[mysqld]下添加
collation_server=utf8_general_ci
character_set_server=utf8
default-storage-engine=INNODB# 在[client]下添加(如果没有[client],则创建)
default_character-set=utf8# 启动mysql服务
systemctl restart mysqld# 设置开机启动
systemctl enable mysqld

4.6 创建大数据服务MySQL数据库

4.6.1 创建ambari数据库

CREATE DATABASE ambari CHARACTER SET utf8;
CREATE USER 'ambari'@'%'IDENTIFIED BY 'bigdata123';
GRANT ALL PRIVILEGES ON ambari.* TO 'ambari'@'%';
FLUSH PRIVILEGES;

4.6.2 创建其余大数据服务对应的数据库

创建MySQL元数据库,命令类似:

CREATE DATABASE hive CHARACTER SET utf8;
CREATE USER 'hive'@'%'IDENTIFIED BY 'bigdata123';
GRANT ALL PRIVILEGES ON hive.* TO 'hive'@'%';
FLUSH PRIVILEGES;CREATE DATABASE ranger CHARACTER SET utf8;
CREATE USER 'ranger'@'%'IDENTIFIED BY 'bigdata123';
GRANT ALL PRIVILEGES ON ranger.* TO 'ranger'@'%';
FLUSH PRIVILEGES;

5.部署Ambari集群

5.1 部署Ambari-Server(manager节点)

# 安装服务
yum install ambari-server -y[root@manager ~]# ambari-server setup
Using python  /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'disabled'
Customize user account for ambari-server daemon [y/n] (n)? y
Enter user account for ambari-server daemon (root):root
Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Custom JDK
==============================================================================
Enter choice (1): 2
WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
Path to JAVA_HOME: /usr/java/jdk1.8.0_121
Validating JDK on Ambari Server...done.
Check JDK version for Ambari Server...
JDK version found: 8
Minimum JDK version is 8 for Ambari. Skipping to setup different JDK for Ambari Server.
Checking GPL software agreement...
GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? y
Completing setup...
Configuring database...
Enter advanced database configuration [y/n] (n)? y
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL / MariaDB
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
[7] - BDB
==============================================================================
Enter choice (1): 3
Hostname (localhost): manager.bigdata
Port (3306): 3306
Database name (ambari): ambari
Username (ambari): ambari
Enter Database Password (bigdata):
Re-enter password:
Configuring ambari database...
Enter full path to custom jdbc driver: /opt/mysql-connector-java-5.1.37.jar
Copying /opt/mysql-connector-java-5.1.37.jar to /usr/share/java
Configuring remote database connection properties...
WARNING: Before starting Ambari Server, you must run the following DDL directly from the database shell to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
Proceed with configuring remote database connection properties [y/n] (y)? y
Extracting system views...
ambari-admin-2.7.5.0.72.jar
....
Ambari repo file doesn't contain latest json url, skipping repoinfos modification
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
  • 登录ambari数据库:
mysql -uambari -p
mysql> use ambari
mysql> source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
  • 启动Ambari-Server服务:
# 启动:ambari-server start
# 查看:ambari-server status
# 停止:ambari-server stop

5.2 部署Ambari-Agent(所有节点)

# 安装
yum -y install ambari-agent
# 启动
ambari-agent start

6.部署大数据集群组件

用户名:admin,密码:admin

开始安装集群:

















Ambari2.7.5-HDP3.1.5集群离线搭建相关推荐

  1. 2W 字详解 Redis 6.0 集群环境搭建实践

    原文链接:https://www.cnblogs.com/hueyxu/p/13884800.html 本文是Redis集群学习的实践总结(基于Redis 6.0+),详细介绍逐步搭建Redis集群环 ...

  2. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0

    如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...

  3. hadoop集群环境搭建准备工作

    一定要注意hadoop和linux系统的位数一定要相同,就是说如果hadoop是32位的,linux系统也一定要安装32位的. 准备工作: 1 首先在VMware中建立6台虚拟机(配置默认即可).这是 ...

  4. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十一)NIFI1.7.1安装

    一.nifi基本配置 1. 修改各节点主机名,修改/etc/hosts文件内容. 192.168.0.120master192.168.0.121slave1192.168.0.122 slave2 ...

  5. 『高级篇』docker之DockerSwarm的集群环境搭建(28)

    原创文章,欢迎转载.转载请注明:转载自IT人故事会,谢谢! 原文链接地址:『高级篇』docker之DockerSwarm的集群环境搭建(28) 上次了解了docker Swarm,这次一起动手操作,搭 ...

  6. Ubuntu下基于 Cilium CNI 的 Kubernetus集群环境搭建

    Ubuntu下基于 Cilium CNI 的 Kubernetus集群环境搭建 1. 前言 2. 安装三个Ubuntu 2.1 三个机器都关闭防火墙 2.2 三个机器都关闭swap 2.3 三个机器都 ...

  7. Centos7环境下etcd集群的搭建

    Centos7环境下etcd集群的搭建一.简介"A highly-available key value store for shared configuration and service ...

  8. 深入剖析Redis系列(三) - Redis集群模式搭建与原理详解

    前言 在 Redis 3.0 之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态.Redis Cluster 是 Redis 的 分布式解决方案,在 3.0 版本正式推出,有效地解决了 ...

  9. Redis集群架构搭建详解

    一.简介 这其实是一种分布式数据库,就是通过分片的机制储存数据,cluster中的每个节点仅仅储存数据哭的一部分数据,本质上就是实现数据库分片. 这种集群是一种去中心化的集群,也就是说,集群中的每个节 ...

最新文章

  1. virtualbox+vagrant学习-2(command cli)-16-vagrant snapshot命令
  2. python【蓝桥杯vip练习题库】ALGO-140 P1101(提货单)
  3. 计算机二级7月考试,2020年计算机二级MS Office考试每日一练(7月27日)
  4. C语言三种常见排序算法
  5. Solr增删改查索引
  6. 构建之法阅读心得(二)
  7. 漫步最优化三十二——最速下降法
  8. mysql openrowset_SQL的OPENROWSET开启和使用方法
  9. 28181之安装SPVMN的视频插件
  10. grpc python stream_grpc| python 实战 grpc【h】
  11. kubernetes session回话保持
  12. 全站最全实战的Java项目(附源码)
  13. LeetCode 到最近的人的最大距离
  14. 湖南现代物流职业技术学院校历课表
  15. c语言指针关键字,C语言关键字const和指针的结合使用
  16. 数据库SQL实战 --47.将所有获取奖金的员工当前的薪水增加10%
  17. java atm柜机_java课程设计-ATM柜机模拟程序.doc
  18. MySQL遍历map_遍历Map的四种方法
  19. 【JavaWeb】AJAX
  20. 无锡做大做强“中国芯” 华虹功不可没

热门文章

  1. 我是如何利用Apktool破解软件
  2. 异星工厂mod --concept解释
  3. springboot访问hppt post接口
  4. 合宙luatos——阿里云数据采集与传输实战(Air820,Air724)
  5. python读取视频里面爱豆出现的时间_计算任意视频中各人物的出镜时间(附Python实现)...
  6. html省市二级简单联动,JS实现简单省市二级联动
  7. 文件上传(1—10)
  8. 糖尿病风险分析及预测
  9. Android Stetho 使用教程
  10. 解决在github上下载realease程序过慢