ambari

Ambari安装指南

注意事项

目前centos 7 默认python 环境 为2.7 现在调用 中需要请求比如

https://master:8441/agent/v1/register/master 注册时 会出现问题

我没有去升级 参考了该链接 Ambari 2.4 在 CentOS 7.4 因 TLS_1.2 协商内部错误导致注册失败

1
2
3
4
yum update
yum install -y ntp && systemctl enable ntpd && systemctl start ntpd
yum install -y unzip
yum install -y gcc

[X] 安装环境:

  • 系统版本:CentOS 7.3 x86_64

  • JAVA版本:JDK-1.8.x

  • 确保机器的 Python 版本大于或等于2.6

  • 服务器列表:

    192.168.68.17 master #Ambari Server

    192.168.68.18 work1 #Ambari Agent,namenode2,journalnode1,datanode1,nodemanager1

    192.168.68.20 work2 #Ambari Agent,journalnode2,datanode2,nodemanager2

    192.168.68.21 work3 #Ambari Agent,journalnode3,datanode3,nodemanager3

SSL(需要的话可以升级)

需要openssl的1.0以上版本!

1
2
3
yum install openssl
或者
yum upgrade openssl

JDK

yum install -y java-1.8.0-openjdk-headless.x86_64 或者下载RPM 包安装

建议安装Sun的JDK1.8版本! 安装完毕并配置java环境变量,在/etc/profile末尾添加如下代码:

如果是用yum 在线安装 的openjdk 安装地址在 /lib/jvm/ 下面

或者是下载 oraclejdk 着一般需要解压后 设置java_home

上述地址在初始化 ambari-server setup 时是需要用到的

export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH

保存退出即可,然后执行source /etc/profile生效.在命令行执行java -version 如下代表JAVA安装成功.

ssh

需要配置各个节点的免密码登录!
首先在自己机器上使用ssh-keygen -t rsa

ssh-copy-id root@work1

ssh-copy-id root@work2

ssh-copy-id root@work3

NTP(必要条件)

集群的时钟要保证基本的一致.稍有不一致是可以容忍的,但是很大的不一致会 造成奇怪的行为. 运行 NTP 或者其他什么东西来同步你的时间.
如果你查询的时候或者是遇到奇怪的故障,可以检查一下系统时间是否正确!

crontab -e

*/10 * * * * ntpdate time.nist.gov

ulimit和nproc

Hdaoop会在同一时间使用很多的文件句柄.大多数linux系统使用的默认值1024是不能满足的,修改/etc/security/limits.conf文件为:

1
2
3
4
*               soft    nproc   16384
* hard nproc 16384
* soft nofile 65536
* hard nofile 65536

修改host和虚拟机的名称

192.168.68.17,192.168.68.18,192.168.68.20,192.168.68.21的 /etc/hosts

文件 在文件最后添加:

192.168.68.17 master
192.168.68.18 work1
192.168.68.20 work2
192.168.68.21 work3

同时修改虚拟的名称

1
2
3
4
5
6
7
8
hostnamectl set-hostname master 
vi /etc/hosts
192.168.56.101 master
192.168.56.102 work1
192.168.56.103 work2
vi /etc/sysconfig/network
HOSTNAME=master
uname -a

禁止 PackageKit

1
2
pkill -9 packagekitd
vim /etc/yum/pluginconf.d/refresh-packagekit.conf

将内容改为

1
enabled=0

关闭防火墙和SELINUX

1
2
3
4
5
#关闭
service firewalld stop
#随着系统启动自动关闭
chkconfig firewalld off

systemctl stop firewalld
systemctl disable firewalld

vim /etc/selinux/config

修改 SELINUX=disabled

[X] 安装Ambari Server

在T1上操作

[1] 添加yum资源库:

wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari.repo -O /etc/yum.repos.d/ambari.repo

yum clean all

yum install ambari-server

[2] 校验YUM仓库ambari:

由于公司安全机制,这个地方可能不会安装成功
执行yum repolist,如果有ambari字符串的话,就可以开始安装了!

[3.1] YUM在线安装: ambari-server

1
yum install ambari-server

实验证明,网速巨慢,耐心…,等待安装完成!

[3.2] YUM离线本地安装: ambari-server

  • 先找一个网络好的环境,配置
1
/etc/yum.conf

文件,修改

1
keepcache

1
1

,来保留安装包;再通过

1
yum install ambari-server

安装成功后后;把相关的rpm文件复制到需要离线安装的环境上;例如:

1
2
3
4
5
6
ambari-server-2.1.2-377.x86_64.rpm
ambari-agent-2.1.2-377.x86_64.rpm
postgresql-8.4.20-3.el6_6.x86_64.rpm
postgresql-devel-8.4.20-3.el6_6.x86_64.rpm
postgresql-libs-8.4.20-3.el6_6.x86_64.rpm
postgresql-server-8.4.20-3.el6_6.x86_64.rpm
  • 再执行yum localhost ./postgresql-8.4.20-3.el6_6.x86_64.rpm ./postgresql-server-8.4.20-3.el6_6.x86_64.rpm ./postgresql-libs-8.4.20-3.el6_6.x86_64.rpm ./postgresql-devel-8.4.20-3.el6_6.x86_64.rpm ./ambari-server-2.1.2-377.x86_64.rpm来进行离线安装!

