ambaria安装HDP

前言

Hadoop的生态非常的庞大,如果要对其一一搭建,并配置好相应的配置文件,需要耗费很大的精力和时间。利用Ambari + HDP能帮助我们快速搭建Hadoop平台,同时Ambari提供了监控集群的功能,能在其上面方便的添加Hadoop生态的组件以及相关的分布式框架,如spark,kafka等等。

按照环境

如果之前有ambari和hdp的环境需要重装,则重装之前需要先清理环境,参考网上的一遍博客:完全卸载HDP和Ambari

首先机器之间需要免密登陆,免密的登陆操作这里就不细说了,网上有很多教程,在安装之前最好保证机器之间时间同步,可以使用ntp服务使机器之间的时间同步,安装使用教程可以查看之前的博客:简单集群时间同步

本地仓库

由于ambari和HDP的yum下载太慢,因此直接下载配置本地资源

如果没有http服务,需要先安装http服务

1
2
yum install httpd
service httpd start

下载ambari和HDP仓库地址:Ambari RepositoriesHDP 3.1.0 Repositories,下载ambari、HDP、HDP-UTILS、HDP-GPL的tat.gz的压缩包,解压文件到/var/www/html/下

在/etc/yum.repos.d/下,新建ambari.repo,添加内容

1
2
3
4
5
6
7
8
[AMBARI]
name=AMBARI
baseurl=http://10.1.18.221/ambari/centos7/2.7.3.0-139
path=/
enabled=1
gpgcheck=1
gpgkey=http://10.1.18.221/ambari/centos7/2.7.3.0-139/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
priority=1

新建HDP.repo,内容:

1
2
3
4
5
6
7
8
[HDP-3.1]
name=HDP-3.1
baseurl=http://10.1.18.221/HDP/centos7/3.1.0.0-78
path=/
enabled=1
gpgcheck=1
gpgkey=http://10.1.18.221/HDP/centos7/3.1.0.0-78/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
priority=1

新建HDP-UTILS.repo,内容:

1
2
3
4
5
6
7
8
[HDP-UTILS-1.1.0.22]
name=HDP-UTILS-1.1.0.22
baseurl=http://10.1.18.221/HDP-UTILS/centos7/1.1.0.22
path=/
enabled=1
gpgcheck=1
gpgkey=http://10.1.18.221/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
priority=1

新建HDP-GPL.repo,内容:

1
2
3
4
5
6
7
name=HDP-GPL-3.1.0.0
baseurl=http://10.1.18.221/HDP-GPL/centos7/3.1.0.0-78
path=/
enabled=1
gpgcheck=1
gpgkey=http://10.1.18.221/HDP-GPL/centos7/3.1.0.0-78/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
priority=1

新建yum的缓存

1
2
yum clean all
yum makecache

安装Ambari

首先需要关闭SELinux

1
2
3
4
5
6
7
# 查看SELinux状态
getenforce
# 临时关闭(不用重启机器)
setenforce 0
# 修改配置文件永久关闭,需要重启机器
vim /etc/selinux/config
# 将SELINUX=enforcing改为SELINUX=disabled

关闭iptables

1
2
3
4
#停止firewall
systemctl stop firewalld.service
#禁止firewall开机启动
systemctl disable firewalld.service

安装ambari

1
yum install -y ambari-server

配置初始化ambari

1
ambari-server setup

配置安装的详细内容可以查看官方文档,以下的回应安装提示差不多是官方文档的翻译。

回应安装提示:

  1. 如果您尚未暂时禁用SELinux,则可能会收到警告。接受默认值(y),然后继续。
  2. 默认情况下,Ambari Server运行在root(n)Customize user account for ambari-server daemon提示符下接受默认值,继续root。如果要创建另一个用户来运行Ambari服务器,或者要分配以前创建的用户,请yCustomize user account for ambari-server daemon提示符处选择,然后提供用户名。
  3. 如果您尚未暂时禁用iptables,则可能会收到警告。输入y继续。
  4. 选择要下载的JDK版本。
    • 输入1以下载Oracle JDK 1.8。默认情况下,Ambari Server安装程序会下载并安装Oracle JDK 1.8和随附的Java Cryptography Extension(JCE)策略文件
    • 输入2需要提供自己安装的jdk的java_home路径
  5. 出现提示时,请查看GPL许可协议。要明确启用Ambari下载和安装LZO数据压缩库,不明白LZO的作用可以直接y,反正多安装不是什么坏处
  6. 选择nEnter advanced database configuration以使用Ambari的默认嵌入式PostgreSQL数据库。默认的PostgreSQL数据库名称是ambari。默认用户名和密码是ambari/bigdata。否则,要使用现有的PostgreSQL,MySQL / MariaDB或Oracle数据库与Ambari,请选择y

启动登陆ambari

如果安装顺利,可以直接启动ambari

1
ambari-server start

接着可以访问http://<your.ambari.server>:8080来登陆ambari,初始用户名和密码都是admin

ambari_1

点击Launch Install Wizard开始集群配置

集群配置

填写集群名字

ambari_2

选择HDP的版本,在这一步由于搭建了本地源,所以使用本地源的URI

ambari_3

填入集群的各个节点的主机名,不是IP,要保证/etc/hosts能正常解析到各个节点,可以保持一份正确的配置,所有节点都使用相同的hosts文件

1
2
3
4
5
6
7
8
9
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

10.1.18.221 master.hdu.edu.cn amdnode8
10.1.18.222 slave1.hdu.edu.cn node1
10.1.18.223 slave2.hdu.edu.cn node2
10.1.18.224 slave3.hdu.edu.cn node3
10.1.18.225 slave4.hdu.edu.cn node4

因此主机名填写如下

ambari_4

接着填好ambari所在主机的秘钥,进入下一步安装

ambari_4

接着选择安装的组件,配置组件,配置参数基本按照默认走,除了填写几个用户名和密码,就不细讲了。

建议:一开始最好不要安装大量组件,只把zookeeper,hdfs,yarn,mr2这些必要的组件安装,后期慢慢添加更多组件,如果一开始安装大量组件,需要一股脑解决大量问题,别问我怎么知道的。

安装过程中的错误

  • 安装Hive Client报错“Failed to download file from http://master.hdu.edu.cn:8080/resources/mysql-connector-java.jar due to HTTP error: HTTP Error 404: Not Found”

    解决方法:在master.hdu.edu.cn对应的节点下载关联好jdbc

    1
    2
    3
    4
    yum install mysql-connector-java*
    ls -al /usr/share/java/mysql-connector-java.jar
    cd /var/lib/ambari-server/resources/
    ln -s /usr/share/java/mysql-connector-java.jar mysql-connector-java.jar
  • 报错“ExecutionFailed: Execution of ‘ambari-python-wrap /usr/bin/hdp-select set xxx-client 3.1.0.0-78’ returned 1. symlink target /usr/hdp/current/xxx-client for tez already exists and it is not a symlink.”

    解决方法,把软连接建立上去:

    1
    2
    rm -rf /usr/hdp/current/xxx-client
    ln -s /usr/hdp/3.1.0.0-78/xxx /usr/hdp/current/xxx-client
  • 按照过程中最好联网,虽然建立了HDP的本地源,但是有些还是通过yum从远程仓库获取,如mariadb-server等

按照过程中会有很多错误,基本是查看错误的日志,排除错误原因,如yum安装不上,可以采用手动安装;缺少文件,可以从其他成功安装的集群获取文件;文件权限不对,无法读取,手动设置好需要的权限等。

0%