一次Ambari安装记录

引言

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';

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用R语言生成频数分布表

概要 使用R语言生成频数分布表 在R语言中&#xff0c;可以使用freq()函数来生成频数分布表。首先&#xff0c;将需要分组的数据存储在一个向量中。然后&#xff0c;使用freq()函数将这个向量作为参数输入&#xff0c;即可生成频数分布表。以下是一个示例&#xff1a; 示例 …

力扣-2259移除指定数字得到的最大结果

思路&#xff1a; 1. def removeDigit(self, number: str, digit: str) -> str:&#xff1a;这是一个类方法&#xff0c;接受两个参数 number 和 digit&#xff0c;分别表示输入的数字字符串和要移除的数字字符&#xff0c;返回一个字符串。 2. n len(number)&#xff1a…

【linux】chmod权限开放(整个文件夹)

文章目录 起因权限查看权限修改 失败权限修改成功 起因 想要共享conda环境给同事&#xff0c;发现同事没权限。 权限查看 ls #查看当前目录 ls -l # 查看当前目录的东西和权限正常情况下是显示 三个rwx分别属于user&#xff0c;group&#xff0c;others 前面第一个rwx 是针…

抖店2024现状,嘴上抱怨内卷不好做,做起来就一做一个不吱声

我是王路飞。 身边有朋友在做抖店的&#xff0c;你要是问他现在抖店做着怎么样&#xff1f; 他绝对会说现在的抖店非常内卷&#xff0c;流量不好搞&#xff0c;达人不好对接&#xff0c;很难做...... 但是私底下做起来&#xff0c;一做一个不吱声~ 这也是现在抖店的一个真实…

【MATLAB源码-第196期】基于matlab的A*融合DWA算法栅格路径规划仿真,画出路径图、姿态角度以及线角速度。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 A算法与DWA算法的融合是一个高效的路径规划策略&#xff0c;这种策略将A算法的全局路径规划能力与DWA算法的局部避障能力结合起来&#xff0c;以期达到更快、更安全的导航效果。以下是对这种融合策略的详细描述。 一、基本概…

RISC-V CVA6 在 Linux 下相关环境下载与安装

RISC-V CVA6 在 Linux 下相关环境下载与安装 所需环境与源码下载 CVA6 源码下载 首先&#xff0c;我们可以直接从 GitHub 一次性拉取所有源码&#xff1a; git clone --recursive https://github.com/openhwgroup/cva6.git如果这里遇到网络问题&#xff0c;拉取失败&#x…

Vue--》深入了解 VueUse 功能性工具集

今天博主为大家介绍一款实用性的插件名字叫做 VueUse &#xff0c;它是专门为 Vue.js 生态系统设计的功能性工具集合。其提供了许多可重用的功能函数&#xff0c;可以帮助开发者更轻松地构建 Vue.js 应用程序。其提供了大量的功能&#xff0c;包括状态管理、副作用管理、组合式…

力扣HOT100 - 2. 两数相加

解题思路&#xff1a; 缺位的节点进行补零处理&#xff0c;如97323补充为973023 注意相加的进位问题 class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode head null, tail null;int carry 0;while (l1 ! null || l2 ! null) {int n1 l…

代码随想录算法训练营第20天 |654.最大二叉树、 617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

代码随想录算法训练营第20天 |654.最大二叉树、 617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树 自己看到题目的第一想法看完代码随想录之后的想法自己实现过程中遇到哪些困难 链接: 654.最大二叉树 链接: 617.合并二叉树 链接: 700.二叉搜索树中的搜索 链接: 98.…

Python的多线程

多线程 1. 程序&#xff0c;进程&#xff0c;线程 1、程序是指一组指示计算机或其他具有信息处理能力装置执行动作或做出判断的指令&#xff0c;通常用某种程序设计语言编写&#xff0c;运行于某种目标计算机体系结构上。程序的通俗定义就是&#xff1a;一段可执行的代码 2、进…

http 3.0 有哪些新特性

