雲端計算課程實驗之安裝Hadoop及配置偽分散式模式的Hadoop

oh_Jasmine發表於2020-06-27

一.實驗目的

1. 掌握Linux虛擬機器的安裝方法。

2. 掌握Hadoop的偽分散式安裝方法。

二.實驗內容

(一)Linux基本操作命令

Linux常用基本命令包括:

ls,cd,mkdir,rm,man,cat,ssh,yum,vim,vi等。

(二)安裝JDK

Hadoop是Java實現的,執行在Java虛擬機器上,安裝JDK並設定JAVA環境變數。

(三)配置各節點間無密碼驗證

Hadoop叢集的啟動需要通過SSH啟動各從節點,需要配置各節點之間SSH無密碼驗證。

(四)配置和啟動Hadoop分散式叢集

Hadoop有三種配置:單擊模式、偽分散式模式(單臺節點模擬分散式)和分散式模式,本實驗是配置偽分散式模式的Hadoop。

三.實驗環境

VMWare15 Pro、Ubuntu16.04、Hadoop3.2.1。

四.實驗步驟和完成情況

1. VMware 15安裝Ubuntu 16.04並配置環境

 https://www.cnblogs.com/caoer/p/12669183.html

2. 建立hadoop使用者

1)建立hadoop使用者,並使用/bin/bash作為shell: sudo useradd -m hadoop -s /bin/bash

2) 為hadoop使用者設定密碼,之後需要連續輸入兩次密碼: sudo passwd hadoop

3) 為hadoop使用者增加管理員許可權:sudo adduser hadoop sudo

4) 切換當前使用者為使用者hadoop: su – hadoop

5) 更新hadoop使用者的apt: sudo apt-get update

3. JDK安裝和Java環境變數配置

(1)安裝 JDK 1.7

hadoop使用者登陸,下載JDK安裝包, 個人電腦系統選擇對應版本,我選的是jzxvf jdk-7u80-linux-x64.tar.gz,輸入命令:

$ mkdir /usr/lib/jvm                           #建立jvm資料夾

$ sudo tar zxvf jdk-7u80-linux-x64.tar.gz  -C /usr/lib/jvm #/ 解壓到/usr/lib/jvm目錄下

$ cd /usr/lib/jvm                                 #進入該目錄

$ mv  jdk1.7.0_80 java                         #重新命名為java

$ vi ~/.bashrc                                 #給JDK配置環境變數

其中如果許可權不夠,無法在相關目錄下建立jvm資料夾,那麼可以使用 $ sudo -i  語句進入root賬戶來建立資料夾。

(2)Java環境變數配置

root使用者登陸,命令列中執行命令”vi /etc/profile”,按I並加入以下內容,配置環境變數(注意/etc/profile這個檔案很重要,後面Hadoop的配置還會用到)。

export JAVA_HOME=/usr/lib/jvm/java

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

儲存並退出,執行以下命令使配置生效

$ source  ~/.bashrc

$ java -version                          #檢測是否安裝成功,檢視java版本

 

4. 配置所有節點之間SSH無密碼驗證

以節點A和B兩個節點為例,節點A要實現無密碼公鑰認證連線到節點B上時,節點A是客戶端,節點B是服務端,需要在客戶端A上生成一個金鑰對,包括一個公鑰和一個私鑰,而後將公鑰複製到服務端B上。當客戶端A通過ssh連線服務端B時,服務端B就會生成一個隨機數並用客戶端A的公鑰對隨機數進行加密,併傳送給客戶端A。客戶端A收到加密數之後再用私鑰進行解密,並將解密數回傳給B,B確認解密數無誤之後就允許A進行連線了。這就是一個公鑰認證過程,其間不需要使用者手工輸入密碼。重要過程是將客戶端A公鑰複製到B上。

因此如果要實現所有節點之間無密碼公鑰認證,則需要將所有節點的公鑰都複製到所有節點上。

(1)安裝ssh: sudo apt-get install openssh-server

登入ssh:ssh localhost

退出登入的ssh localhost:exit

(2)進入ssh目錄:cd ~/.ssh/

(a)節點用hadoop使用者登陸,並執行以下命令,生成rsa金鑰對:

ssh-keygen -t rsa (回車後敲擊三次回車)

這將在/home/hadoop/.ssh/目錄下生成一個私鑰id_rsa和一個公鑰id_rsa.pub。

(c)加入授權:cat ./id_rsa.pub >> ./authorized_keys

  這樣配置過後SSH無密碼登陸,可以通過命令“ssh localhost”來驗證。

5. Hadoop叢集配置

使用hadoop使用者登陸,下載hadoop-3.2.1.tar.gz,將其解壓到/usr/local/hadoop目錄下: sudo tar -zxvf  hadoop-2.6.0.tar.gz -C /usr/local,進入目錄:cd /usr/local,重新命名為hadoop: sudo mv  hadoop-3.2.1    hadoop,修改檔案許可權:sudo chown -R hadoop ./hadoop。

給hadoop配置環境變數:

(1)開啟bashrc檔案:vi ~/.bashrc

(2)加入以下程式碼:

export HADOOP_HOME=/usr/local/hadoop

export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

(3)儲存更改並生效:source ~/.bashrc。

$hadoop version 檢視hadoop是否安裝成功。

6. Hadoop叢集啟動

Hadoop 的配置檔案位於 /usr/local/hadoop/etc/hadoop/ 中,偽分散式需要修改2個配置檔案 core-site.xml 和 hdfs-site.xml 。Hadoop的配置檔案是 xml 格式,每個配置以宣告 property 的 name 和 value 的方式來實現。

a)  首先將jdk1.8的路徑添(export JAVA_HOME=/usr/lib/jvm/java )加到hadoop-env.sh檔案。

$ cd /usr/local/hadoop/etc/hadoop/

$ vim hadoop-env.sh

b)  修改core-site.xml:vim core-site.xml

<configuration>

        <property>

             <name>hadoop.tmp.dir</name>

             <value>file:/usr/local/hadoop/tmp</value>

             <description>Abase for other temporary directories.</description>

        </property>

        <property>

             <name>fs.defaultFS</name>

             <value>hdfs://localhost:9000</value>

        </property>

</configuration>

c)  修改配置檔案 hdfs-site.xml

<configuration>

        <property>

             <name>dfs.replication</name>

             <value>1</value>

        </property>

        <property>

             <name>dfs.namenode.name.dir</name>

             <value>file:/usr/local/hadoop/tmp/dfs/name</value>

        </property>

        <property>

             <name>dfs.datanode.data.dir</name>

             <value>file:/usr/local/hadoop/tmp/dfs/data</value>

        </property>

</configuration>

d)     配置完成後,執行 NameNode 的格式化

$ cd /usr/local/hadoop/

$ ./bin/hdfs namenode -format

e)  啟動namenode和datanode程式,並檢視啟動結果

$ ./sbin/start-dfs.sh

$ jps

 

f)  成功啟動後,可以訪問 Web 介面 http://localhost:9870 檢視 NameNode 和 Datanode 資訊,還可以線上檢視 HDFS 中的檔案。

 

 

至此Hadoop安裝就結束啦,以上為個人大資料學習成長曆程~

 

相關文章