1.3 收集信息
部署一个HDP群集之前,你应该收集以下信息:
l 你的系统的每台机器的完全限定的域名(FQDN),安装的Ambari极好的支持使用IP地址,可以使用 hostname -f 来检验或验证一台机器的FQDN。
注:在一个单一主机上部署所有的HDP组建是可以的,但是这种部署仅仅适用于最初的evaluation(评价)目的。通常情况下,你至少要设置三台机器,一台主机 (master),两台从节点(slaves),作为一个最小的集群。
l 想要在每台机器上设置的组件
l 存储节点的基本目录:
• NameNode data
• ataNodes data
• Secondary NameNode data
• Oozie data
• YARN data
• ZooKeeper data, if you installZooKeeper
• Various log, pid, and db files, depending on your install typ
注:You must use base directories that providepersistent storage locations for
your HDP components and your Hadoop data.Installing HDP components
in locations that may be removed from a hostmay result in cluster failure or
data loss. For example: Do Not use /tmp in abase directory path.
1.4. 环境准备
部署Hadoop的实例,你需要准备你的部署环境:
• Set up Password-less SSH 建立无密码ssh
• Set Up Service User Accounts 建立服务用户帐户
• Enable NTP on the Cluster 集群上启用NTP
• Check DNS and NSCD 检查DNS和NSCD
• Configure iptables 配置iptables
• Disable SELinux, PackageKit and Check umask Value
禁用SELinux, PackageKit和检查umask值
1.4.1. 建立无密码的ssh
在你所有含有Ambari Server集群机器上,会自动安装AmbariAgents 。在集群的Ambari Server服务器与其他机器之间必须建立无密码ssh连接。Ambari Server 服务器采用ssh公钥认证远程获取并安装 Ambari Agent。
你可以选择手动的在每个集群机器上安装Agents,这样就不需要生成和分发ssh密钥。
1、在Ambari机器上生成公钥和私钥的ssh密钥对: ssh-keygen
2、复制ssh公钥(id_rsa.pub)到你的目标机器的root账户下:
.ssh/id_rsa
.ssh/id_rsa.pub
3、在你的目标机器的authorized_keys文件中添加ssh公钥:
cat id_rsa.pub>> authorized_keys
4、根据你的ssh版本,你或许还要在你的目标机器上设置.ssh目录的权限(设为700)
authorized_keys文件权限(设为600)。
chmod 700 ~/.ssh
chmod 600~/.ssh/authorized_keys
5、在Ambari服务器上操作,要确定可以不需要输入密码的情况下,连接到集群中的任意
机器上。
6、如果下面的警告消息显示在您的第一个连接:
Are yousure you want to continue connecting (yes/no)?
输入 Yes
7、Retain a copyof the SSH Private Key on the machine from which you will run the webbased
Ambari Install Wizard.
在你想要执行网络版的AMbari安装向导的机器上保存ssh私钥的副本。
注:It is possible to use anon-root SSH account, if that account can execute sudo
without entering a password.
如果一个非root ssh账户可以不输入密码执行sudo,那么就可以使用这个账户。
1.4.2. 建立服务用户帐户
每个HDP服务都需要一个服务用户账户。Ambari安装过程创建并保留了现成的服务用户账户。并可在配置Hadoop服务是使用这些账户,Service user account 适用于本地操作系统的Service user account 也适用于LDAP/AD accounts。
1.4.3. 在集群和浏览器机器上启用NTP
集群中所有节点都要彼此同步,用浏览器访问Ambari Web接口的机器也要同集群所有节点机器彼此同步。
1、确认NTP服务能够在机器启动时自动启动,在每台机器上运行一下命令:
RHEL/CentOS/Oracle 6
chkconfig --listntpd
RHEL/CentOS/Oracle 7
systemctlis-enabled ntpd
2、设置Ntp服务在机器启动时自动启动,在每台机器上运行一下命令:
RHEL/CentOS/Oracle6
chkconfigntpd on
RHEL/CentOS/Oracle7
systemctl enablentpd
3、启动NTP服务,在每台机器上运行一下命令:
RHEL/CentOS/Oracle 6
servicentpd start
RHEL/CentOS/Oracle7
systemctl startntpd
1.4.4. 检查DNS和NSCD
在你的系统的所有机器上,一定要设置 forward 和reverse的 DNS.
如果你不能这样配置DNS,那么你就要在你集群的每个机器上编辑/etc/hosts文件,添加每个机器的ip地址和机器名。
下面的说明提供了一个通用的linux机器基本的网络设置。不同系列和版本的linux可能会有略有不同的命令和程序。
Hadoop依赖DNS,比如执行多个DNS查找正常的操作。为了减少DNS负荷。强烈建议使用运行在集群节点上的名称缓存服务守护进程(NSCD)。这个守护进程缓存主机(host)、用户(user)和组(group),查找和提供更好的分辨性能,并减轻DNS负载。
1.4.4.1. 编辑host文件
1、打开集群每台机器的hosts文件:vi /etc/hosts
2、添加ip地址和机器名(FQDN): 1.2.3.4 <fully.qualified.domain.name>
注:不要从您的主机文件中删除以下两行。删除或编辑以下行可能会导致需要网络的各种程序功能失败。
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
1.4.4.2. 设置机器名(hostname)
1、通过一下命令确认机器名:hostname -f
这应该返回设置的<fully.qualified.domain.name>
2、在集群机器行用“hostname”命令设置机器名
hostname <fully.qualified.domain.name>
1.4.4.3. 编辑网络配置文件
1、使用文本编辑器,打开每个机器上的网络配置文件,并设置每个机器的所需的网络配置。
vi /etc/sysconfig/network
2、修改HOSTNAME属性设置机器名
NETWORKING=yes
HOSTNAME=<fully.qualified.domain.name>
1.4.5. 配置(防火墙)iptables
在Ambari 部署和管理过程中,一定要保证端口是开放和可用的。最简单的方法就是暂时禁用防火墙(iptables):
RHEL/CentOS/OracleLinux 6
chkconfigiptables off
/etc/init.d/iptablesstop
RHEL/CentOS/Oracle Linux 7
systemctldisable firewalld
servicefirewalld stop
你可以安装完成后重新启动防火墙(iptables),如果你的安全协议环境是不能禁用防火墙的,那么只要你所有所需端口是开放的并且可用的,那么就可以开启防火墙。
Ambari服务运行过程中,Ambar会检查iptables是否启用,如果iptables处于启用状态,就会有一个警告提示,提醒你检查所需端口是打开的并且可用的。 在集群安装过程中,只要iptables处于启用状态,也会发出警告。
1.4.6. 禁用SELinux 和 PackageKit 并检查umask值
1、在集群的每一台机器上,只要运行了Ambari就要禁用SELinux
setenforce 0
注:在/etc/selinux/config文件中设置SELINUX=disabled就可以永久禁用。这就保证了在重启机器后SELinux不会重新打开。
2、在安装了带有PackageKit的RHEL/CentOS机器上,
打开/etc/yum/pluginconf.d/refresh-packagekit.conf文件,
按下面内容修改:enabled=0
注:在Debian, SLES,或Ubuntu系统中PackageKit默认是不启动的,除非你专门启动了PackageKit。所以你可以在Debian, SLES, 或Ubuntu系统中跳过这一步。
3、UMASK (UserMask or User file creation MASK)在linux机器上新建新文件会设置用户创建文件的默认权限或者说是基本的权限。大多数linux发型版都会默认把umask设置为022。022就就赋予了新文件或新文件夹755的读写执行权限,027则赋予了新文件或文件夹750的读写执行权限。
Ambari & HDP 支持umask值为022(等价于0022),027(等价于0027),这些值必须设置在所有的机器上。
当前的登录会话设置umask:umask 0022
核实当前的umask:umask 0022
永久改变所有交互用户的umask:echo umask 0022 >> /etc/profile