一次Ambari安装记录

news2024/11/16 21:30:49

引言

Ambari是一个开源的Apache项目,它提供了一个直观易用的Web界面,用于管理、监控和配置Apache Hadoop集群。它是一个集群管理工具,可以帮助管理员轻松地部署、管理和监控Hadoop集群的各种组件,如HDFS、YARN、MapReduce、Hive、HBase等。通过Ambari,用户可以在集群中添加或移除节点,监控集群健康状况,执行配置更改,以及查看各种性能指标和日志。Ambari的用户界面直观友好,使得对Hadoop集群的管理变得更加简单和高效。

  • 官方安装教程2.7.5

环境

Ambari版本支持界面

Data数据目录

-w283

HDFS的路径不支持 /home(s) 前缀。

所以,在安装Ambari之前,先要确认好集群机器上的文件系统分区,非 /home 分区下的其他分区是否有足够的空间来存放HDFS和其他应用的数据。若没有的话,重装系统(允许的话)或者通过挂载新磁盘等方法来扩容出新的分区。

而可以的话,建议在安装系统的时候数据分区都设置在 /hadoop 下,这样安装ambari的时候,可以省去修改默认配置的麻烦(因为默认情况下,基本配置都是设置在 /hadoop 之下。)

建议分区

# datanode 存储主要分区
/hadoop
# 不作为DataNode存储目录,有些额外的数据配置需要使用与datanode不同的文件,如HBase Root
/data

题外,若磁盘空间真分配到 /home 的话,又不得不使用的地步的话,其实也可以尝试使用软链接进行hack,参考命令:

mkdir -p /home/hadoop/ &&  cd / && ln -s /home/hadoop/ /hadoop

但这样的方法不确定是否导致其他运行时的使用上问题。

集群访问设置

设置FQDN

FQDN = 简短的名字 + 域
如: hostname返回的结果是 dev-qa001,而域为test.com的话,则fqdn为 dev-qa001.test.com

  1. 设置hostname。

    hostnamectl set-hostname <host-name>
    
    # 例子,dev开发、prd生产
    hostnamectl set-hostname bd001.dev.tkhome.bms.ctos7
    hostnamectl set-hostname bd002.dev.tkhome.bms.ctos7
    hostnamectl set-hostname bd003.dev.tkhome.bms.ctos7
    
  2. 修改 /etc/hosts 配置好集群服务器的FQDN,以便安装时使用。

    例如:

    192.168.1.91 bd001.dev.tkhome.bms.ctos7.timekey.com.cn bd001.dev.tkhome.bms.ctos7
    192.168.1.92 bd002.dev.tkhome.bms.ctos7.timekey.com.cn bd002.dev.tkhome.bms.ctos7
    192.168.1.93 bd003.dev.tkhome.bms.ctos7.timekey.com.cn bd003.dev.tkhome.bms.ctos7
    

    或者命令

    sudo tee -a /etc/hosts<<-'EOF'
    

