Ambari2.7.5集群搭建详细流程

news2024/11/17 16:16:20

0 说明

本文基于本地虚拟机从零开始搭建ambari集群

1 前置条件

1.1 本地虚拟机环境

节点角色
ambari-1ambari-server ambari-agent
ambari-2ambari-agent
ambari-3ambari-agent

1.2 安装包

1.3 修改主机名并配置hosts文件

hostnamectl set-hostname ambari-1
hostnamectl set-hostname ambari-2
hostnamectl set-hostname ambari-3

配置hosts,添加如下内容

192.168.2.51 ambari-1
192.168.2.52 ambari-2
192.168.2.53 ambari-3

1.4 配置节点间免密

所有节点执行

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ssh-copy-id -i ~/.ssh/id_rsa.pub ambari-1
ssh-copy-id -i ~/.ssh/id_rsa.pub ambari-2
ssh-copy-id -i ~/.ssh/id_rsa.pub ambari-3

1.5 关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

在这里插入图片描述

1.6 关闭selinux(所有节点)

vim /etc/sysconfig/selinux

修改

SELINUX=disabled

查看修改是否成功

 sestatus -v

在这里插入图片描述

1.7 设置安全限制(所有节点)

 vim /etc/security/limits.conf

添加如下内容:

* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072

1.8 修改系统最大文件打开数(所有节点)

 vim /etc/systemd/system.conf

在这里插入图片描述

1.9 安装pssh(非必须)

pssh基于Python编写的并发在多台服务器上批量执行命令的工具,它支持文件并行复制、远程并行执行命令、杀掉远程主机上的进程等,这里介绍安装及常用命令。

wget http://peak.telecommunity.com/dist/ez_setup.py
wget https://pypi.python.org/packages/60/9a/8035af3a7d3d1617ae2c7c174efa4f154e5bf9c24b36b623413b38be8e4a/pssh-2.3.1.tar.gz
  • 解压
tar -zxvf  pssh-2.3.1.tar.gz
build & install
 python setup.py build
 python setup.py install
  • 创建nodes文件

添加需要批处理的服务器节点

ambari-1:22
ambari-2:22
ambari-3:22
  • 使用示例
 pssh -h /root/node.txt -i -P 'date'

在这里插入图片描述

1.10 配置ntpd同步(所有节点)

1.11 设置swap(所有节点)

pssh -h /root/nodes.txt -i 'echo vm.swappiness = 1 >> /etc/sysctl.conf'
 pssh -h /root/nodes.txt -i 'sysctl vm.swappiness=1'
 pssh -h /root/nodes.txt -i 'sysctl -p'

在这里插入图片描述

1.12 安装http服务(主节点)

yum -y install httpd

设置开机自启

systemctl start httpd
systemctl enable httpd.service

浏览器访问测试,出现如下页面说明安装成功
在这里插入图片描述
安装完成后,会生成 /var/www/html目录(相当于Tomcat的webapps目录),进入到/var/www/html目录下,创建ambari和hdp目录,用来存放安装文件.

1.13 安装httpd服务(主节点)

mkdir /var/www/html/ambari
mkdir /var/www/html/hdp
mkdir /var/www/html/hdp/HDP-UTILS-1.1.0.22
mkdir /var/www/html/hdp/HDP-GPL-3.1.5.0
 tar -zxvf ambari-2.7.5.0-centos7.tar.gz -C /var/www/html/ambari/
 tar -zxvf HDP-3.1.5.0-centos7-rpm.tar.gz -C /var/www/html/hdp/
 tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/HDP-UTILS-1.1.0.22/
 tar -zxvf HDP-GPL-3.1.5.0-centos7-gpl.tar.gz -C /var/www/html/hdp/HDP-GPL-3.1.5.0/

重启httpd服务

systemctl restart httpd

测试访问:

http://ambari-1:/ambari
http://ambari-1:/hdp

在这里插入图片描述
在这里插入图片描述

