VM 上的 Ambari 部署问题

Ambari Deployment Problems on VMs

我正在努力在我们的企业中建立一个生产 Hadoop/Spark 集群,但我先做一些测试。只是为了获得一些语义:

生产 OS:RHEL 7 CPU:8核 内存:64GB 节点数:12 类型:虚拟机

这些生产节点都是虚拟机,并已获得 1tb 的数据 space,这是在 /data/ 的装载。每个系统目录也有自己的文件系统,例如 /var/ 有自己的文件系统,/usr/ 和 / 有自己的文件系统并且限制在 size/space。因此,我正在努力确定每个文件系统需要多少才能进行全栈安装。我稍后再谈。

目前,我正在一台 DEV 盒上对此进行测试,我将一个盒设置为管理节点,将另一个盒设置为部署节点。我的目标是测试对单个节点的完全部署,以确定在部署到生产环境之前我们可能遇到的问题。 DEV 节点和 PROD 节点之间的唯一区别是 DEV 节点是 RHEL 6,数据目录是 /hadoopdata01/,DEV boxes 是 4 核和 16gb RAM。同样,它仅用于测试,所以我不需要它实际运行,我只是想完成安装和部署。

我可以设置 ambari 服务器并在管理节点上正常工作。我在两个节点之间设置了所有无密码 SSH,两台机器上的 Java 都是 OpenJDK 1.8,并且已经在两个机器上设置了 repo。为了安全起见,我也禁用了 SELINUX 和 IPTABLES

从那里,我注册了运行良好的节点,并完成了所有步骤,然后单击部署按钮。在 Activity 分析器安装 30 分钟(1800 秒)后,它似乎冻结在 4% 并超时,并显示以下内容:

stderr: 
Python script has been killed due to timeout after waiting 1800 secs
 stdout:
2017-08-28 17:11:02,665 - Stack Feature Version Info: stack_version=2.6, version=None, current_cluster_version=None -> 2.6
2017-08-28 17:11:02,666 - Using hadoop conf dir: /usr/hdp/current/hadoop-client/conf
User Group mapping (user_group) is missing in the hostLevelParams
2017-08-28 17:11:02,667 - Group['hadoop'] {}
2017-08-28 17:11:02,669 - Group['users'] {}
2017-08-28 17:11:02,669 - User['zookeeper'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop']}
2017-08-28 17:11:02,671 - Adding user User['zookeeper']
2017-08-28 17:11:05,724 - User['ams'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop']}
2017-08-28 17:11:05,726 - Adding user User['ams']
2017-08-28 17:11:05,817 - User['ambari-qa'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['users']}
2017-08-28 17:11:05,819 - Adding user User['ambari-qa']
2017-08-28 17:11:05,915 - User['hdfs'] {'gid': 'hadoop', 'fetch_nonlocal_groups': True, 'groups': ['hadoop']}
2017-08-28 17:11:05,916 - Adding user User['hdfs']
2017-08-28 17:11:06,049 - File['/var/lib/ambari-agent/tmp/changeUid.sh'] {'content': StaticFile('changeToSecureUid.sh'), 'mode': 0555}
2017-08-28 17:11:06,051 - Execute['/var/lib/ambari-agent/tmp/changeUid.sh ambari-qa /tmp/hadoop-ambari-qa,/tmp/hsperfdata_ambari-qa,/home/ambari-qa,/tmp/ambari-qa,/tmp/sqoop-ambari-qa'] {'not_if': '(test $(id -u ambari-qa) -gt 1000) || (false)'}
2017-08-28 17:11:06,056 - Skipping Execute['/var/lib/ambari-agent/tmp/changeUid.sh ambari-qa /tmp/hadoop-ambari-qa,/tmp/hsperfdata_ambari-qa,/home/ambari-qa,/tmp/ambari-qa,/tmp/sqoop-ambari-qa'] due to not_if
2017-08-28 17:11:06,057 - Group['hdfs'] {}
2017-08-28 17:11:06,057 - Adding group Group['hdfs']
2017-08-28 17:33:22,647 - User['hdfs'] {'fetch_nonlocal_groups': True, 'groups': ['hadoop', 'hdfs']}

Command failed after 1 tries

另一件事 - 我让我的 VM 人员扩展 /usr/ 文件系统,但他看到安装发生在 /usr/hdp/ 上并决定为我创建一个全新的文件系统挂载作为 /usr/hdp/ 和 space 的 4gb 我请求....这是导致我的问题的原因吗? Ambari 是否想要创建 space 并因此给我带来问题?报错后查看/usr/hdp目录,里面没有文件....

我一直在网上搜索,但这对我来说是新的...我知道日志中应该有一些信息,但我不确定要查看哪个日志以及是否应该查看管理服务器或我尝试部署到的节点上的日志....

我有几个问题,但最终只想在部署到我的生产集群之前在单个节点上测试基本 Spark 和 Hadoop 设置的部署。这里有几个问题:

  1. 我什至可以用这种方式部署单节点集群吗,也许这是我的问题....
  2. 我应该在什么日志或哪里寻找进一步的线索....我可以 post 它们,只是不确定需要什么。
  3. 同样,我只想要一个基本的 Hadoop/Spark 集群 - 是否有任何我需要考虑的 Ambari 不具备的先决条件?

为了结束这个问题,因为我们目前没有使用 LDAP/AD,但我们的 Linux 环境确实利用了 LDAP,问题是 Amabri 试图创建本地用户。在此之前,它会搜索 LDAP 以确保用户不存在。考虑到我们 LDAP/AD 森林的大小,这些搜索花费了很长时间(每个用户 5-10 次)(不确定为什么要花这么长时间,但确实如此)。在大约 2-3 个服务帐户之后,back-end 上的整个部署脚本将超时,因为在使用 Ambari 的部署上有一个整体计时器。

我的解决方案是提前创建这些用户和组。然后,在集群创建期间的 Ambari 中,在高级设置中,告诉 Amabri 忽略用户 groups/accounts 的创建。之后就一帆风顺了。我想如果我使用 AD/LDAP 集成,无论如何我们都必须提前在那些系统中创建它们。我可以避免这种情况的唯一方法是,如果我根本不使用 LDAP/AD...。无论如何,我想 post 这个对我们有用的解决方案,我们已经起来 运行 手动创建本地用户和组后。