192.168.1.91 bd001.dev.tkhome.bms.ctos7.timekey.com.cn bd001.dev.tkhome.bms.ctos7
192.168.1.92 bd002.dev.tkhome.bms.ctos7.timekey.com.cn bd002.dev.tkhome.bms.ctos7
192.168.1.93 bd003.dev.tkhome.bms.ctos7.timekey.com.cn bd003.dev.tkhome.bms.ctos7
EOF
```

  1. 设置好之后, 通过 hostname -F /etc/hostname 更新主机名. 这时, 通过 hostname -f 看到的FQDN就应该是: bd001.dev.tkhome.bms.ctos7.timekey.com.cn

查看本机FQDN命令参考

hostname -f

注意:配置时,如果遇到ip对应多个hostname,请务必写到一行之中,并且把期望作为FQDN的hostname放到首位!

编写hosts完成后,同步各台机器上。

设置支持免密登录

ambari-server操作集群时,需要使用 特定账号 登录到每台集群服务器上进行代理操作,所以,设置密钥和免密登录必不可少。

为了方便,目前建议使用root账号

登录安装作为安装 Ambari Server 的服务器,参考如下命令

# 生成密钥
ssh-keygen -t rsa -P ''

# 产生公钥与私钥对
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

# 设置权限
chmod 0600 ~/.ssh/authorized_keys

# 将本机的公钥复制到远程机器的authorized_keys文件中,开启无密码SSH登录
ssh-copy-id user@host

例如,(命令后,输入ssh密码)
ssh-copy-id root@bd002.dev.tkhome.bms.ctos7
ssh-copy-id root@bd003.dev.tkhome.bms.ctos7

是否新建ambari服务的账号为可选项。而基于安全和操作规范,一般不使用root作为远程登录甚至操作账号。但若不用root的话,不太确定是否会对ambari-server的操作带来影响(目前实践安装时没使用root)。

关闭防火墙(所有机器)

  1. 关闭firewalld

    systemctl disable --now firewalld
    
  2. 关闭SELinux

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

    重启后生效

    reboot now
    
    # 查看SELinux
    getenforce 或 sestatus
    
  3. 确认umask值

    umask
    

    确认是否 0022

文件打开限制(每台服务器)

查看

ulimit -Sn
ulimit -Hn

修改 /etc/security/limits.conf 文件,内容参考:

*       soft    nofile  10000
*       hard    nofile  10000
*       soft    nproc   131072
*       hard    nproc   131072

或者命令

sudo tee -a /etc/security/limits.conf<<-'EOF'
*       soft    nofile  10000
*       hard    nofile  10000
*       soft    nproc   131072
*       hard    nproc   131072
EOF

重新连接访问后生效。

设置本地源(yum)

略,目的就是提高后续安装包的速度。

安装依赖包

On each of your hosts:

  • yum and rpm (RHEL/CentOS/Oracle/Amazon Linux)
  • zypper and php_curl (SLES)
  • apt (Debian/Ubuntu)
  • scp, curl, unzip, tar, wget, and gcc*
  • OpenSSL (v1.01, build 16 or later)
  • Python 2.7.12 (with python-devel*)

*Ambari Metrics Monitor uses a python library (psutil) which requires gcc and python-devel packages.

命令参考:

yum install vim scp curl unzip tar wget gcc* python-devel* psutil libtirpc -y

时间同步

1、安装ntp服务(全部节点)

yum install -y ntp

2、设置NPT Server

由于离线环境下,所以需要指定一台NPT Server作为集群机器之间的时间同步机器。互联网环境下可选。

备份ntpd配置文件

mv /etc/ntp.conf{,.bak}

脚本设置文件配置

sudo tee /etc/ntp.conf<<-'EOF'
driftfile /var/lib/ntp/drift

restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
# 这个表示在192.168.1.1/24网段内的服务器就可以通过这台NTP Server进行时间同步了
restrict 192.168.1.1 mask 255.255.255.0 nomodify

server 0.cn.pool.ntp.org iburst
server 1.cn.pool.ntp.org iburst
server 2.cn.pool.ntp.org iburst
server 3.cn.pool.ntp.org iburst

server 127.0.0.1 # local clock
fudge 127.0.0.1 stratum 10

includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

disable monitor
EOF

开启服务

systemctl start ntpd.service
systemctl enable ntpd

3、NTP子节点机器,配置连接NTP Server

配置子节点机器的ntp.conf

sudo tee /etc/ntp.conf<<-'EOF'
driftfile /var/lib/ntp/drift

restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
restrict bd001.dev.tkhome.bms.ctos7 nomodify notrap noquery

server bd001.dev.tkhome.bms.ctos7

server 127.0.0.1 # local clock
fudge 127.0.0.1 stratum 10

includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

disable monitor
EOF

启动服务

systemctl start ntpd.service
# 设置自启动
systemctl enable ntpd

4、确认时间同步

客户端机器

ntpq -p

看到如下信息

-w647

bd001.dev.tkhome.bms.ctos7 键入,查看日期

date;ssh bd002.dev.tkhome.bms.ctos7.timekey.com.cn date;ssh bd003.dev.tkhome.bms.ctos7.timekey.com.cn date

see also:

  • ​Enable NTP on the Cluster and on the Browser Host

JDK8安装

参见使用 install-server-jre-offline.sh 脚本,安装完成后, JDK根目录为 /opt/jdk

安装外部数据库

需要数据库的服务:

  • ambari-server: 由于WFM的兼容性问题,所以建议使用默认内置的数据库(PostgreSQL内存型)所以不需要额外依赖。
  • OozieHive等: 默认可使用Derby,但没其他特殊情况的话,除开发阶段,都不建议使用内存型数据库。其他支持PostgreSQL、MySQL等。

所以,至少我们还需要一个外部数据库,建议使用MariaDB。

MariaDB(MySQL)

以MariaDB为例

1、安装MariaDB

sudo yum install mariadb-server

see also: nstalling MariaDB with yum/dnf

# 安装向导
mysql_secure_installation

2、安装完成后,创建Oozie、Hive和druid服务需要的库。

进入控制台,输入以下语句:

create user 'hive'@'%' identified by 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%';
create user 'hive'@'localhost' identified by 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost';
FLUSH PRIVILEGES;

CREATE DATABASE `hive` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

create user 'oozie'@'%' identified by 'oozie';
GRANT 

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

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

相关文章

【GPTs分享】GPTs分享之Image Recreate | img2img​

简介 该GPT是一个专门用于图像编辑、重建和合并的工具。它通过详细的自动图像描述和生成&#xff0c;帮助用户从源图像中重现或修改图像。此工具设计用于为视障用户提供图像内容的详细描述&#xff0c;并生成全新的图像&#xff0c;以满足特定的视觉需求。 主要功能 \1. 图像…

存储人视角:人工智能AI + 大模型

原文来自于知乎存储专栏&#xff1a; 存储人视角&#xff1a;人工智能AI 大模型 前沿 我的角色 背景 AI 出场 效果 一个宠娃狂魔 娃喜爱并有奥特曼玩具 她的奥特曼玩具会跳舞了 娃对我的崇拜和爱又多了一分......amazing 杭州网商路艾弗森 球队需要制作LOGO 形象生动…

【学习】对于加密接口、签名接口如何进行性能测试

随着科技的飞速发展&#xff0c;加密接口和签名接口在我们的日常生活中扮演着越来越重要的角色。从在线支付到信息安全&#xff0c;它们始终默默地守护着我们的数字世界。然而&#xff0c;随着应用场景的不断扩展&#xff0c;性能测试变得尤为重要。今天&#xff0c;让我们一起…

【6】mysql查询性能优化-关联子查询

【README】 0. 先说结论&#xff1a;一般用inner join来改写in和exist&#xff0c;用left join来改写not in&#xff0c;not exist&#xff1b;&#xff08;本文会比较内连接&#xff0c;包含in子句的子查询&#xff0c;exist的性能 &#xff09; 1. 本文总结自高性能mysql 6…

PLC中连接外部现场设备和CPU的桥梁——输入/输出(I/O)模块

输入&#xff08;Input&#xff09;模块和输出&#xff08;Output&#xff09;模块简称为I/O模块&#xff0c;数字量&#xff08;Digital&#xff0c;又称为开关量&#xff09;输入模块和数字量输出模块简称为DI模块和DQ模块&#xff0c;模拟量&#xff08;Analog&#xff09;输…

求a+aa+aaa+……(C语言)

一、题目&#xff1b; 二、N-S流程图&#xff1b; 三、运行结果&#xff1b; 四、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int a 0;int n 0;int i 0;int result 0;int tn 0;//提示用户&am…

Linux学习第52天:Linux网络驱动实验(二):一往(网)情深

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 本节笔记的目录如下&#xff1a; 四、I.MX6ULL网络驱动简介 1.I.MX6ULL网络外设设备树 2.I.MX6ULL网络驱动源码简析 3.fec_netdev_ops操作集 4.Linux内核PHY子…

删除word中下划线的内容

当试卷的题目直接含答案&#xff0c;不利用我们刷题。这时如果能够把下划线的内容删掉&#xff0c;那么将有利于我们复习。 删除下划线内容的具体做法&#xff1a; ①按ctrl H ②点格式下面的字体 ③选择下划线线型中的_____ ④勾选使用通配符并在查找内容中输入"?&qu…

OSI网络七层协议 ——(随手笔记)

1.OSI OSI&#xff08;Open System Interconnect&#xff09;&#xff0c;即开放式系统互连。 一般都叫OSI参考模型&#xff0c;是ISO组织在1985年研究的网络互连模型。该体系结构标准定义了网络互连的七层框架&#xff08;物理层、数据链路层、网络层、传输层、会话层、表示层…

【论文阅读】Attention is all you need

摘要 主要的序列转换模型是基于复杂的循环或卷积神经网络&#xff0c;其中包括一个编码器和一个解码器。性能最好的模型还通过一种注意力机制将编码器和解码器连接起来。我们提出了一种新的简单的网络架构&#xff0c;Transformer&#xff0c;完全基于注意机制&#xff0c;完全…

数据结构-基于ArrayList的源码模拟

文章目录 继承关系 :1. 构造方法的模拟2. 扩容机制的分析3. 查找方法的模拟4. 获取,修改元素的方法模拟5. 添加元素的模拟6. 删除元素的模拟7. removeAll与retainAll的模拟总结: 边缘方法以及总代码 继承关系 : 1. 构造方法的模拟 源码中我们的ArrayList的构造方法给出了三种实…

【Java基础】19.继承(面向对象的三大特征:封装、继承、多态)

文章目录 前言一、继承的概念二、继承的步骤1.类的继承格式2.继承的实例3.继承类型 三、继承的特性四、继承的关键字1.extends关键字2.implements关键字3.super 与 this 关键字4.final 关键字 五、构造器 前言 一、继承的概念 继承是java面向对象编程技术的一块基石&#xff…

Git - 在PyCharm/Idea中集成使用Git

文章目录 Git - 在PyCharm/Idea中集成使用Git1.新建GitHub仓库2.将仓库与项目绑定3.在PyCharm中使用Git4.新建Gitee仓库5.将仓库与项目绑定6.在IDEA中使用Git Git - 在PyCharm/Idea中集成使用Git 本文详细讲解了如何在 PyCharm 或 Idea 中配置 Gitee 或 GitHub 仓库&#xff0…

【算法】深度优先遍历(DFS)算法详解与实现

文章目录 1.算法原理2. 常见的深度优先遍历方式3. 代码实现总结 深度优先遍历&#xff08;DFS&#xff09;是一种常用的树或图的遍历算法&#xff0c;它通过尽可能深地搜索树或图的分支&#xff0c;直到路径上的所有节点都被访问完毕&#xff0c;然后再回溯到上一层&#xff0c…

win10 系统怎么开启 guest 账户?

win10 系统怎么开启 guest 账户&#xff1f; 段子手168 前言&#xff1a; guest 账户即所谓的来宾账户&#xff0c;我们可以通过该账户访问计算机&#xff0c;如打印机共享等&#xff0c;但会在一定程度上受到限制。下面分享 WIN10 系统开启 guest 来宾账户的几种方法。 方法…

袁庭新ES系列15节|Elasticsearch客户端基础操作

前言 上一章节我们介绍了搭建Elasticsearch集群相关的知识。那么又该如何来操作Elasticsearch集群呢&#xff1f;在ES官网中提供了各种语言的客户端&#xff0c;我们在项目开发过程中有多种Elasticsearch版本和连接客户端可以选择&#xff0c;那么他们有什么区别&#xff1f;这…

Clion 2023.1.5 最新详细破解安装教程

CLion 最大的优点是跨平台&#xff0c;在Linux、Mac、Windows 上都可以运行。CLion 还同时支持 GCC、Clang、MSVC 这 3 种编译器&#xff0c;使用 CLion 编写程序&#xff0c;程序员可以根据需要随意切换使用的编译器。 第一步: 下载最新的 Clion 2023.1.5 版本安装包 我们先…

(2022级)成都工业学院数据库原理及应用实验五: SQL复杂查询

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、成品仅提供参考 3、如果成品不满足你的要求&#xff0c;请寻求其他的途径 运行环境 window11家庭版 Navicat Premium 16 Mysql 8.0.36 实验要求 在实验三的基础上完成下列查询&#xff1a; 1、查询医生…

项目管理-项目开发计划介绍

目录 一、内容总览 二、项目开发计划概述 2.1 概述 2.2 项自开发计划的目的和作用 2.3 项目开发计划的内容 2.3.1 工作计划 2.3.2 人员组织计划 2.3.3 设备采购和资源供应计划 2.3.4 配置管理计划 2.3.5 进度安排计划 2.3.6 成本投资计划 2.3.7 质量保证计划 2.3.8…

Unity Editor编辑器扩展之创建脚本

前言 既然你看到这篇文章了&#xff0c;你是否也有需要使用代码创建脚本的需求&#xff1f;使用编辑器扩展工具根据不同的表格或者新增的内容去创建你想要的脚本。如果不使用工具&#xff0c;那么你只能不断去修改某个脚本&#xff0c;这项工作既繁琐也浪费时间。这个时候作为程…