一次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 0sed -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/driftrestrict 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 nomodifyserver 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 iburstserver 127.0.0.1 # local clock
fudge 127.0.0.1 stratum 10includefile /etc/ntp/crypto/pw
keys /etc/ntp/keysdisable 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/driftrestrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1
restrict bd001.dev.tkhome.bms.ctos7 nomodify notrap noqueryserver bd001.dev.tkhome.bms.ctos7server 127.0.0.1 # local clock
fudge 127.0.0.1 stratum 10includefile /etc/ntp/crypto/pw
keys /etc/ntp/keysdisable 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.mzph.cn/diannao/1146.shtml

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

相关文章

OerOerlikonTCO1200欧瑞康LPCVD system操作使用说明

OerOerlikonTCO1200欧瑞康LPCVD system操作使用说明

DQ-DETR: DETR WITH DYNAMIC QUERY FOR TINY OBJECTDETECTION 学习笔记

论文地址&#xff1a;https://arxiv.org/pdf/2404.03507.pdf 此DQ-DETR与IDEA提出的同名&#xff0c;该文主要集中于小目标的检测 尽管之前的类似DETR的方法在通用目标检测中取得了成功&#xff0c;但在小目标检测方面仍然具有挑战性&#xff0c;因为目标 Query 的位置信息并未…

LWIP开启ARP之后进入硬件错误中断

遇到个很奇怪的问题&#xff0c;如下图只要开启ARP之后&#xff0c;就会进入硬件错误中断&#xff0c;关掉就好了。 而无法开启ARP&#xff0c;就不能ping 通&#xff0c;所以必须要解决这个问题。 最终debug发现死在memcpy函数位置 这样原因就很好分析了&#xff0c; 共4个拷…

通过linux工具iftop命令查看视频监控平台是否收到监控摄像头的视频流(视频监控平台接收和转发的视频流)

目录 一、需求描述 二、解决思路 &#xff08;一&#xff09;问题分析 &#xff08;二&#xff09;解决思路 1、通过抓包的方式 2、通过一些linux的网络监视工具 三、需求实现 &#xff08;一&#xff09;抓包工具 1、tcpdump 2、Wireshark 3、tcptrace &#xff0…

【刷题】 二分查找进阶

送给大家一句话&#xff1a; 你向神求助是因为相信神&#xff0c;神没有回应你是因为神相信你 ε≡٩(๑>₃<)۶ &#xfeff;ε≡٩(๑>₃<)۶ &#xfeff;ε≡٩(๑>₃<)۶ 一心向学 二分查找进阶 1 前言Leetcode 852. 山脉数组的峰顶索引题目描述算法思…

【EtherCAT】FMMU和SM简介

目录 一、简介 1、 FMMU 2、SM (1) 缓冲模式 (2)邮箱模式 3、FMMU将物理存储器映射到逻辑过程数据映射的配置原理 二、FMMU和SM在EtherCAT从站控制器的存储空间分配 三、FMMU和SM部分寄存器描述(LAN9253) 1、FMMU 2、SM 四、FMMU和SM的数据结构&#xff08;soem主站&…

什么是AIoT?

什么是AIoT? AIoT&#xff0c;即人工智能物联网&#xff0c;是一种将人工智能&#xff08;AI&#xff09;技术与物联网&#xff08;IoT&#xff09;相结合的新型应用形态。它不仅实现了设备之间的互联互通&#xff0c;还赋予了它们更智能化的特性。AIoT的核心在于通过AI的数据…

什么是知乎知+广告推广?

知乎作为中国领先的知识分享社区和高质量用户群体汇聚地&#xff0c;其广告价值日益凸显&#xff0c;其中&#xff0c;“知”作为知乎官方推出的创新广告形式&#xff0c;正逐渐成为品牌与消费者深度连接的重要桥梁。知广告推广不仅局限于传统意义上的硬性推广&#xff0c;更强…

解锁棋盘之谜:探索N皇后问题的全方位解决策略【python 力扣51题】

作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 欢迎加入社区&#xff1a;码上找工作 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 python数据分析…

前后端跨域请求代码实战(vue3.4+springboot2.7.18)

