知識布局-大數據apache基礎組件安裝文檔-部署準備
前言
本人是一枚熱愛新技術的程序猿,想在知乎文藝一下。由於水平有限,如果存在知識點上面的錯誤,請大神明確指出,我會認真聽取,並及時修正自己的錯誤。
目錄
本文包含目錄中的部署準備章節。
1.部署準備
......1.1.修改主機名和hosts對應關係
......1.2 ntpd時間服務
............1.2.1.安裝ntp服務
............1.2.2.配置ntp服務端和客戶端
............1.2.2.啟動ntp
......1.3.ssh
............1.3.1.在A機下生成公鑰/私鑰對
............1.3.2.把A機下的id_rsa.pub複製到B機下
............1.3.3.B機把從A機複製的id_rsa.pub添加到.ssh/authorzied_keys文件里
............1.3.4.A機登錄B機
............1.3.5.需要配置ssh免密碼登陸的機器
......1.4.java環境
......1.5.文件句柄信息配置
1.部署準備
部署準備部分是在部署大數據組件前必須進行的操作,一共五個操作,這5個操作如下所示:
1.修改主機名和hosts對應關係
2.ntp 時間服務
3.ssh免密碼登陸
4.java 環境(java version "1.7.0_80")
5.文件句柄信息配置
下面是詳細的修改樣例。
1.1.修改主機名和hosts對應關係
1.修改主機名稱
修改方法:
a.使用vim /etc/sysconfig/network,將hostname改為指定的hostname
如圖所示:
b.重啟機器,重啟命令reboot
2.修改/etc/hosts文件
修改方法:使用vim /etc/hosts,進入編輯界面,然後進行編輯如下內容即可。這個配置信息需要在corenode、datanode01、datanode02
127.0.0.1 localhost.localdomain localhost
192.168.4.31 corenode
192.168.4.32 datanode01
192.168.4.33 datanode02
1.2 ntpd時間服務
為了配置各個伺服器的時間同步性,我們採用ntp服務來完成。假設我們有三個主機,分別為:
1.2.1.安裝ntp服務
corenode節點作為ntp伺服器與外界對時中心同步時間,隨後對所有的datanode節點提供時間同步服務。所有datanode節點以corenode節點為基礎同步時間。
1.所有節點安裝相關組件:yum install ntp
2.完成後,配置開機啟動:chkconfig ntpd on
3.檢查是否設置成功:chkconfig --list ntpd (2~5為on)
1.2.2.配置ntp服務端和客戶端
1.配置ntp server
我們選用corenode作為時間同步中心。
對corenode配置 /etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default nomodify notrap
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
server 127.127.1.0 #把本機作為ntp服務端
fudge 127.127.1.0 stratum 0 #設為0為頂級
配置成功後,保存退出。
2.配置ntp客戶端(除corenode之前的機器都是客戶端)
配置/etc/ntp.conf文件
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
#這裡是主節點(內網NTP伺服器)的主機名或者ip
server corenode
配置成功後,保存退出。
1.2.2.啟動ntp
Server端:
使用service ntpd start啟動服務
使用ntpstat命令來查看同步狀態,一般需要等待5分鐘左右。
服務端同步成功:
客戶端:
使用service ntpd start啟動服務
使用ntpdate -u corenode進行測試
使用ntpstat命令來查看同步狀態,一般需要等待5分鐘左右。
客戶端同步成功:
客戶端同步失敗:
等待5分鐘後,再次嘗試。
1.3.ssh
ssh 無密碼登錄要使用公鑰與私鑰。linux下可以用用ssh-keygen生成公鑰/私鑰對,下面我以CentOS為例。有機器A(corenode),B(datanode01)。現想A通過ssh免密碼登錄到B。
提醒:如果機器沒有安裝ssh伺服器,在執行ssh的相關命令時會報錯,比如:-bash: ssh-keygen -t rsa -P : command not found,這時通過使用yum命令先安裝好ssh伺服器,命令:
yum install openssh-server,安裝完成後使用 ssh -version檢查安裝是否成功,然後使用
service sshd start 啟動ssh服務。
1.3.1.在A機下生成公鑰/私鑰對
[root@corenode ~]# ssh-keygen -t rsa -P
-P表示密碼,-P 就表示空密碼,也可以不用-P參數,這樣就要三車回車,用-P就一次回車。 它在/root下生成.ssh目錄,.ssh下有id_rsa和id_rsa.pub。
1.3.2.把A機下的id_rsa.pub複製到B機下
將A機生成的id_rsa.pub文件添加到B機的.ssh/authorized_keys文件里,我用scp複製id_rsa.pub到B機上面。
[root@corenode ~]# scp -P 2226 ~/.ssh/id_rsa.pub root@datanode01:/id_rsa.pub
root@datanode01s password: id_rsa.pub 100% 223 0.2KB/s 00:00
由於還沒有免密碼登錄的,所以要輸入密碼。
1.3.3.B機把從A機複製的id_rsa.pub添加到.ssh/authorzied_keys文件里
[root@datanode01 ~]# cat /id_rsa.pub >> ~/.ssh/authorized_keys
[root@datanode01 ~]# chmod 600 ~/.ssh/authorized_keys authorized_keys的許可權要是600
1.3.4.A機登錄B機
[root@corenode ~]# ssh datanode01
The authenticity of host datanode01 (192.168.1.181) cant be established. RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 192.168.1.181 (RSA) to the list of known hosts. Last login: Thu Jul 3 09:53:18 2008 from corenode [root@datanode01 ~]# 第一次登錄是時要你輸入yes。 現在A機可以無密碼登錄B機了。 小結:登錄的機子可有私鑰,被登錄的機子要有登錄機子的公鑰。這個公鑰/私鑰對一般在私鑰宿主機產生。上面是用rsa演算法的公鑰/私鑰對,當然也可以用dsa(對應的文件是id_dsa,id_dsa.pub)
想讓A,B機無密碼互登錄,那B機以上面同樣的方式配置即可。
問題:
原因:之前配置過一個master的互訪問,現在換了一個master,ip換了,換了後之前的不能用了,就會報錯。
解決辦法: vi ~/.ssh/known_hosts,把之前的master的信息刪掉就行了
1.3.5.需要配置ssh免密碼登陸的機器
1.Master節點自己免密碼登陸自己(配置方法跟A機B機類似)
2.Master節點能夠免密碼所有節點
本例中master為corenode和datanode01,故需要配置codenode免密碼登陸corenode、datanode01、datanode02,datanode01免密碼登陸corenode、datanode01、datanode02
1.4.java環境
Java版本信息:java version "1.7.0_79"
1.將jdk解壓到相應的目錄,假設為 /mnt/apps/jdk/jdk1.7.0_79
2.為每台機器配置/etc/profile文件,添加如下內容:
#set for java
export JAVA_HOME=/mnt/apps/jdk/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
3.執行 source /etc/profile
4.檢查java是否安裝成功,java -version
1.5.文件句柄信息配置
在shell上執行如下的命令:
echo * - nofile 65535 >> /etc/security/limits.conf ulimit -n 65535 ulimit -n
推薦閱讀:
※2018智能周報 | 02.17-02.25 | 附資源地址 | AI作惡、CVPR會議、IBM量子計算揭秘……
※一文讀懂物聯網、雲計算與大數據的關係
※無監督——反欺詐界的福爾摩斯!
※Hadoop如何處理?如何增強Hadoop 安全?
※2017下半年8場雲計算相關會議合集 聚焦大數據未來!