1.14 配置离线yum源(主节点)

cd /var/www/html/ambari/ambari/centos7/2.7.5.0-72
vim ambari.repo

在这里插入图片描述

复制到/etc/yum.repos.d目录下,并同步到其他节点
查看yum源是否配置成功

pssh -h /root/nodes.txt -i 'yum repolist'

在这里插入图片描述

1.15 安装jdk(所有节点)

注:安装在/usr/local/java目录下或在该目录下建立软连接,因为ambari默认会去该目录找java。

2 安装Mysql

2.1 卸载mariadb

rpm -qa | grep mariadb | xargs rpm -e --nodeps

2.2 下载mysql5.7的yum源

wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

2.3 安装Mysql的yum源

rpm -ivh mysql57-community-release-el7-9.noarch.rpm

2.4 安装Mysql

yum -y install mysql-server

安装过程中可能报错如下:
在这里插入图片描述
执行如下命令,再次安装即可

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

2.5 启动mysql

service mysqld start

2.6 查看root密码

grep 'temporary password' /var/log/mysqld.log    

2.7 执行Mysql脚本

mysql_secure_installation

在这里插入图片描述

2.8 配置新密码

2.9 配置root远程登录

mysql -uroot -p密码
grant all privileges on *.* to 'root' @'%' identified by 'Chen.123456';
flush privileges;

在这里插入图片描述

2.10 拷贝mysql驱动

将mysql-connector-java-5.1.27-bin.jar拷贝到/usr/share/java路径下,并重命名mysql-connector-java.jar
注:这里需要将mysql的驱动jar包拷贝到/usr/share/java目录下,如果该目录不存在,则新建目录。因为ambari-server启动后会默认到该位置找jar包,如果/usr/share/java不存在该jar包,则会报错如下:
在这里插入图片描述

3 安装Ambari&HDP

3.1 安装ambari-server

 yum -y install ambari-server

在这里插入图片描述

3.2 配置ambari.properties

配置/etc/ambari-server/conf/ambari.properties

 vim /etc/ambari-server/conf/ambari.properties

添加如下配置

server.jdbc.driver.path=/root/software/mysql/mysql-connector-java.jar

3.3 配置ambari-server

ambari-server setup 

在这里插入图片描述

3.4 登录mysql创建ambari安装所需要的库

1)创建ambari数据库和ambari用户

 CREATE DATABASE ambari DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
 use ambari;
 CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari123';
 GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
 CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari123';
 GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';
 CREATE USER 'ambari'@'ambari-1' IDENTIFIED BY 'ambari123';
 GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'ambari-1';

可能包如下错:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

这是由于mysql策略设置的问题,解决方案如下:
① 查看mysql当前密码设置策略

SHOW VARIABLES LIKE 'validate_password%';

② 执行如下命令,即可

set global validate_password_policy=0;

2)执行初始化sql语句

use ambari;
source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
  1. 创建hive数据库和hive用户
    注:这里创建的hive账户主要用来后续安装hive组件时使用,如果不需要安装hive,则可跳过此步
CREATE DATABASE hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
use hive;
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive1234';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive1234';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost';
CREATE USER 'hive'@'ambari-1' IDENTIFIED BY 'hive1234';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'ambari-1';
  1. 创建oozie数据库和oozie账户
    注:这里创建的oozie账户主要用来后续安装hive组件时使用,如果不需要安装oozie,则可跳过此步
CREATE DATABASE oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
use oozie;
CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie123';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%';
CREATE USER 'oozie'@'localhost' IDENTIFIED BY 'oozie123';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'localhost';
CREATE USER 'oozie'@'ambari-1' IDENTIFIED BY 'oozie123';
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'ambari-1';

5)刷新

FLUSH PRIVILEGES;

3.5 启动ambari-server

ambari-server start

在这里插入图片描述
查看/var/log/ambari-server/ambari-server.out日志,发现正常
在这里插入图片描述

