从零使用本地仓库安装Ambari

Ambari和CDH一样,是较为流行的hadoop管理工具(虽然Hortonworks已经被Cloudera收购了),这篇文章我记录了如何从头安装ambari和HDP,主要是参照 HORTONWORKS的Ambari 2.7.4.0安装文档 进行的,当然要更精简一点。

准备工作

兼容性校验

在 Ambari的官方兼容性说明页面 确认操作系统、硬件、软件版本的兼容性,我们的相关信息为:

Ambari:2.7.4

HDP:3.1.4

OS:Debian 9.11

Database:MySQL 5.7

JDK:Oracle JDK 8

检查系统最低要求

参考链接:检查系统

  • 必要的软件:scp、curl、unzip、tar、wget、gcc*、OpenSSL、Python
  • 内存大小、磁盘大小、用 ulimit -Snulimit -Hn 命令确定最大文件描述符>10000

准备环境

参考链接:准备环境

  • 配置无密码SSH,即密钥登录
  • 创建服务账号(这一步跳过了,我认为由Ambari替我们创建账号更好)
  • 在所有机器上启用NTP服务,保证时钟一致
  • 检查DNS和NSCD,DNS可以用域名服务器,也可以借助 /etc/hsots,NSCD全称Name Service Caching Daemon,用来缓存域名解析结果
  • 保证端口可用,最简单的方法是禁用iptables
  • 禁用SELinux和PackageKit,并确认UMASK是022或者027
  • 如果不使用自带的PostgresSQL需要下载安装数据库驱动,我使用了MySQL,但是Ambari会在安装过程中下载 mysql-connector-java.jar,所以没有额外下载。

搭建本地仓库

每个节点都使用官方仓库下载安装Ambari和HDP需要很大的流量,可以搭建本地仓库,节省流量开销。

克隆官方库

选择一台机器,比如集群中主机名编号最小的那台机器,登录,创建一个目录用来进行后续的操作:

mkdir ~/ambari_repo
cd ambari_repo

接下来要下载的文件都可以用 wget 命令下载。

克隆Ambari官方库

在 Ambari仓库下载页面 下载对应的压缩包,Debian 9对应的下载地址为:http://public-repo-1.hortonworks.com/ambari/debian9/2.x/updates/2.7.4.0/ambari-2.7.4.0-debian9.tar.gz 。

克隆HDP官方库

在 HDP仓库下载页面 下载HDP压缩包,Debian 9对应的压缩包地址分别为:

HDP:http://public-repo-1.hortonworks.com/HDP/debian9/3.x/updates/3.1.4.0/HDP-3.1.4.0-debian9-deb.tar.gz

HDP-UTILS:http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/debian9/HDP-UTILS-1.1.0.22-debian9.tar.gz

HDP-GPL:http://public-repo-1.hortonworks.com/HDP-GPL/debian9/3.x/updates/3.1.4.0/HDP-GPL-3.1.4.0-debian9-gpl.tar.gz

上面下载的这四个文件最好也把相应的MD5文件下载下来,然后用 md5sum 命令校验。

查看当前目录:

$ ls
ambari-2.7.4.0-debian9.tar.gz  HDP-3.1.4.0-debian9-deb.tar.gz
HDP-GPL-3.1.4.0-debian9-gpl.tar.gz  HDP-UTILS-1.1.0.22-debian9.tar.gz

tar xvf 命令依次解压四个文件,会得到四个文件夹:

$ ls | grep -v gz
ambari
HDP
HDP-GPL
HDP-UTILS

启动本地仓库

所谓的官方仓库其实就是在 /etc/apt/sources.list 文件里长下面这个样子的东西:

deb http://public-repo-1.hortonworks.com/HDP/debian9/3.x/updates/3.1.4.0 HDP main

如果我们直接在集群中每台机器的 /etc/apt/sources.list 里添加上对应的源,也不是不行,就是安装Ambari和HDP的时候每台机器都是从 public-repo-1.hortonworks.com 这个服务器下载文件,太费流量,那么本地仓库就是先把需要下载的文件下载到本地(某一个节点上),因为官方仓库本质上就是下载文件的HTTP服务,我们只要按照它的目录结构组织好文件然后向外提供HTTP服务就行了。据我所知,Python的 SimpleHTTPServer 模块应该是起HTTP服务最方便的方法,具体做法为:在 ambari_repo 目录下创建 start_repo.sh 脚本,脚本内容为:

python -m SimpleHTTPServer 12345 > local_repo.log 2>&1 &

并用 bash start_repo.sh 命令启动HTTP服务,在浏览器里访问这台机器的12345端口,可以看到如下页面:

从零使用本地仓库安装Ambari_第1张图片
image

本地仓库搭建成功。

安装Ambari Server

这一小节对应的官方参考链接为:Debian 9安装Ambari