前端代码 v3.4.21&#xff08;前端不是主业&#xff0c;所以就贴一贴代码&#xff0c;有疑问评论区见&#xff09;后端代码&#xff0c;springboot 2.7.18&#xff08;后端&#xff09; 文章内容&#xff1a; 一&#xff0c;后端代码 二&#xff0c;前端代码 三&#xff0c;后…

【ARM 裸机】I.MX 启动方式之启动头文件 1

接上一节&#xff1a;【ARM 裸机】I.MX 启动方式之启动设备的选择&#xff1b; 2、启动头文件 当 BOOT_MODE1 为 1&#xff0c;BOOT_MODE0 为 0 的时候此内部 BOOT 模式&#xff0c;在此模式下&#xff0c;芯片会执 行内部的 BOOT ROM 代码&#xff0c;这段 BOOT ROM 代码会进…

tensor是pytorch的核心,那torch.tensor和torch.Tensor区别是?

本文重点 从本节课程开始我们将正式开启pytorch的学习了&#xff0c;在深度学习框架中有一个重要的概念叫做张量&#xff0c;它是pytorch的基本操作单位&#xff0c;要想创建tensor有很多的方式&#xff0c;但是有两个torch.tensor和torch.Tensor容易混淆&#xff0c;本节课程…

javase__进阶 day13stream流和方法引用

1.不可变集合 1.1 什么是不可变集合 ​ 是一个长度不可变&#xff0c;内容也无法修改的集合 1.2 使用场景 ​ 如果某个数据不能被修改&#xff0c;把它防御性地拷贝到不可变集合中是个很好的实践。 ​ 当集合对象被不可信的库调用时&#xff0c;不可变形式是安全的。 简单…

大厂面试精华面试刷题

1.自定义unshift实现相同效果 2.数组去重 用vs2019来写这种练习题可以更直观的查看代码执行的效果&#xff0c;最后的代码是控制控制台执行完毕后不自动关闭 use strict;let arr [1, 1, 2, 2, 3, 3, 4, 5, 6, 7, 8, 9, 10] //1.//查重最简单的方法for循环结合splice从数组中…

【C++】飞机大战项目记录

源代码与图片参考自《你好编程》的飞机大战项目&#xff0c;这里不进行展示。 本项目是仅供学习使用的项目 飞机大战项目记录 飞机大战设计报告1 项目框架分析1.1 敌机设计&#xff1a;1.2 玩家飞机控制&#xff1a;1.3 子弹发射&#xff1a;1.4 游戏界面与互动&#xff1a;1.5…

解决Linux根分区空间不足的方法:利用Home分区进行扩容

前言 在进行系统安装时&#xff0c;一个常见的困扰是默认分区设置可能导致home分区拥有过多的空间&#xff0c;而root分区却显得十分紧缺。这种情况下&#xff0c;用户往往会陷入无法继续安装软件或存储文件的困境。本文将向您展示如何通过合理的调整&#xff0c;将home分区中多…

【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…

Python 面向对象——1.基本概念

本章学习链接如下&#xff1a; 基本概念与语法 类&#xff08;Class&#xff09;&#xff1a;定义了一组对象共有的属性和方法的蓝图。类是创建对象的模板。 对象&#xff08;Object&#xff09;&#xff1a;类的实例。对象包含实际的数据和操作数据的方法。 属性&#xff0…

NLP_知识图谱_三元组实战

文章目录 三元组含义如何构建知识图谱模型的整体结构基于transformers框架的三元组抽取baselinehow to use预训练模型下载地址训练数据下载地址 结构图代码及数据bertconfig.jsonvocab.txt datadev.jsonschemas.jsontrain.jsonvocab.json 与bert跟data同个目录model.pytrain.py…

原型和原型链--图解

https://juejin.cn/post/7255605810453217335 prototype是函数的属性&#xff08;一个对象&#xff09;&#xff0c;不是对象的属性&#xff0c;普通函数和构造函数的prototype属性是空对象&#xff5b;&#xff5d;&#xff08;其实有2个属性&#xff0c;一个是constructor&a…