1、前言
此教程是在虛擬機中安裝及配置單機僞分佈式Hadoop,雖說是保姆級,但是太基本的也不會寫出來,不然太費精力了。
本教程所涉及的重要信息:
- jdk版本:jdk1.8.0_221
- jdk路徑:/usr/java/jdk1.8.0_221
- Hadoop版本:hadoop-2.7.7
- Hadoop路徑:/usr/hadoop/hadoop
- IP地址:192.168.3.132
2、準備工作
(Putty 和 flashfxp如果是安裝桌面版的,可以裝VM提供的tools,來實現複製、粘貼及文件拖拽傳輸)
3、安裝ContOS 7
安裝教程可以點擊下面連接,跳轉到我另一個教程中
VMware虛擬機安裝系統(ContOS 7)教程
4、聯網及使用Putty連接虛擬機系統
完成後,接下來就需要聯網了,由於是最小安裝,所以,聯網還需要點操作,具體點擊下面鏈接
修改網卡信息及安裝net-tools
下載前文提到的 Putty 工具,解壓進入文件夾,雙擊圖示.exe文件運行Putty
這裏的IP根據自己虛擬機ContOS的IP來填寫
點擊open後,會彈出一個窗口,點擊“是”就可以了。(無圖)
接下來輸入賬號密碼登錄,如下圖
Putty可以在win系統複製後,鼠標右鍵粘貼
5、安裝vim編輯器
安裝之前最好先更新一下yum,命令如下:
$ yum -y update
可以需要等待比較久一點,耐心等待。完成後,再執行vim安裝,命令如下:
$ yum install vim
6、修改節點名稱,添加域名映射
將節點名稱寫入/etc/hostname,如果沒有裝vim,使用vi編輯器就可以了
$ vim /etc/hostname
編輯文件的方式都是這樣,後面不再詳細敘述
將節點的 IP 地址與主機名寫入/etc/hosts 中,完成域名映射的添加
$ vim /etc/hosts
例如:192.168.3.132 Master
(IP 地址可通過 ip addr 命令或ifconfig 查詢)
:wq保持並退出後,重啓虛擬機
關機後,putty自然會強制退出,重新連接上去就可以了。可以看到機器名字已經改了。
7、設置SSH免密登錄
在之後操作集羣的時候我們需要經常登錄主機和從機,所以設置SSH免密登錄時有必要的。
安裝 SSH
$ yum install openssh-server
如果沒有就等待它安裝就可以了,如果有詢問,輸入y回車即可。
如果出現如下圖,說明已經安裝了。
安裝後,可以使用如下命令登陸本機ssh localhost
輸入如下代碼:
$ ssh localhost
但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH 無密碼登陸比較方便。
首先退出剛纔的 ssh,就回到了我們原先的終端窗口,然後利用 ssh-keygen 生成密鑰,並將密鑰加入到授權中,命令如下:
$ exit
$ ssh-keygen -t rsa
這樣就可以生成密鑰對:id_rsa和id_rsa.pub,默認存儲在~/.ssh目錄下。
接下來:把id_rsa.pub追加到授權的key裏面去。
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
這樣就完成了ssh的配置。
8、上傳JDK和Hadoop
下載前面提到的FlashFXP工具,然後解壓。
同樣的把hadoop文件傳輸到剛創建的hadoop文件夾下
9、安裝java環境
點擊以下鏈接,跳轉到我另一篇博文中:
JDK配置教程
10、安裝及配置Hadoop
解壓hadoop文件
$ cd /usr/hadoop/ #進入到hadoop目錄下
$ ls #查看是否有hadoop-2.7.7.tar.gz文件
$ tar -zxvf hadoop-2.7.7.tar.gz #解壓文件
進入hadoop文件夾,查看文件是否正確
$ cd /usr/hadoop/hadoop-2.7.7/
$ ls
Hadoop 的配置文件位於/usr/hadoop/hadoop-2.7.7/etc/hadoop/ 中,僞分佈式需要修改 3 個配置文件 hadoop-env.sh、core-site.xml 和 hdfs-site.xml。(通過vim 或vi編輯配置文件)。
接下來,確保你現在是在此目錄下的,因爲後面的命令需要在此目錄下執行,路徑纔不會有問題。
① hadoop-env.sh 中配置 JAVA_HOME:
$ vim etc/hadoop/hadoop-env.sh
修改export JAVA_HOME變量的值
export JAVA_HOME=/usr/java/jdk1.8.0_221
② 修改 core-site.xml 文件:
這個是核心配置文件我們需要在該文件中加入HDFS的URI和NameNode的臨時文件夾位置,這個臨時文件夾在下文中會創建。
$ vim etc/hadoop/core-site.xml
在文件末尾的configuration標籤中添加代碼如下:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
③ 修改 hdfs-site.xml 文件:
$ vim etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/usr/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
- 格式化NameNode,只有第一次啓動需要格式化
(確認是在hadoop-2.7.7這個目錄下)
$ ./bin/hdfs namenode -format
切記,NameNode 格式化成功後下次啓動 hdfs 時無需再次格式化,只需執行start-dfs.sh 即可。
- 啓動Hadoop
(確認是在hadoop-2.7.7這個目錄下)
接下來我們啓動Hadoop:
$ ./sbin/start-dfs.sh
- 執行 jps 命令查看服務
$ jps
- 啓動 yarn
$ ./sbin/start-yarn.sh
- 執行 jps 命令查看服務
$ jps
到此我們就完成hadoop的配置和啓動了。
然後我們到本機的瀏覽器進入Hadoop的管理頁面。
http://192.168.3.132:50070/
看到這裏,可能你就慌了。別慌,問題不大。
11、關閉防火牆
$ systemctl stop firewalld #關閉防火牆服務
$ systemctl disable firewalld #關閉防火牆服務開機不啓動
12、進入Hadoop管理頁面
在本機再次訪問以下地址:
訪問 http://192.168.3.132:50070/
訪問 http://192.168.3.132:8088/cluster
如果依舊有錯誤,請檢查一下這 hadoop-env.sh、core-site.xml、hdfs-site.xml 三個文件的配置是否有誤
如果需要修改,修改後,需要重新格式化
$ rm -rf /usr/hadoop/hdfs #刪除舊hdfs文件夾
$ rm -rf /usr/hadoop/tmp #刪除舊tmp臨時文件夾
$ rm -rf /usr/hadoop-2.7.7/logs #刪除舊logs日誌文件夾
$ cd /usr/hadoop/hadoop-2.7.7 #進入/usr/hadoop/hadoop-2.7.7目錄
$ ./bin/hdfs namenode -format #格式化
$ ./sbin/start-dfs.sh #啓動dfs服務
$ ./sbin/start-yarn.sh #啓動yarn
在本機再次訪問以下地址:
http://192.168.3.132:50070/