HORTONW0RKS数据平台实现搭建Ambari配置和部署HDP集群监控Hadoop集群

Posted by Yancy on 2017-05-08

HORTONW0RKS数据平台搭建Ambari管理监控Hadoop集群

题外话

我现在在一家上市公司旗下控股子公司负责运维部门,负责IT网络安全办公:主要做的应用运维和网络运维,兼大数据运维。
最近跟新来的架构师聊了下Hadoop监控方面:HORTONW0RKS数据平台搭建Ambari监控Hadoop集群.

HORTONW0RKS数据平台(HDP ®)
HDP是业内唯一真正安全的企业级开源的Apache的Hadoop™ ®分配基于集中式架构。HDP解决了静态数据的完整需求,为实时客户应用提供支持,并提供可加速决策和创新的可靠分析。

使用Hortonworks Sandbox试用最新的HDP功能,或者为生产环境设置HDP,安装和配置群集。
查看官网文档:HORTONWORKS CONNECTED DATA PLATFORMS DOWNLOADS

1. 将Ambari服务存储库文件下载到安装主机上的目录。

  • Centos6.5
1
wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.4.2.0/ambari.repo -O /etc/yum.repos.d/ambari.repo

⚠️警告:不要修改ambari.repo文件名。在代理注册期间,此文件应在Ambari服务器主机上可用。

  1. 通过检查repo列表确认存储库已配置。
1
yum repolist

您应该在列表中看到类似于以下Ambari存储库的值。

版本值因安装而异。

  1. 安装Ambari服务。这也安装了默认的PostgreSQL Ambari数据库。
1
yum install ambari-server

输入y提示,以确认交易和依赖性检查时。

成功安装将显示类似于以下内容的输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
安装:postgresql-libs-8.4.20-3.el6_6.x86_64 1/4
安装:postgresql-8.4.20-3.el6_6.x86_64 2/4
安装:postgresql-server-8.4.20-3.el6_6.x86_64 3/4
安装:ambari-server-2.4.2.0-1470.x86_64 4/4
验证:ambari-server-2.4.2.0-1470.x86_64 1/4
验证:postgresql-8.4.20-3.el6_6.x86_64 2/4
验证:postgresql-server-8.4.20-3.el6_6.x86_64 3/4
验证:postgresql-libs-8.4.20-3.el6_6.x86_64 4/4
安装:
ambari-server.x86_64 0:2.4.2.0-1470 安装这里的时候会有点慢,因为是访问国外网站下载资源。
已安装依赖关系:
postgresql.x86_64 0:8.4.20-3.el6_6
postgresql-libs.x86_64 0:8.4.20-3.el6_6
postgresql-server.x86_64 0:8.4.20-3.el6_6

❗️❗️【注意】

接受有关信任Hortonworks GPG密钥的警告。该键将自动下载并用于验证Hortonworks的软​​件包。您将看到以下消息:

Importing GPG key 0x07513CAD: Userid: “Jenkins (HDP Builds) jenkin@hortonworks.com“ From :http://s3.amazonaws.com/dev.hortonworks.com/ambari/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

❗️❗️【注意】

在具有有限Internet访问或没有Internet访问的群集上部署HDP时,应使用其他方法提供对位的访问。
有关设置本地存储库的详细信息,请参阅使用本地存储库。

Ambari服务器默认使用嵌入式PostgreSQL数据库。当您安装Ambari服务器时,PostgreSQL软件包和依赖关系必须可用于安装。这些包通常作为操作系统存储库的一部分提供。请确认您具有适用于postgresql-server软件包的相应存储库。

2.设置Ambari服务器

