因為平時用的是Windows系統,為學習Hadoop,安裝了虛擬機。
對于剛接觸Linux系統的人來說,最好安裝帶有圖形界面的Ubuntu16.04。在安裝Hadoop的過程中,不要心急,一步一步來。
本教程使用的是VMware Workstation12搭建的虛擬機,操作系統為Ubuntu16.04 64,Hadoop版本為2.6.0。Hadoop下載鏈接為:https://archive.apache.org/dist/hadoop/common/。
本教程也適合其他Hadoop 2.x.y版本,如 Hadoop 2.8.0、2.7.3、2.4.1等。
在安裝虛擬機的過程中,最好直接將虛擬機的用戶名命名為hadoop。如果沒有命名的話,可根據本教程第2小節,添加hadoop賬戶。
1 虛擬機相關設置
如果經常用Hadoop的話,最好在安裝好虛擬機之后,安裝相關工具,方便編程開發。
安裝虛擬機的教程,可參考鏈接:http://www.jb51.net/os/248849.html。
在安裝虛擬機的時候,選擇NAT模式,這樣的話,只要自己的電腦能聯網,虛擬機就能夠聯網。
1.1 更改ubuntu軟件源
本設置主要是為了方便訪問國內服務器,因為訪問國外服務器的速度比較慢。
系統設置→軟件和更新,選擇國內服務器,比如阿里云。
1.2 更新軟件源,安裝vim、openssh-server
在虛擬機上,右鍵,打開終端(快捷鍵Ctrl+Alt+T)。在彈出的窗口中,輸入以下命令:
sudo apt-get update
sudo apt-get install vim
sudo apt-get install openssh-server
安裝openssh-server的原因:
- 為了方便將Windows系統里的文件直接復制到Linux系統中。
- 在安裝Hadoop的過程中,免密碼登錄。
強烈推薦在Win系統上安裝WinSCP軟件,這樣的話,一旦知道虛擬機Linux的ip地址,就可以將Win系統上的文件復制到虛擬機上。
在虛擬機上輸入ifconfig,就可以得到虛擬機的ip地址,我的ip地址是192.168.182.128。
打開Win上安裝的WinSCP,新建站點。輸入相關的數據即可連接上虛擬機Linux,前提是要在虛擬機上安裝好openssh-server。
點擊“保存”之后,再點擊“登錄”,在彈出的窗口,點擊“是”即可。
直接拖拽Win7系統上的文件,就可以將文件復制到Linux系統中了。
1.3 安裝VMware Tools(方便全屏操作)
由于直接在VM窗口中,點擊“虛擬機”→“安裝VMware Tools”,有時候能安裝上,有時候安裝不上,所以我采用了另一種方法。
1.由于在虛擬機上直接安裝VMware Tools,大部分情況下安裝不上,所以我用了WinSCP軟件(強烈推薦),將VMware的安裝目錄下的linux.iso直接上傳到虛擬機上。(如果可以直接安裝,按照3操作即可)
2.右鍵linux.iso,使用存檔安裝器打開,就可以看到linux.iso盤符了。
3.打開linux.iso盤符,可以看到VMwareTools了。
4.右鍵VMwareTools,復制到桌面。(可以復制到其他地方,看你自己的習慣)
5.打開桌面,在空白處右鍵,在終端打開。
6.輸入解壓縮命令,sudo tar zxvf VMwareTools-10.1.6-5214329.tar.gz,然后按照提示,輸入密碼,即可解壓,最終解壓完成,看到多了一個vmware-tools-distrib文件夾。
7.切換到vmware-tools-distrib,然后sudo vmware-install.pl,會出現提示,直接輸入yes,然后一直按回車鍵,稍等差不多30秒,就可安裝成功了。
8.重啟虛擬機,查看→自動調整大小→自動適應客戶機,就可以看到全屏了。
2 創建hadoop用戶
如果你安裝Ubuntu的時候不是用的"hadoop"用戶,那么需要增加一個名為 hadoop的用戶。
首先按ctrl+alt+t打開終端窗口,輸入如下命令創建新用戶:
sudo useradd -m hadoop -s /bin/bash
這條命令創建了可以登陸的hadoop用戶,并使用/bin/bash作為shell。接著使用如下命令設置密碼,可簡單設置為hadoop,按提示輸入兩次密碼:
sudo passwd hadoop
可為hadoop用戶增加管理員權限,方便部署,避免一些對新手來說比較棘手的權限問題:
sudo adduser hadoop sudo
最后注銷當前用戶,返回登陸界面。在登陸界面中選擇剛創建的hadoop用戶進行登陸。
用hadoop用戶登錄后,我們先更新一下apt,后續我們使用apt安裝軟件,如果沒更新可能有一些軟件安裝不了。按ctrl+alt+t打開終端窗口,執行如下命令:
sudo apt-get update
3 安裝、配置oracle-java
3.1 安裝oracle-java
Hadoop官方推薦安裝Oracle公司的jdk,下載鏈接為:http://www.oracle.com/technetwork/java/javase/downloads/index.html。
注意:上述鏈接的jdk會更新,我打開的時候顯示的是jdk 8u144。如果你打開的時候,發現版本不是jdk 8u144,不用擔心,直接下載最新版的jdk即可,后續安裝步驟不變。
點擊Accept License Agreement之后,下載jdk-8u144-linux-x64.tar.gz。
使用WinSCP將下載好的jdk-8u144-linux-x64.tar.gz拖拽到虛擬機上。
打開虛擬機對應的文件位置,快捷鍵Ctrl+Alt+T,打開終端,輸入解壓命令:
sudo tar zxvf jdk-8u144-linux-x64.tar.gz
可使用tab鍵進行快速提示補全,比如上述解壓命令,輸到jdk的時候,按tab鍵,就會自動變成jdk-8u144-linux-x64.tar.gz。
解壓之后,更改jdk1.8.0_144文件夾權限(hadoop為用戶名):
sudo chown -R hadoop jdk1.8.0_144
將jdk1.8.0_144文件夾移動到/usr/local目錄下(此步驟的目錄自己可以隨意指定,符合自己的習慣即可):
sudo mv jdk1.8.0_144/ /usr/local
切換到/usr/local目錄下,確實可以發現已存在了jdk1.8.0_144文件夾。
3.2 配置java環境
1.編輯profile
sudo vim /etc/profile
根據提示,輸入密碼即可。
2.在彈出的窗口中,按字母鍵i,即可進入插入編輯狀態。
輸入以下內容:
export JAVA_HOME=/usr/local/jdk1.8.0_144
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
3.輸入完成后,按esc鍵,然后輸入:wq退出編輯狀態。
4.使配置的環境生效:
source /etc/profile
輸入java -version
,即可看見java的版本了。
注意:如果profile無法保存,可使用root權限。輸入sudo su,然后輸入登錄密碼,則進入root權限,然后再按照1-3重新操作,完成后,輸入exit,退出root權限即可。
4 安裝Hadoop2.6單機版
1.使用WinSCP上傳Hadoop。
我用的是hadoop2.6.0版本,上傳到home目錄。
2.打開虛擬機的home主文件目錄,右鍵空白處,點擊在終端打開。
3.解壓hadoop-2.6.0.tar.gz。
sudo tar zxvf hadoop-2.6.0.tar.gz
然后輸入登錄密碼,再按回車鍵即可。也可直接解壓縮到/usr/local(看個人習慣)。
sudo tar zxvf hadoop-2.6.0.tar.gz -C /usr/local
4.解壓完成,將hadoop-2.6.0文件夾移動到/usr/local/hadoop目錄下(相當于把hadoop-2.6.0重命名為hadoop)。
sudo mv /usr/local/hadoop-2.6.0 /usr/local/hadoop
5.修改hadoop文件夾權限。
sudo chown -R hadoop /usr/local/hadoop
6.編輯profile。
sudo vim /etc/profile
插入以下內容:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
7.保存后退出,使profile配置生效。
輸入source /etc/profile,再切換到/usr/local/hadoop目錄下。輸入./bin/hadoop version,顯示輸出的hadoop版本為Hadoop 2.6.0。
source /etc/profile
cd /usr/local/hadoop
./bin/hadoop version
5 設置ssh無密碼登錄
由于安裝單機,可以不配置ssh無密碼登錄,但是安裝偽分布式和完全分布式都要使用ssh無密碼登錄,所以在此處安裝ssh,演示一下。
集群、單節點模式都需要用到SSH登陸(類似于遠程登陸,你可以登錄某臺Linux主機,并且在上面運行命令),Ubuntu默認已安裝了SSH client,此外還需要安裝SSH server。
1.安裝openssh-server
sudo apt-get install openssh-server
2.輸入ssh localhost
,此時會有如下提示(SSH首次登陸提示),輸入yes。然后按提示輸入密碼,這樣就登陸到本機了。退出剛才的ssh,就回到了原先的窗口。
3.切換到ssh目錄下,生成秘鑰,加入到授權。
cd ~/.ssh/
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys
“~”代表的是用戶所在目錄,比如我當前的登錄用戶為hadoop,則“~”指的就是/home/hadoop。
然后直接輸入ssh localhost
,就可使用無密碼登錄到本機了。
6 運行單機hadoop實例
1.切換到/usr/local/hadoop
2.生成input文件夾,mkdir ./input
3.將/usr/local/hadoop/etc/hadoop/*.xml的配置文件復制到剛創建的input文件夾下。
4.運行./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cd /usr/local/hadoop
mkdir ./input
cp /usr/local/hadoop/etc/hadoop/*.xml ./input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
5.打印輸出結果cat ./output/*,輸出結果為1 dfsadmin。
6.運行結束后,刪除創建的input、output文件。
如果您發現文中有不清楚或者有問題的地方,請在下方評論區留言,我會根據您的評論,更新文中相關內容,謝謝!