入門學習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
注意
安裝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),重啟叢集即可。