1. 程式人生 > >hadoop分布式搭建

hadoop分布式搭建

通過 openjdk property dfs- .sh author welcom for 安裝與配置

一,前提:下載好虛擬機和安裝完畢Ubuntu系統。因為我們配置的是hadoop分布式,所以需要兩臺虛擬機,一臺主機(master),一臺從機(slave)

選定一臺機器作為 Master 在 Master 節點上配置 hadoop 用戶、安裝 SSH server、安裝 Java 環境

在 Master 節點上安裝 Hadoop,並完成配置

在其他 Slave 節點上配置 hadoop 用戶、安裝 SSH server、安裝 Java 環境

將 Master 節點上的 /usr/local/hadoop 目錄復制到其他 Slave 節點上

在 Master 節點上開啟 Hadoop

二,在Ubuntu中打開終端,可使用快捷鍵ctrl+alt+t

1.首先要搭建好java環境,這時候,Ubuntu安裝的時候默認是nat的網絡連接,可通過執行命令:

sudo apt-get install openjdk-8-jre openjdk-8-jdk

回車,這時候會要求你輸入密碼,就是安裝的時候 你自己設置的密碼,輸入密碼你是不到的,不管它,直接回車,下載的時候會需要一些時間

下載完畢後,還要安裝 ssh 和 vim

同樣的做法: sudo apt-get install openssh-server

sudo apt-get install vim

執行 apt-get 命令的時候要保證網絡是通的

2,好,這時候已經下載完畢,java默認路徑是在 /usr/lib/jvm/java-8-openjdk-amd64

我們這時候要配置java環境變量,在終端輸入 :

vim ~/.bashrc

回車

你就進到一個文件裏面,這時候按快捷鍵 shift+G,跳到文件的最後面部分,你發現,不能夠寫入數據,按 i ,進入 insert 模式,這時候輸入

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

寫入完畢,按 esc 然後 shift+冒號(shift + :),然後 wq (保存並退出)

3,回到終端,輸入

source ~/.bashrc

使環境變量生效

4. 在終端輸入 javac -version出現 java的版本號則說明配置成功

三,ssh實現無密碼登錄

1. 技術分享圖片 技術分享圖片 技術分享圖片 技術分享圖片

這時候操作是在master(主機)上,第四張圖按兩下,其中ip要怎麽改呢?,打開你的本機的doc窗口,輸入ipconfig,假如你的ip是192.168.41.128,則你的如圖所示的ip改為192.168.41.129,記得保存,時候你的虛擬機的網絡方式要由默認的 nat 改為橋接模式,怎麽改?虛擬機主頁左上角有個虛擬機,設置,網絡適配器,改為橋接模式,確定。

由於我們要配置的是hadoop分布式,一個主機一個從機,主機名是master,從機是slave

2. vim /etc/hostname

修改你的用戶名為master

同樣在slave中的 /etc/hostname改為slave

3. vim /etc/hosts

添加 :192.168.31.129 master

192.168.41.130 slave

重啟

通過ping master和ping slave 是否成功

4. ssh-keygen -t rsa

一直回車,生成公匙

cat ./id_rsa.pub >> ./authorized_keys

授權

5. ssh localhost

會看到一個welcome頁面,不用輸入密碼,要是還要輸入密碼,那就是前面的步驟出錯了

scp ./authorized_keys 192.168.41.130:/home/hadoop/.ssh

// 這個直接把授權好的鑰匙復制到slave上。若是slave上沒有.ssh目錄,則先生成該目錄,一般都有的,

這一步完成後,執行

ssh slave

不用輸入密碼就可以登錄slave。出現歡迎頁面,到這裏,完成Ubuntu無密碼登錄

四,hadoop的安裝與配置

1. 首先把下載好的hadoop壓縮包解壓到指定的文件夾 (hadoop文件:鏈接:https://pan.baidu.com/s/1kVahwYb 密碼:qzpi)

解壓hadoop

sudo tar -zxf hadoop-2.7.4.tar .gz -C /usr/local

這時候的hadoop文件的壓縮包是在 /home/hadoop 下,若是操作失敗,檢查該路徑下是否有需要操作的文件

2. cd /usr/local

// 進入該路徑,ls 看一下解壓後的hadoop文件是否存在

sudo mv hadoop-2.7.4 hadoop

// 改hadoop-2.7.4為hadoop,改個文件名而已

sudo chown -R hadoop ./hadoop

// -R把hadoop下的所有文件和文件夾都改變所屬用戶為hadoop用戶

cd hadoop

bin/hadoop version

// 測試hadoop是否安裝成功,若出現版本號,則說明安裝成功

3.接下來配置hadoop環境變量

vim ~/.bashrc

添加

export HADOOP_HOME=/usr/local/hadoop

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

同樣的

source ~/.bashrc

使環境變量生效

4.修改5個配置文件

slave

core-site.xml

hdfs-site.xml

mapred-site.xml

yarn-site.xml

<1> vim /usr/local/hadoop/etc/slave

添加

salve

<2> vim /usr/local/etc/hadoop/core-site.xml

技術分享圖片
<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>
       </property>
</configuration> 
View Code

<3> vim /usr/local/etc/hadoop/hdfs-site.xml

技術分享圖片
<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>Master:50090</value>
        </property>
        <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>
View Code

<4> vim /usr/local/etc/hadoop/mapred-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>
View Code

<5> vim /usr/local/etc/hadoop/yarn-site.xml

技術分享圖片
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
View Code

5.配置好後,將 Master 上的 /usr/local/Hadoop 文件夾復制到各個節點上。如果之前有跑過偽分布式模式,建議在切換到集群模式前先刪除之前的臨時文件。在 Master 節點上執行: tar -zcf ~/hadoop.master.tar.gz ./hadoop

cd ~

scp ./hadoop.master.tar.gz slave:/home/hadoop

在slave上執行

sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local

sudo chown -R hadoop /usr/local/hadoop

同樣,如果有其他 Slave 節點,也要執行將 hadoop.master.tar.gz 傳輸到 Slave 節點、在 Slave 節點解壓文件的操作。

首次啟動需要先在 Master 節點執行 NameNode 的格式化:
hdfs namenode –format
如果是centos系統,需要關閉防火墻

這裏可能會出現java環境配置不被發現的錯誤,只需要

vim /usr/local/etc/hadoop/hadoop.env.sh

技術分享圖片

記得source ~/.bashrc

接著可以啟動 hadoop 了,啟動需要在 Master 節點上進行:
start-dfs.sh
start-yarn.sh

通過命令 jps 可以查看各個節點所啟動的進程。正確的話,在 Master 節點上可以看到 NameNode、ResourceManager、SecondrryNameNode、

在 Slave 節點可以看到 DataNode 和 NodeManager 進程,大功告成!!!

hadoop分布式搭建