1. 程式人生 > >新手上路——hadoop2.7.3單機模式環境搭建

新手上路——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叢集有三種執行模式,分別為單機模式,偽分散式模式和完全分散式模式。

  1. 單機模式

單機模式是Hadoop的預設模式,在該模式下無需任何守護程序,所有程式都在單個JVM上執行,該模式主要用於開發和除錯mapreduce的應用邏輯。

  1. 偽分散式模式

在偽分散式模式下,Hadoop守護程序執行在一臺機器上,模擬一個小規模的叢集。該模式在單機模式的基礎上增加了程式碼除錯的功能,允許你檢查NameNode,DataNode,Jobtracker,Tasktracker等模擬節點的執行情況。

  1. 完全分散式模式

單機模式和偽分散式模式均用於開發和除錯的目的,真實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

1
二、安裝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

2
執行命令使修改檔案生效

maggie@ubuntu:~$ source /etc/profile

檢視安裝情況

maggie@ubuntu:~$ java -version

3
至此,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

裡面有如下檔案:
5
編輯目標檔案:

hadoop@ubuntu:/usr/lib/hadoop/hadoop-2.7.3/etc/hadoop$ vi hadoop-env.sh

加入下面的內容(根據實際路徑):
4
推出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目錄下
6

hadoop@ubuntu:/usr/lib/hadoop/hadoop-2.7.3$ hadoop jar hadoop-examples-1.2.1.jar wordcount input output

mapreduce過程如下圖所示(一部分):
7

hadoop@ubuntu:/usr/lib/hadoop/hadoop-2.7.3$ cat output

得到wordcount程式執行結果(一部分):
8

至此,wordcount示例程式執行完成!