3.6 所有节点安装ambari-agent

pssh -h /root/nodes.txt -i 'yum -y install ambari-agent'

修改配置文件ambari-agent.ini

vi /etc/ambari-agent/conf/ambari-agent.ini

在这里插入图片描述

启动ambari-agent

pssh -h /root/nodes.txt  -i 'systemctl start ambari-agent'

在这里插入图片描述

4 部署集群

登录ambari-1:8080可看到如下页面,账户和密码均为admin

ambari-1:8080

在这里插入图片描述

4.1 设置集群名

在这里插入图片描述

4.2 设置正确版本

选择HDP-3.1和Use Local Repository
在这里插入图片描述
删除其他镜像源,选择Redhat,并输入HDP的url地址
在这里插入图片描述

4.3 配置节点并验证

设置ambari集群的节点,选择手动(这里需要保证集群其他节点的ambari-agent均正常启动)
在这里插入图片描述
等待准备完成
在这里插入图片描述

4.4 选择需要安装的服务

在这里插入图片描述
注:点击下一步如发生报错,说明ambari用户对目录没有执行权限,在后台执行如下命令即可

Error message: Error occured during stack advisor command invocation: Cannot create /var/run/ambari-server/stack-recommendations

sudo chown -R ambari /var/run/ambari-server

在这里插入图片描述

4.5 配置

按默认配置
在这里插入图片描述

4.6 配置服务slaves

在这里插入图片描述

4.7 设置相关服务密码

在这里插入图片描述

4.8 测试数据库连接

在这里插入图片描述
注:如果测试连接失败,报错如下:
在这里插入图片描述
这里是由于mysql的jar包没有识别到,在server节点执行如下命令

ambari-server setup --jdbc-db=mysql --jdbc-driver=/root/software/mysql/mysql-connector-java.jar

在这里插入图片描述
然后再点击测试即能正常连接
保持默认,点击下一步
在这里插入图片描述
保持默认,下一步
在这里插入图片描述
保持默认,下一步
在这里插入图片描述

4.9 部署

在这里插入图片描述
等待部署完成
在这里插入图片描述
安装完成(这里报黄是由于,当前安装是虚拟机安装,内存不足显示为黄色,没有问题)
在这里插入图片描述

4.10 完成安装

在这里插入图片描述
在这里插入图片描述

5 附ambari汉化

5.1 汉化的文件

模块源码文件目录编译后目录安装后目录
仪表盘主界面ambari-web/app/messages.jsambari-web/public/javascripts/app.js/usr/lib/ambari-server/web/javascripts/app.js
管理员界面ambari-admin/src/main/resources/ui/admin-web/app/scripts/i18n.config.js/main.js不变/var/lib/ambari-server/resources/views/work/ADMIN_VIEW{2.7.5.0}/scripts
主页底部版权信息ambari-web/app/assets/index.htmlambari-web/public/index.html /usr/lib/ambari-server/web/index.html
登录框ambari-web/app/templates/login.hbspublic/javascripts/app.js/usr/lib/ambari-server/web/javascripts/app.js
DashBoard 页头/ambari-web/app/templates/application.hbspublic/javascripts/app.js/usr/lib/ambari-server/web/javascripts/app.js
仪表盘的关于信息ambari-web/app/templates/common/about.hbspublic/javascripts/app.js
管理页面的关于信息/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/AboutModal.html不变/var/lib/ambari-server/resources/views/work/ADMIN_VIEW{2.7.5.0}/views/modals/AboutModal.html

5.2 替换app.js

给出参考app.js汉化包如下:

链接:https://pan.baidu.com/s/1FOajkxocFSKxAg_huAowXw 
提取码:25wu 

5.3 修改logo

根据自身需要自定义/usr/lib/ambari-server/web/

5.4 修改仪表盘AboutModal.html

5.5 修改Index.html

