新手上路——hadoop2.7.3單機模式環境搭建
目的
本人是一隻hadoop新手,本篇文章主要是個人學習hadoop的學習筆記,內容是搭建單機模式下hadoop2.7.3開發環境。
搭建環境及所需軟體
VMWare 12(64位),ubuntu-16.04(64位),hadoop2.7.3.tar
Hadoop簡介
Hadoop是Apache開源組織的一個分散式計算框架,可以在大量廉價硬體裝置組成的叢集上執行應用程式,並未應用程式提供一組穩定可靠的介面,旨在構建一個具有高可靠性和良好擴充套件性的分散式系統。Hadoop的核心是HDFS(Hadoop Distributed File System),Mapreduce和Hbase,他們分別是Google雲端計算核心技術GFS,Mapreduce和Bigtable的開源實現。
Hadoop的執行模式
Hadoop叢集有三種執行模式,分別為單機模式,偽分散式模式和完全分散式模式。
- 單機模式
單機模式是Hadoop的預設模式,在該模式下無需任何守護程序,所有程式都在單個JVM上執行,該模式主要用於開發和除錯mapreduce的應用邏輯。
- 偽分散式模式
在偽分散式模式下,Hadoop守護程序執行在一臺機器上,模擬一個小規模的叢集。該模式在單機模式的基礎上增加了程式碼除錯的功能,允許你檢查NameNode,DataNode,Jobtracker,Tasktracker等模擬節點的執行情況。
- 完全分散式模式
單機模式和偽分散式模式均用於開發和除錯的目的,真實Hadoop叢集的執行採用的是完全分散式模式。
本篇文章主要是記錄Hadoop單機模式的搭建過程,並附上一個wordcount示例檢查搭建結果。
Hadoop單機模式安裝步驟如下:
一、在Ubuntu下建立hadoop使用者組和使用者
新增hadoop使用者組到系統使用者 安裝前要做一件事——新增一個名為hadoop的使用者到系統使用者,專門用來做hadoop測試。
maggie@ubuntu:~$ sudo addgroup hadoop
maggie@ubuntu:~$ sudo adduser --ingroup hadoop hadoop
給hadoop使用者系統許可權
開啟/etc/sudoers並修改,插入語句如下圖:
maggie@ubuntu :~$ sudo gedit /etc/sudoers
二、安裝java
在宿主機上下載JDK,我在官網上下載的是jdk-8u121-linux-x64.rar
在maggie使用者下,在/usr/lib目錄中建立java安裝目錄
maggie@ubuntu:~$ cd /usr/lib
maggie@ubuntu:~$ mkdir java
將jdk-8u121-linux-x64.rar拷貝紙java目錄下,並解壓至當前目錄,得到檔案及jdk1.8.0_121
maggie@ubuntu:~$ tar -xzvf jdk1.8.0_121
編輯配置檔案,新增環境變數,開啟/etc/profile,新增如下內容:
maggie@ubuntu:~$ tar -xzvf jdk1.8.0_121
執行命令使修改檔案生效
maggie@ubuntu:~$ source /etc/profile
檢視安裝情況
maggie@ubuntu:~$ java -version
至此,JDK安裝完畢。
三、安裝hadoop2.7.3
在宿主機上下載hadoop軟體,我下載的是hadoop-2.7.3.tar.gz,並將其複製到ubuntu /home/maggie/Downloads
當前使用者為maggie,切換使用者為hadoop,並且在/usr/lib目錄下建立hadoop安裝目錄
maggie@ubuntu:~$ su hadoop
maggie@ubuntu:~$ /home/maggie$ cd /usr/lib
hadoop@ubuntu:/usr/lib$ mkdir hadoop
將hadoop壓縮包直接解壓到hadoop安裝目錄,得到資料夾hadoop-2.7.3
hadoop@ubuntu:/usr/lib$ cd /home/maggie/Downloads
hadoop@ubuntu:/home/maggie/Downloads$ tar -xzvf hadoop-2.7.3.tar.gz /usr/lib/hadoop
設定hadoop-env.sh(java 安裝路徑)
進入該檔案目錄
hadoop@ubuntu:/home/maggie/Downloads$ cd /usr/lib/hadoop/hadoop-2.7.3/etc/hadoop
裡面有如下檔案:
編輯目標檔案:
hadoop@ubuntu:/usr/lib/hadoop/hadoop-2.7.3/etc/hadoop$ vi hadoop-env.sh
加入下面的內容(根據實際路徑):
推出vi編輯,並且讓新增的環境變數立即生效
hadoop@ubuntu:/usr/lib/hadoop/hadoop-2.7.3/etc/hadoop$ source hadoop-env.sh
至此,hadoop的單機模式已經安裝成功!
下面執行一下wordcount程式試驗一下
在hadoop-2.7.3目錄中新建input資料夾
hadoop@ubuntu:/usr/lib/hadoop/hadoop-2.7.3$ mkdir input
把該目錄下/etc/hadoop中的所有檔案都拷貝到input資料夾中
hadoop@ubuntu:/usr/lib/hadoop/hadoop-2.7.3$ cp /usr/lib/hadoop/hadoop-2.7.3/etc/hadoop/* input
執行wordcount程式,並將結果儲存在output中由於我所下載的hadoop軟體中沒有自帶的hadoop example jar包,所以需要自行下載。我在宿主機中下載了hadoop-examples-1.2.1.jar,下載連結http://www.java2s.com/Code/Jar/h/Downloadhadoopexamples121jar.htm, 然後將其複製在/usr/lib/hadoop/hadoop-2.7.3目錄下
hadoop@ubuntu:/usr/lib/hadoop/hadoop-2.7.3$ hadoop jar hadoop-examples-1.2.1.jar wordcount input output
mapreduce過程如下圖所示(一部分):
hadoop@ubuntu:/usr/lib/hadoop/hadoop-2.7.3$ cat output
得到wordcount程式執行結果(一部分):
至此,wordcount示例程式執行完成!