HTTP/3 是超文本传输协议&#xff08;HTTP&#xff09;的最新主要版本&#xff0c;其显著特点是放弃了传统的TCP作为传输层协议&#xff0c;转而采用基于UDP的QUIC&#xff08;Quick UDP Internet Connections&#xff09;协议。以下是HTTP/3利用QUIC实现高性能传输的关键特性&…

检索增强生成(RAG)技术

随着大型语言模型&#xff08;LLMs&#xff09;在自然语言处理&#xff08;NLP&#xff09;领域的显著进步&#xff0c;它们在多个评估基准测试中显示出超越人类水平的语言和知识掌握能力。然而&#xff0c;这些模型在实际应用中也面临着一系列挑战&#xff0c;如制造事实、知识…

关于stm32cubemx时钟设置中css enable的作用

STM32已提供了一个时钟失常恢复机制(CSS)&#xff0c;当系统选择HSE作系工作时钟&#xff0c;并打开了CSS功能后&#xff0c;当HSE由于外部原因而停震时&#xff0c;系统将自动切换到内部HSI运行&#xff0c;并产生NMI中断&#xff0c;于是可以在NMI中断中进行安全处理。在cube…

Java中的BIO、NIO与AIO

1.概述 I/O 模型简单的理解&#xff1a;就是用什么样的通道进行数据的发送和接收&#xff0c;很大程度上决定了程序通信的性能。Java 共支持 3 种网络编程模型 I/O 模式&#xff1a;BIO、NIO、AIO。 2.Java BIO Java BIO(Blocking I/O)&#xff1a;是传统的java io 编程&#…

话题——为什么要学习程序,成为程序员呢?

选择成为一名程序员&#xff0c;这对我而言并非是一时冲动&#xff0c;而是深思熟虑后的坚定选择。在当下这个信息化、数字化的时代&#xff0c;程序员这一职业不仅具有极高的技术含量&#xff0c;更承载了推动社会进步、引领科技发展的重任。特别是在深度学习这一前沿领域&…

【六十四】【算法分析与设计】699. 掉落的方块,离散化操作,线段树优化,区间查询sum+区间更新update

699. 掉落的方块 在二维平面上的 x 轴上&#xff0c;放置着一些方块。 给你一个二维整数数组 positions &#xff0c;其中 positions[i] [left(i), sideLength(i)] 表示&#xff1a;第 i 个方块边长为 sideLength(i) &#xff0c;其左侧边与 x 轴上坐标点 left(i) 对齐。 每个…

Midjourney如何利用chaos控制生成图片的差异化

hello 小伙伴们&#xff0c;我是你们的老朋友——树下&#xff0c;今天分享Midjourney提示词常用参数——chaos&#xff0c;话不多说&#xff0c;直接开始~ chaos参数什么意思呢&#xff1f; 它可以用来控制我们生成图片之间的差异化程度的一个参数 通常我们在用Midjourney生…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-1.1

前言&#xff1a; 本文是来自哔哩哔哩网站上视频“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”的学习笔记&#xff0c;在这里会记录下正点原子Linux ARM MX6ULL 开发板根据配套的哔哩哔哩学习视频所作的实验和笔记内容。本文大量的引用了正点原子哔哔哩网…

服务器 BMC(基板管理控制器,Baseboard Management Controller)认知

写在前面 工作中遇到&#xff0c;简单整理博文内容涉及 BMC 基本认知理解不足小伙伴帮忙指正 不必太纠结于当下&#xff0c;也不必太忧虑未来&#xff0c;当你经历过一些事情的时候&#xff0c;眼前的风景已经和从前不一样了。——村上春树 基板管理控制器&#xff08;BMC&…

小米一面:说说MVC与设计模式的关系

前言 大家好&#xff0c;我叫阿杆&#xff0c;不叫阿轩。 先来看看面试环节吧。 面试官&#xff1a;请说说MVC模式是基于哪种设计模式的&#xff1f; 求职者&#xff1a;MVC本身不就是一种设计模式吗&#xff1f; 面试官&#xff1a;我的意思是&#xff0c;MVC是基于23中设计…