[5] 配置AMBARI-SERVER

1
2
3
4
##指定JAVA_HOME
ambari-server setup -j /usr/java/default
##不指定JAVA_HOME执行
ambari-server setup

选择n会按默认配置
数据库类型:postgresql
数据库:ambari
用户名:ambari
密码:bigdata
等待安装完成

[6] 启动AMBARI-SERVER

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
## 初始化 ambari 包含配置数据库和 jdk环境
ambari-server setup
## 重置
ambari-server reset
## 安装高版的 ambari ,后升级
ambari-server upgrade




##启动:
ambari-server start
##查看:
ps -ef | grep Ambari
##停止:
ambari-server stop
##帮助
ambari-server help


然后访问:http://master:8080
不出意外的话就安装完成了
用户名/密码:admin/admin

[6] 安装AMBARI-AGENT(可选 在web界面自动安装注册)

在网络环境不好的地方或者sshd的端口不是标准的22时,可以在每个agent节点上先手工安装AMBARI-AGENT

1
yum install ambari-agent

备注:

  • Ambari安装的环境路径: 各台机器的安装目录:
1
2
3
4
5
/usr/lib/hadoop
/usr/lib/hbase
/usr/lib/zookeeper
/usr/lib/hcatalog
/usr/lib/hive
  • Log路径, 这里需要看出错信息都可以在目录下找到相关的日志

    1
    2
    /var/log/hadoop
    /var/log/hbase
  • 配置文件的路径

    1
    2
    3
    /etc/hadoop
    /etc/hbase
    /etc/hive
  • HDFS的存储路径

    1
    /hadoop/hdfs

FAQ

  • 主机名格式必须是hoastname.domain,如master
  • Zookeeper-Agent端修改Server指向的HOSTNAME, /etc/ambari-agent/conf/ambari-agent.ini,如修改过主机hostname
  • 安装失败后或重新安装先执行ambari-server resetambari-setup
  • 最后一步安装可能会失败,多数原因是下载包错误引起的,可重复安装直到成功,本人反复几个最终成功了,网络,网络,尤其就朝民,各种干扰!

ssl 版本导致的agent注册失败

1
2
3
#在agent的配置,主要针对ambari 2.6.2
[security]
force_https_protocol=PROTOCOL_TLSv1_2

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:579)

1
2
3
# vim /etc/python/cert-verification.cfg
[https]
verify=disable

卸载hdp

image-20201222161524135

image-20201222161640124

  1. 确保防火墙关闭,能够ping通ambari-server服务所在机器的IP

  2. 升级openssl服务

    1
    yum upgrade openssl
1
2
3
4
3. 关闭 openssl 的检查

```bash
sed -i 's/verify=platform_default/verify=disable/' /etc/python/cert-verification.cfg
  1. 先停掉ambari-server,然后依次停掉各个ambari-agent

    1
    2
    ambari-server stop
    ambari-agent stop
  2. 在所有ambari-agent节点上,修改ambari-agent.ini文件的[security],新增force_https_protocol如下:

    1
    2
    3
    vi /etc/ambari-agent/conf/ambari-agent.ini
    [security]
    force_https_protocol=PROTOCOL_TLSv1_2
  3. 依次开启ambari-agent,最后开启ambari-server

    1
    2
    ambari-server start
    ambari-agent start

卡在安装界面看log不报错

image-20201224140234774

这是由于 我们使用了远程的地址,下载比较慢 查看服务器后台

1
2
3
4
5
6
[root@localhost ~]# ps -ef|grep yum
root 8946 8942 0 14:01 ? 00:00:00 /bin/sh -c rpm -qa | grep smartsense- || yum -y install smartsense-hst || rpm -i /var/lib/ambari-agent/cache/stacks/HDP/3.0/services/SMARTSENSE/package/files/rpm/*.rpm
root 8949 8946 1 14:01 ? 00:00:00 /usr/bin/python /bin/yum -y install smartsense-hst
root 8993 3120 0 14:01 pts/0 00:00:00 grep --color=auto yum
[root@localhost ~]#

发现 yum是在运行的 期间大概耗费20多分钟

补充搭建本地仓库 (目前使用的是在线仓库搭建)

安装Nginx

编辑本地仓库 vi /etc/yum.repos.d/nginx.repo

1
2
3
4
5
[nginx]
name=nginx repo
baseurl=https://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

yum repolist

yum install nginx.x86_64

首先确定我们的版本 ambari 2.7.3.0 ,hdp HDP-3.1.4.0 链接

Timeline Service V1.5 Start

1
2
3
Execution of 'curl -sS -L -w '%{http_code}' -X PUT -d '' -H 'Content-Length: 0' 'http://work1:50070/webhdfs/v1/ats/done?op=SETPERMISSION&user.name=hdfs&permission=755'' returned status_code=403.


解决方案 https://community.cloudera.com/t5/Support-Questions/App-Timeline-Server-not-start/td-p/230460

1
# su - hdfs

As hdfs

1
$ hdfs dfsadmin -safemode get 

From the above you will confirm the status in the error “safe mode” then

1
$ hdfs dfsadmin -safemode leave 

https://liujia.anqun.org/index.php/archives/1211/

xfs_repair