版权信息
在这里插入图片描述
修改完成后重启ambari-server即可
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/353686.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022 年度回顾|The Sandbox 开放元宇宙的发展历程

2023 年又会为大家带来什么呢? 2022 年是很值得庆祝的一年。回顾这一年,The Sandbox 开放游戏元宇宙达成诸多里程碑。我们努力让各方面都更接近我们的愿景:一个开放的、去中心化的元宇宙,通过真正的数位所有权赋予创作者权力。社区…

mysql 通过客户端执行now()函数,时差为8小时

1.场景演示 假设当前北京时间是:2023-02-17 19:31:37。明显执行出来的结果和实际时间晚8小时。 所用Mysql版本为: 解决方式: 需要在my.conf文件中的[mysqld]下添加 default-time-zoneAsia/Shanghai 由于这个mysql8.0是通过 docker 安装的&…

【Python合集】我见过最有趣好玩强大的代码都在这里,涨见识啦~建议收藏起来慢慢学。(墙裂推荐)

前言 大家好,我是栗子同学啦~ 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利,请移步至CSDN社区或文末公众hao即可免费。 Python 凭借语法的易学性,代码的简洁性以及类库的丰富性,赢得了众多开发者的喜爱…

Linux延时队列工作原理与实现

当进程要获取某些资源(例如从网卡读取数据)的时候,但资源并没有准备好(例如网卡还没接收到数据),这时候内核必须切换到其他进程运行,直到资源准备好再唤醒进程。 waitqueue (等待队列) 就是内核…

【初探人工智能ChatGPT】2、雏形开始长成

【初探人工智能ChatGPT】2、雏形开始长成【初探人工智能ChatGPT】2、雏形开始长成安装Flask封装Web接口雏形设置接收参数功能验证聊天写代码代码补全生成图片写在后面笔者初次接触人工智能领域,文章中错误的地方还望各位大佬指正! 【初探人工智能ChatGPT…

NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015

集群可以使用nifi内嵌的zookeeper来搭建集群,也可以使用外部的自己装的zookeeper来 搭建集群. 因为nifi是依赖zookeeper集群来进行工作的,为了避免运维人员还需要额外的去搭建,维护一个 zookeeper集群,所以nifi,就内嵌了一个zookeeper集群. 可以看到有两个属性需要配置,第一…

OpenGL - 如何理解 VAO 与 VBO 之间的关系

系列文章目录 LearnOpenGL 笔记 - 入门 01 OpenGLLearnOpenGL 笔记 - 入门 02 创建窗口LearnOpenGL 笔记 - 入门 03 你好,窗口LearnOpenGL 笔记 - 入门 04 你好,三角形 文章目录系列文章目录1. 前言2. 渲染管线的入口 - 顶点着色器2.1 顶点着色器处理过…

关于IIC通讯协议的有关问题

问题:如何正确使用IIC这么优秀的通讯协议呢?解决:第一步:知道起始信号和终止信号当SCL为1的时候,SDA从1变成0,这个就是起始信号,说明可以开始传输;当SCL为1的时候,SDA从0变成1&#…

Spire.Office for Java 8.2.0 强大之喜Xaspose

Spire.Office for Java是由E-iceblue开发的一款Java系列的Office文档操作类库,用于操作MS Word、PDF、MS Power Point 以及条形码,可实现文档创建、编辑、转换、打印等功能,是E-iceblue 所有 Java组件,包括Spire.Doc for Java、Sp…

Java爬虫入门——HttpClient,JSoup

一&#xff0c;网络爬虫介绍爬虫也叫网络机器人&#xff0c;可以代替人工&#xff0c;自动的在网络上采集和处理信息。爬虫包括数据采集&#xff0c;分析&#xff0c;存储三部爬虫引入依赖<!--引入httpClient依赖--><dependency><groupId>org.apache.httpcom…

Netty服务端请求接受过程源码剖析

