在 踩坑實錄1 中我們已經創建好了三臺虛擬機,并分別為其安裝了CentOS 6.5的操作系統,這篇文章將告訴你在安裝Ambari Server之前需要做哪些前戲工作。
目前我們已經為下面三臺虛擬機配置好了網絡,安裝了yum,可以一臺虛擬機可以Ping通其他兩臺機器。我們為三臺虛擬機分別設置了hostname,分別是:
master.example.com (用來安裝Ambari Server以及以后作為NameNode節點,主節點)
slaver1.example.com (用來安裝Ambari Agent以及以后作為DataNode節點)
slaver2.example.com (用來安裝Ambari Agent)
在進入高潮之前,我們需要來點兒前戲。前戲步驟如下:
-
Hostname檢查(三臺虛擬機都要做):
- 確保hostname的配置符合Fully Qualified Domain Name (FQDN)規則,即hostname.domainname,如何修改domainname?
1.1. 修改/etc/sysctl.conf : kernel.domainname=example.com
1.2. 修改/etc/hosts 增加域名 如:master.example.com
1.3. 修改/etc/sysconfig/network 增加域名 如:master.example.com
1.4. reboot 重啟系統。- 使用 hostname 和 hostname -f 檢查兩個結果是否一致,如果不一致,問度娘怎么辦
使用 cat /etc/hosts 檢查是否將所有機器的hostname都包括了,并且包含了:127.0.0.1 以及 ::1的配置信息。這兩條一定要有,一定要有,一定要有!!!
image.png
-
免密“互通”,這里其實只需要從master ssh到各個slaver免密即可。
- 為了簡單,我們首先關閉了防火墻(每個虛擬機都做)
vi /etc/selinux/config
修改SELINUX=disabled- 允許使用公鑰訪問(每個虛擬機都做)
vi /etc/ssh/sshd_config
找到以下內容,并去掉注釋符“#”
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys- 主機(master虛擬機)執行命令生成公鑰和私鑰,再把公鑰拷貝到需要免密登錄的slaver上。
3.1. ssh-keygen -t rsa -P '' (在master上/root/.ssh目錄下生成公鑰和私鑰對)
3.2. scp /root/.ssh/id*pub root@slaver2:/root/.ssh (在master上copy文件到slaver上)
3.3. cat id*pub >> au*keys (在slaver上將id文件的內容復制到authorized_keys文件中)
如果上述步驟中沒有.ssh或者沒有authorized_keys文件,可以自建。- 在master上使用 ssh 命令測試是否可以免密登錄其他slaver機器,第一次可能需要密碼,后面就不需要了。
坑來了!除了需要ssh免密登錄各個slaver機器,還需要ssh免密登錄自己,即在master機器上使用ssh命令,如:ssh master.example.com 也必須是免密的,免密的,免密的!!! 否則安裝完Ambari Server,在配置Cluster,步驟做到"Confirm Hosts"的時候,會出現“These are the hosts that have registered with the server, but do not appear in the list of hosts that you are adding.” 的問題!如圖:
image.png詳細failed信息如下:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
SSH command execution finished
host=localhost.localdomain, exitcode=255
ERROR: Bootstrap of host localhost.localdomain fails because previous action finished with non-zero exit code (255)
ERROR MESSAGE: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
STDOUT:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
-
其他前戲工作
- 安裝NTPD
- 設置Transparent Huge Pages 為關閉狀態
修改/etc/rc.local,增加下面代碼
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
至此,重要的前戲工作都做完了,為了達到高潮,付出點兒時間和精力都是值得的。后面一篇開始正式進入高潮部分,我將告訴你如何安裝Ambari Server以及如何配置Cluster,更重要的是踩了多少坑!:)