ubuntu的hadoop分散式安裝 小白

2020-10-05 16:00:15

基於ubuntu的hadoop分散式安裝(課程實驗)

  1. 在VirtualBox中安裝ubuntu,命名這臺機器為Master建立使用者名稱為hadoop(自己定)並增加hadoop使用者管理員許可權:sudo adduser hadoop sudo
  2. 更改軟體源:在Ubuntu的選單中找到軟體與更新,選擇中國伺服器,此處aliyun,163都可。然後對APT進行更新:sudo apt-get update(ubuntu的vim和ifconfig執行都需要下載)
  3. 安裝SSH遠端連線:
    1)下載SSH使用者端sudo apt-get install open-server
    2)嘗試登入本機ssh localhost
    3)進行本機的免密登入
    cd ~/.ssh/ #沒有此目錄就執一遍ssh localhost
    ssh-keygen -t rsa #執行後按enter鍵即可
    將金鑰加入本機授權:
    cat ./id_rsa.pub>>./authorized_keys

1)安裝Java環境

sudo apt-get install default-jre defalut-jdk  #下載jdk

2)新增環境變數

vim ~/.bashrc  
export JAVA_HOME=/usr/lib/jvm/defalut-java  #在組態檔中加入
source ~/.bashrc   #重新載入此組態檔

3)檢查是否安裝成功

echo $JAVA_HOME
java -version
$JAVA_HOME/bin/java -version  #與上一條命令一樣

至此,將這臺虛擬機器器克隆,,命名為Slave1

5.使用hadoop包來安裝hadoop
1)可以在官網下載官網下載hadoop3.3.0版本 在ubuntu中可用wget+此連結下載
2)下載之後

tar -xzvf ~/Downloads/hadoop-3.3.0.tar.gz -C /usr/local #下載之後解壓至本地目錄/usr/local目錄
cd /usr/local
sudo mv ./hadoop-3.3.0/ ./hadoop #更改檔名
sudo chown -R hadoop ./hadoop  #修改檔案許可權

3)檢視hadoop版本

cd /usr/local/hadoop
./bin/hadoop version

6.設定hadoop檔案
檔案目錄都在 /usr/local/hadoop/etc/hadoop
1)slaves檔案
slaves檔案下對應的主機名的都是datanode
ps:不知道為啥我設定完slaves檔案之後,datanode依舊是兩臺,而不是按照slaves中的只有一臺
我們把規劃的兩臺主機都當成datanode,預計規劃的主機名是:Master Slave1在這裡插入圖片描述
所以datanode中對應的應該填入

Master 
Slave1

2)修改core-site.xml檔案
fs.defaultFS是HDFS的存取地址
hadoop.tmp.dir臨時檔案儲存地址

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://Master:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
</configuration>                   

3)修改hdfs-site.xml
dfs.replication datanode的數量,我這裡是二
dfs.namenode.name.dir namenode儲存地址
dfs.datanode.data.dir detanode儲存地址

<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>Master:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</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>

4)修改maperd-site.xml

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>Master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>Master:19888</value>
        </property>
</configuration>

5)修改yarn-site.xml

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>Master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>Master:19888</value>
        </property>
</configuration>

7.網路設定
1)將Master 和 Slave1的網路設定為橋接模式。並把Slave1的MAC地址重新整理(因為此臺機器是克隆的MAC地址一樣)
2)修改主機名
編輯hostname

sudo vim /etc/hostname

Master的機器修改為

Master

Slave1的機器修改為

Slave1

3)修改網路IP對映
在兩臺機器上編輯hosts

sudo vim /etc/hosts

輸入以下內容:

自己的IP Master
自己的IP Slave1

**4)**重新啟動機器檢查是否設定有效

ping Master
ping Slave1

8.實現Master免密碼登入節點
在Master主機上執行

cd ~/.ssh   #沒有就執行ssh localhost
rm ./id_rsa *   #刪除公鑰,因為主機名改了
ssh-keygen -t rsa   
cat ./id_rsa.pub>>./authorized_keys  #加入主機金鑰

改之後可以用ssh Master做試試
將金鑰遠端傳到Slave1

scp ~/.ssh/id_rsa.pub hadoop@ Slave1:/home/hadoop/

接下來在Slave1上操作:

mkdir ~/.ssh  #如果不存在,就建立
cat ~/id_rsa.pub>> ~/.ssh/authorized_keys
rm ~/id_rsa.pub #用完可以刪掉

接下來可以自己試試兩臺機器的無密碼登入
ssh Master
ssh Slave1
9.在兩臺機器編輯系統組態檔,為了以後Hadoop能快速啟動和操作

sudo vim /.bashrc
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
source /.bashrc

10.壓縮本機的hadoop資料夾(為了傳給我們的其它Salve節點)

cd /usr/local
tar -zcf ~/hadoop.master.tar.gz ./hadoop
cd ~
scp ./hadoop.master.tar.gz Slave1:/home/hadoop #將資料夾傳輸到Slave1

Slave1節點下

tar -zxf ~/hadoop.master.tar.gz -C /usr/local  #解壓
sudo chown -R hadoop /usr/local/hadoop  #更改許可權

11.格式化namenode,並啟動Hadoop服務
在Master主機格式化節點

hdfs namenode -format

Master啟動服務

start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver

Slave1啟動服務

start-dfs.sh
start-yarn.sh

簡單執行命令

hadoop fs -ls /