1. 程式人生 > >入門學習Hadoop1:VMware上搭建hadoop伺服器Centos7叢集,並設定SSH免密登入。

入門學習Hadoop1:VMware上搭建hadoop伺服器Centos7叢集,並設定SSH免密登入。

修改主機名:hostnamectl set-hostname master

檢視自己虛擬機器閘道器IP為多少

修改ip:vim /etc/sysconfig/network-scripts/ifcfg-ens32

master:192.168.187.100

slave1:192.168.187.101

slave2:192.168.187.102

slave3:192.168.187.103

還有設定dns(我就是這個沒設定,然後一直只能ping通ip,Ping不同域名) 
vim /etc/resolv.conf 

è¿éåå¾çæè¿°
重啟網絡卡:systemctl restart network 

注意

:在主機下,按win+R鍵,調出win7執行欄。接著在執行欄中輸入services.msc,開啟windows服務。如下圖所示,找到VMware DHCP Service和VMware NAT Service 確保它們都已啟用!! 

è¿éåå¾çæè¿°

安裝JDK,Hadoop

usr/local下儲存的安裝檔案和安裝目錄,如圖。

安裝jdk和解壓hadoop 

rpm -ivh jdk-8u191-linux-x64.rpm 

tar -xvf hadoop-2.7.7-src.tar.gz 

安裝完成後輸入java -version出現相應版本就可以了

java 在/usr/目錄下即可看到

進入Hadoop解壓目錄:/usr/local/hadoop/etc/hadoop

編輯:vim hadoop-env.sh 如下圖配置Java環境

然後編輯:vim /etc/profile        將Hadoop執行命令加入到環境變數

儲存後執行:source /etc/profile

最後輸入:hadoop   出現如下圖資訊即配置完成。

隨後,關閉該電腦,直接拷貝該虛擬機器三份作為slave1/2/3

修改主機名、ip、並關閉防火牆
將每個ip用每臺虛擬機器都ping一下是否ping得通

修改主機檔案:vim /etc/hosts

新增

192.168.187.100 master

192.168.187.101 slave1

192.168.187.102 slave2

192.168.187.103 slave3

cd /usr/local/hadoop/etc/hadoop

vim core-site.xml

用命令hdfs namenode -format進行格式化

master虛擬機器啟動namenode:

命令hadoop-daemon.sh start namenode

命令jps檢視是否啟動

slave虛擬機器啟動datanode:

命令hadoop-daemon.sh start datanode

命令jps檢視是否啟動

還可以在master機器上輸入:hdfs dfsadmin -report   檢視叢集狀態

也可以在網頁端檢視叢集狀態

輸入     netstat -ntlp

其中9000埠是master的NameNode與DataNode通訊用的。

50070是對外提供的外部埠。

瀏覽器輸入192.168.187.100:50070   進入如下介面

若想要關閉叢集節點

hadoop-daemon.sh stop namenode

hadoop-daemon.sh stop datanode

修改 /usr/local/hadoop/etc/hadoop/slaves 檔案,通過一個命令把整個叢集全起來

將localhost註釋並新增下面資訊並儲存。

然後輸入:start-dfs.sh啟動叢集

並輸入幾次密碼,使用jps檢視(要是幾十臺上百臺,都要一個一個輸密碼?下面配置SSH免密)

進入根目錄,ls -la檢視所有檔案包括隱藏檔案

然後輸入ssh-keygen -t rsa

其中id_rsa是root使用者的私鑰,id_rsa.pub是公鑰。私鑰與公鑰是對應的,用私鑰加的密,對應公鑰可以解密。

所以將公鑰傳入到各slave中去。

在smater機器上輸入:ssh-copy-id slave1

可以看到slave1上多出一個檔案,slave2/3都沒有

此時用master登入slave1已經不需要密碼,根據這個操作將slave2/3都設定好。

最後拷貝一份給master自己:ssh-copy-id master

master輸入stop-dfs.sh關閉整個叢集

叢集全部關閉

然後再開啟叢集

一次全部啟動好了!!

最後因為hdfs系統會把用到的資料儲存在core-site.xml中由hadoop.tmp.dir指定,而這個值預設位於/tmp/hadoop-${user.name}下面,由於/tmp目錄在系統重啟時候會被刪除,所以應該修改目錄位置。修改core-site.xml(在所有站點上都要修改)

hadoop.tmp.dir

/var/hadoop

<property>
   <name>hadoop.tmp.dir</name>
   <value>/var/hadoop</value>
</property>
 

儲存之後,並對namenode進行格式化(hdfs namenode -format),重啟叢集即可。