目标 服务器启动后&#xff0c;客户端进行连接&#xff0c;服务器端此时要接受客户端请求&#xff0c;并且返回给客户端想要的请求&#xff0c;下面我们的目标就是分析Netty 服务器端启动后是怎么接受到客户端请求的。我们的代码依然与上一篇中用同一个demo&#xff0c; 用io.…

Tektronix TAP3500/泰克TAP3500有源探头

产品概览 泰克 TAP3500 有源探头&#xff0c;2 .5 GHz 泰克 TAP3500 单端有源 FET 探头是一种多功能且易于使用的探头&#xff0c;可提供数字系统设计所需的高速电气和机械性能。泰克 TAP3500 探头专为使用和连接到 TekVPI™ 探头接口而设计。 泰克 TAP3500 有源探头的特性和规…

带你认识一下什么是函数式接口Comparator

函数式接口Comparator 1、函数式接口是什么&#xff1f; 所谓的函数式接口&#xff0c;实际上就是接口里面只能有一个抽象方法的接口。Comparator接口就是一个典型的函数式接口&#xff0c;它只有一个抽象方法compare。 有人会说equales方法也没有方法体&#xff0c;也是抽象…

江苏专转本考试倒计时,该如何自救?

专转本考试倒计时&#xff0c;该如何自救&#xff1f;第一点&#xff1a;回归考纲教材&#xff0c;刷题。 最后一段时间&#xff0c;一定要回归考纲及教材&#xff01;要把知识点看细&#xff0c;看明白。 另外大家也可以根据历年考试题对知识点进行系统地复习和梳理&#xff0…

【java】Spring Boot --深入SpringBoot注解原理及使用

步骤一 首先&#xff0c;先看SpringBoot的主配置类&#xff1a; SpringBootApplication public class StartEurekaApplication {public static void main(String[] args){SpringApplication.run(StartEurekaApplication.class, args);} }步骤二 点进SpringBootApplication来…

线程间通信的常用方式

线程间通信的常用方式 1.简介 线程通信简单来说就是实现线程的交替工作&#xff0c;传递信息。例如在一个方法中我有两个线程A和B在运行&#xff0c;我希望线程A先向一个集合里面循环新增数据&#xff0c;当增加到第五次的时候&#xff0c;线程B才开始执行其他的操作。 线程间…

博客系统测试用例

博客系统测试用例目录博客系统测试用例博客系统删除功能测试用例 (判定表)提交BUG 1测试用例 1测试用例 2提交BUG提交BUG 2博客系统测试用例 博客系统删除功能测试用例 (判定表) # 首先确定输入条件与输出条件 输入条件: 博客作者, 非博客作者, 点击删除博客输出条件: 删除成…

web移动端:rem适配布局(重点)

目录 1. rem基础 2.媒体查询 2.1 媒体查询的概念 2.2 语法规范 2.2.1 2.2.2 关键字 2.2.3 媒体特性 2.2 根据页面宽度改变颜色 2.3 媒体查询rem 实现元素动态大小变化 2.4 引入资源&#xff08;理解&#xff09; 2.4.1 语法规范 3. less基础 3.1 css弊端 3.2 less介绍…

基于SuperPoint与SuperGlue实现图像配准

基于SuperPoint与SuperGlue实现图像配准&#xff0c;项目地址https://github.com/magicleap/SuperGluePretrainedNetwork&#xff0c;使用到了特殊算子grid_sample&#xff0c;在转onnx时要求opset_version为16及以上&#xff08;即pytorch版本为1.9以上&#xff09;。SuperPoi…

计讯物联污染源自动监控系统,坚守“绿水青山就是金山银山”

近年来&#xff0c;“绿水青山就是金山银山”的理念在全国各地落地生根&#xff0c;各大城市积极构建环境监测体系&#xff0c;旨在让生态文明成色更足&#xff0c;绿色发展底色更亮。计讯物联污染源自动监控系统作为生态环境部门监督企业排污的“火眼金睛”&#xff0c;充分运…