还是在选中的那台机器上操作,需要有管理员权限。

  1. 添加源:

    # 下载仓库源的文件
    wget -O /etc/apt/sources.list.d/ambari.list http://public-repo-1.hortonworks.com/ambari/debian9/2.x/updates/2.7.4.0/ambari.list
    # 添加密钥为可信密钥
    sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com B9733A7A07513CAD
    # 更新apt源
    sudo apt-get update
    
  2. 确认Ambari相关的包都已经可以通过 apt-get 安装了:

    sudo apt-cache showpkg ambari-server
    sudo apt-cache showpkg ambari-agent
    sudo apt-cache showpkg ambari-metrics-assembly
    
  3. 安装ambari-server:

    sudo apt-get install ambari-server
    

配置Ambari Server

这一节对应的官方参考链接为:配置Ambari Server

在启动ambari-server前需要进行必要的配置,配置命令为:

sudo ambari-server setup

接下来是交互式的配置,各配置项的情况为:

  1. Customize user account for ambari-server daemon [y/n] (n)? n

    选n确保ambari-server进程和相关的文件只有root有权限。

  2. JDK选择[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8

  3. Do you accept the Oracle Binary Code License Agreement [y/n] (y)? y

  4. Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? y

    以防以后需要。

  5. Enter advanced database configuration [y/n] (n)? y

    如果选n就会使用内置的PostgreSQL数据库,也是OK的,但因为我们有高可用的MySQL,所以选y并后续进行MySQL主机、端口、用户、密码和库名的配置,在执行这一步之前需要建好库(其实执行到这一步去建也是OK的),库名为ambari。

  6. Should ambari use existing default jdbc /usr/share/java/mysql-connector-java.jar [y/n] (y)? n

  7. Enter full path to custom jdbc driver: /usr/share/java/mysql-connector-java-8.0.18.jar

    第6步可以选y,那就不需要做这一步了,只不过官网推荐用高版本的驱动,修改之前确认jar包存在。

  8. Proceed with configuring remote database connection properties [y/n] (y)?

    让数据库配置生效。

  9. 配置完成。

  10. 额外的一步,因为没有用默认的数据库,我们需要手动建表,进入MySQL的命令行,执行如下命令:

    # 假设创建的库名
    use ambari;
    source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;
    

启动Ambari Server

Ambari Server的启动命令为:

sudo ambari-server start

# 查看运行状态的命令为:
sudo ambari-server status
# 停止服务的命令为:
sudo ambari-server stop

Ambari Server的HTTP端口为8080,在浏览器中访问,登录用户名/密码是admin/admin。

安装Ambari Agent和需要的服务

接下来的操作都在浏览器中完成,

  1. 点击”LAUNCH INSTALL WIZARD";

  2. 输入集群名称,点击NEXT;

  3. 上方的版本(HDP-3.1.4.0)保持不动,把下方的“Repositories”从“Use Public Repository"切换到”Use Local Repository",然后在OS下找到“debian9”(其它的OS可以通过右侧的删除按钮删除),输入之前搭建的本地仓库的地址,将下图中的 x.x.x.x 修改为对应的IP或主机名,点击NEXT;

    image
  4. Target Hosts输入需要各个节点的主机名,然后选择”Provide your SSH Private Key to automatically register hosts“,上传私钥,修改”SSH User Account"和“SSH Port Number”为合适的值,点击REGISTER AND CONFIRM,然后在弹出的对话框中也进行确认;

  5. 等待安装,全部Success后点击NEXT;

  6. 选择需要的服务,其中SmartSense是勾不掉的,点击NEXT之后又会提示要装Ambari Metrics,点击OK,如果没选RANGER和Atlas的话,还会提示RANGER和Atlas没有安装,我选择PROCEED ANYWAY;

  7. 选择各个服务安装在哪些节点上,点击NEXT;

  8. 选择哪些节点会安装各个服务的客户端,点击NEXT;

  9. 设置Grafana Admin和Activity Explorer's Admin的密码;

  10. 对各个服务进行各自的配置,比如修改Zookeeper的数据目录,Kafka的日志存放目录列表,确认所有配置后,开始安装;

  11. 等待安装完成,如果有的节点安装失败,可以重试失败的节点;

  12. 安装完成后会有一个Summary页面,告诉我们服务状态和检查结果,点击COMPLETE即可。

到此安装就结束了,后续就是使用和维护的工作了。

欢迎交流讨论,吐槽建议。

勤学似春起之苗,不见其增,日有所长
辍学如磨刀之石,不见其损,日有所亏
关注【大数据学徒】,用技术干货助你日有所长
PS:每鸽一天发100元红包,进群致富吧!

从零使用本地仓库安装Ambari_第2张图片
大数据学徒

你可能感兴趣的:(从零使用本地仓库安装Ambari)