在启动Ambari服务器之前,必须设置Ambari服务器。安装程序将Ambari配置为与Ambari数据库通信,安装JDK并允许您自定义Ambari Server守护程序将作为运行的用户帐户。该 ambari-server setup命令管理设置过程。在Ambari服务器主机上运行以下命令以开始设置过程。您还可以将“ 设置选项”附加到命令。

  • 启动服务
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
ambari-server setup
###这里由于下载jdk1.8太慢速度过慢。我提前把jdk下载下来放到了/srv/jdk1.8.0_66 目录
[root@ambari-server_01 ~]# ambari-server setup
Using python /usr/bin/python
Setup ambari-server
Checking SELinux...
SELinux status is 'enabled'
SELinux mode is 'permissive'
WARNING: SELinux is set to 'permissive' mode and temporarily disabled.
OK to continue [y/n] (y)? y
Customize user account for ambari-server daemon [y/n] (n)? y
Enter user account for ambari-server daemon (root):
Adjusting ambari-server permissions and ownership...
Checking firewall status...
Checking JDK...
[1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
[2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7
[3] Custom JDK
==============================================================================
Enter choice (1): 3
WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
Path to JAVA_HOME: /srv/jdk1.8.0_66
Validating JDK on Ambari Server...done.
Completing setup...
Configuring database...
Enter advanced database configuration [y/n] (n)? y
Configuring database...
==============================================================================
Choose one of the following options:
[1] - PostgreSQL (Embedded)
[2] - Oracle
[3] - MySQL / MariaDB
[4] - PostgreSQL
[5] - Microsoft SQL Server (Tech Preview)
[6] - SQL Anywhere
[7] - BDB
==============================================================================
Enter choice (1):3
Database name (ambari):
Postgres schema (ambari):
Username (ambari):
Enter Database Password (bigdata):
Default properties detected. Using built-in database.
Configuring ambari database...
Checking PostgreSQL...
Running initdb: This may take up to a minute.
正在初始化数据库:[确定]
About to start PostgreSQL
Configuring local database...
Connecting to local database...done.
Configuring PostgreSQL...
Restarting PostgreSQL
Extracting system views...
ambari-admin-2.4.2.0.136.jar
............
Adjusting ambari-server permissions and ownership...
Ambari Server 'setup' completed successfully.
You have mail in /var/spool/mail/root
2.1 响应安装提示:

如果您没有暂时禁用SELinux,您可能会收到警告。接受默认值(y),然后继续。

默认情况下,Ambari服务器运行在root。在Customize user account for ambari-server daemon提示符处接受默认(n),以继续root。

如果要创建其他用户以运行Ambari服务器或分配以前创建的用户,请yCustomize user account for ambari-server daemon提示符处选择,然后提供用户名。
有关以非root用户身份运行Ambari服务器的更多信息,请参阅Hortonworks数据平台Apache Ambari参考> 为非根用户配置Ambari

如果您没有暂时停用iptables,可能会收到警告。输入y以继续。

JDK
选择要下载的JDK版本。输入1以下载Oracle JDK 1.8。或者,您可以选择输入自定义JDK。如果选择“自定义JDK”,则必须在所有主机上手动安装JDK并指定Java Home路径。

❗️❗️【注意】

JDK支持完全取决于您选择的HDP Stack版本。请参阅Hortonworks数据平台Apache Ambari参考以查看要安装的HDP Stack版本支持的JDK版本。默认情况下,Ambari服务器设置下载并安装Oracle JDK 1.8和随附的Java密码术扩展(JCE)策略文件。如果计划使用其他版本的JDK,请参阅 设置选项以获取更多信息。

出现提示时接受Oracle JDK许可证。您必须接受此许可证才能从Oracle下载必需的JDK。JDK在部署阶段安装。

数据库选择:

选择n为,Enter advanced database configuration以便为Ambari使用默认的嵌入式PostgreSQL数据库。默认的PostgreSQL数据库名是ambari。默认用户名和密码为ambari/bigdata。否则,要使用现有的PostgreSQL,MySQL / MariaDB或Oracle数据库与Ambari,请选择y。

如果使用现有的PostgreSQL,MySQL / MariaDB或Oracle数据库实例,请使用以下提示之一:

❗️❗️[重要]
在运行安装程序和输入高级数据库配置之前,必须使用“使用非默认数据库- Ambari”中详述的步骤准备非默认数据库实例。

❗️❗️[重要]

不支持使用Microsoft SQL Server或SQL Anywhere数据库选项。

要使用现有的Oracle实例,并为该数据库选择自己的数据库名称,用户名和密码,请输入2
选择要使用的数据库,并提供在提示中请求的任何信息,包括主机名,端口,服务名或SID,用户名和密码。
要使用现有的MySQL / MariaDB数据库,并为该数据库选择自己的数据库名称,用户名和密码,请输入3。
选择要使用的数据库,并提供在提示中请求的任何信息,包括主机名,端口,数据库名称,用户名和密码。
要使用现有的PostgreSQL数据库,并为该数据库选择自己的数据库名称,用户名和密码,请输入4。
选择要使用的数据库,并提供在提示中请求的任何信息,包括主机名,端口,数据库名称,用户名和密码。
继续配置远程数据库连接属性[y / n]选择y

这里数据库用户名和密码都是默认安装:

1
2
3
4
Database name (ambari)
Postgres schema (ambari)
Username (ambari)
Enter Database Password (bigdata)

这里我做了一层Nginx代理:将Ambari服务器配置为使用此代理服务器

3.启动Ambari服务器

在Ambari服务器主机上运行以下命令:

ambari-server start
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@ambari-server ~]# ambari-server start
Using python /usr/bin/python
Starting ambari-server
Ambari Server running with administrator privileges.
Organizing resource files at /var/lib/ambari-server/resources...
Ambari database consistency check started...
No errors were found.
Ambari database consistency check finished
Server PID at: /var/run/ambari-server/ambari-server.pid
Server out at: /var/log/ambari-server/ambari-server.out
Server log at: /var/log/ambari-server/ambari-server.log
Waiting for server start....................
Ambari Server 'start' completed successfully.
You have mail in /var/spool/mail/root

要检查Ambari服务器进程:

ambari-server status

停止Ambari服务器:

ambari-server stop

在Ambari服务器启动时,Ambari运行数据库一致性检查,查找问题。如果发现任何问题,Ambari服务器启动将中止,并且一条消息将打印到控制台“数据库配置一致性检查失败”。更多详细信息将写入以下日志文​​件:

/var/log/ambari-server/ambari-server-check-database.log

您可以通过使用以下选项跳过此检查来强制Ambari服务器启动:

ambari-server start --skip-database-check

如果存在数据库问题,请选择跳过此检查,在更正数据库一致性问题之前,不要对集群拓扑进行任何更改或执行集群升级。最好查看官网操作。

第3章安装,配置和部署HDP集群

1.登录到Apache Ambari

  • 将浏览器指向 http://<your.ambari.server> :8080,其中<your.ambari.server>是您的ambari服务器主机的名称。例如,默认Ambari服务器主机位于http://c6401.ambari.apache.org:8080

  • 使用默认用户名/密码登录Ambari服务器:admin / admin。您可以稍后更改这些凭据。

2.启动Ambari安装向导

Ambari Welcome页面,选择启动安装向导。

提供集群,管理谁可以访问群集,以及自定义视图为Ambari用户。

3.命名您的群集

在Name your cluster,键入要创建的集群的名称。名称中不要使用空格或特殊字符。

选择Next。

4.选择版本

这里我选择redhat6 其他的都remove掉。

在此步骤中,您将选择群集的软件版本和交付方式。使用公共存储库需要Internet连接。使用本地存储库需要您在网络中可用的存储库中配置软件。

  • 选择堆栈

可用的HDP版本显示在TAB中。当您选择TAB时,Ambari会尝试发现该HDP堆栈的特定版本可用。该列表显示在DROPDOWN中。对于该特定版本,将显示可用的服务,其中的版本显示在TABLE中。

  • 选择版本

如果Ambari可以访问Internet,则特定版本将作为选项列在DROPDOWN中。如果您有未列出的版本的版本定义文件,您可以单击添加版本…并上载VDF文件。此外,如果您无法访问Internet或不确定要安装哪个特定版本,则 默认版本定义也包含在列表中。

  • 选择存储库

Ambari允许您选择从公共存储库(如果您有Internet访问权限)或本地存储库安装软件。无论您的选择如何,您都可以编辑存储库的基本URL。将显示可用的操作系统,您可以从列表中添加/删除操作系统以适合您的环境

❗️❗️注意
UI显示基于操作系统系列(OS系列)的存储库基本URL。请确保基于正在运行的操作系统设置正确的操作系统系列。下表将OS系列映射到操作系统。

  • 高级选项

  • 有高级存储库选项可用。

跳过存储库基本URL验证(高级): 当您单击下一步时,Ambari将尝试连接到存储库基本URL,并验证您已输入验证存储库。如果没有,将显示一个错误,您必须在继续之前纠正。

使用RedHat Satellite/Spacewalk:仅当计划使用本地存储库时,才会启用此选项。当您为软件存储库选择此选项时,您负责配置Satellite/Spacewalk中的存储库通道,并确认所选群集版本的存储库在群集中的主机上可用。

5.安装选项

为了构建集群,安装向导将提示您有关如何设置它的一般信息。您需要提供每个主机的FQDN。该向导还需要访问在设置无密码SSH中创建的私钥文件 。使用主机名和密钥文件信息,向导可以定位,访问和与群集中的所有主机安全交互。

使用Target Hosts文本框输入主机名列表,每行一个。您可以使用括号内的范围来表示较大的主机集。例如,对于host01.domain通过host10.domain使用 host[01-10].domain

⚠️ 安装服务器集群机器一定要系统版本要一致不然安装会提示版本不兼容。

❗️❗️ 注意
如果要在EC2上部署,请使用内部专用DNS主机名

在ambari服务器配置hosts

vim /etc/hosts
1
2
192.168.1.151 datanode151
192.168.1.173 datanode_173 datanode-173.hadoop

如果要让Ambari使用SSH在所有主机上自动安装Ambari代理,请选择Provide your SSH Private Key并使用部分中的 Choose File按钮Host Registration Information查找与先前在所有主机上安装的公钥相匹配的私钥文件,或者剪切并粘贴键手动插入文本框。

填写您选择的SSH密钥的用户名。如果不想使用root用户,则必须为可以在不输入密码的情况下执行sudo的帐户提供用户名。如果您的环境中的主机上的SSH配置为22以外的端口,您也可以更改它。

如果您不希望Ambari自动安装Ambari代理,请选择Perform manual registration。有关更多信息,请参阅手动安装Ambari代理。

选择Register and Confirm继续。

这里提示:The following hostnames are not valid FQDNs: datanode_173.hadoop

这里跳转到安装页面:发现报错提示datanode-173.hadoop主机访问Ambari机器不能访问。

6.确认主机

Confirm Hosts 提示您确认Ambari已为您的集群找到正确的主机,并检查这些主机以确保它们具有继续安装所需的正确目录,软件包和进程。

如果选择了错误的主机,您可以通过选择相应的复选框并单击灰色Remove Selected按钮来删除它们。要删除单个主机,请单击Remove“操作”列中的小白色按钮。

在屏幕底部,您可能会注意到一个黄色框,表示在检查过程中遇到了一些警告。例如,您的主机可能已有wget或的副本 curl。选择Click here to see the warnings 查看检查内容和导致警告的原因的列表。警告页面还提供对python脚本的访问,可以帮助您清除可能遇到的任何问题,让您运行Rerun Checks

在datanode_173服务器配置hosts

vim /etc/hosts
1
2
192.168.1.151 datanode151
192.168.1.173 datanode_173 datanode-173.hadoop

每台节点里配置FQDN,如下以主节点为例

1
2
3
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=SY-001.hadoop

配置上就可以了。 把datanode151也是ambari机器配置在hosts就可以了。

最好设置root的无密码登录,因为我们配置的集群都是内网的,没什么安全性问题,使用root操作可以省去一些麻烦,非root用户可能在安装Hadoop组件时不能成功

下面是我安装这里提示没有找到文件目录查看安装报错操作:

mkdir /var/lib/ambari-agent/data



7.选择服务

将看到选择要安装到群集中的服务。HDP堆栈包括许多服务。您可以选择立即安装任何其他可用服务,或稍后添加服务。默认情况下,安装向导将选择所有可用的服务进行安装。

选择none清除所有选择,或选择 all选择所有列出的服务。

选择或清除单个复选框以定义一组要立即安装的服务。

选择要立即安装的服务后,选择Next。

8.分配主站

Ambari安装向导会将所选服务的主组件分配给集群中的相应主机,并在Assign Masters中显示分配。左列显示服务和当前主机。右列显示主机的当前主组件分配,指示每个主机上安装的CPU内核数量和RAM数量。

要更改服务的主机分配,请从该服务的下拉菜单中选择主机名。

要删除ZooKeeper实例,请单击要删除的主机地址旁边的绿色减号图标。

当您对作业感到满意时,选择Next。

9.分配从属和客户端

Ambari安装向导将从属组件(DataNodes,NodeManager和RegionServers)分配给集群中的相应主机。它还会尝试选择主机以安装适当的客户端集。

使用allnone可分别选择列中的所有主机或不选择任何主机。

如果主机旁边有星号,则该主机也运行一个或多个主组件。将鼠标悬停在星号上,以查看该主机上的哪些主组件。

通过使用特定主机旁边的复选框来微调您的选择。

当你对你的作业感到满意时,选择Next

10.自定义服务

自定义服务步骤为您提供一组选项卡,您可以查看和修改HDP集群设置。向导会尝试为每个选项设置合理的默认值。你是强烈建议,以检查这些设置为您的要求可能略有不同。

浏览每个服务标签,然后将光标悬停在每个属性上,您可以看到属性做什么的简要说明。显示的服务选项卡数取决于您决定在群集中安装的服务。任何需要输入的选项卡都会显示一个红色徽章,其中包含需要注意的属性数。选择显示红色徽章编号的每个服务选项卡,然后输入相应的信息。

  • 目录

HDP将存储信息的目录的选择是至关重要的。Ambari将尝试根据您环境中可用的安装点选择合理的默认值,但强烈建议您查看Ambari推荐的默认目录设置。特别是,确认目录,例如/tmp和 /var被不被用于下HDFS的NameNode目录和数据管理部目录HDFS标签。

  • 密码

您必须为Hive和Oozie服务以及Knox的主密钥提供数据库密码。使用Hive作为示例,选择Hive选项卡并展开高级部分。在以红色标记的数据库密码字段中,提供密码,然后重新键入以确认。

安装各个服务,并且完成安装后会启动相关服务,安装过程比较长,如中中出现错误,根据具体提供或日志进行操作。

这里我就不贴出来了,因为测试环境机器我做测试用机器配置不够所有后面结果经验写出来了。

安装的还是提示失败:ImportError: No module named rpm

参考这篇文章重新安装解决了这个问题:ImportError: No module named rpm

11.安装,启动和测试

安装的进度将显示在屏幕上。Ambari安装,启动,并对每个组件运行一个简单的测试。过程的总体状态显示在屏幕顶部的进度栏中,主机的主机状态显示在主要部分。在此过程中不要刷新浏览器。刷新浏览器可能会中断进度指示器。

要查看每个主机已完成的任务的具体信息,请单击Message相应主机列中的链接。在 Tasks弹出窗口中,单击单个任务以查看相关的日志文件。您可以使用Show下拉列表选择过滤条件。要查看更大版本的日志内容,请单击Open图标或将内容复制到剪贴板,使用Copy图标。

安装完成效果图:

让我们从左侧栏或下拉菜单中选择Yarn进入YARN信息中心。

我们将开始更新线程容量调度策略的配置。

向下滚动到Scheduler页面的部分。默认容量调度策略只有一个队列。

让我们看看调度策略。向上滚动到页面顶部,然后点击快速链接。然后从下拉列表中选择ResourceManager UI

正如你可以看到,我们只有默认策略。

参考

安装Ambari官网地址install Ambari
编译安装Ambari 2.4.2安装指南