二、hadoop偽分佈搭建

Thinkgamer_gyt發表於2015-07-07

  環境                                              

虛擬機器:VirtualBox

Ubuntu:14.04

hadoop:2.6

  安裝                                             

1、建立hadoop使用者

sudo useradd -m hadoop -s/bin/bash

Ubuntu終端複製貼上快捷鍵】

【在Ubuntu終端視窗中,複製貼上的快捷鍵需要加上shift,即貼上是 ctrl+shift+v。】

使用如下命令修改密碼,按提示輸入兩次密碼 hadoop :

sudo passwd hadoop

可為 hadoop 使用者增加管理員許可權,方便部署,避免一些對新手來說比較棘手的許可權問題:

sudo adduser hadoop sudo

2、切換到hadoop使用者下

su hadoop

3、安裝SSH server、配置SSH無密碼登陸

叢集、單節點模式都需要用到SSH登陸(類似於遠端登陸,你可以登入某臺Linux電腦,並且在上面執行命令),Ubuntu 預設已安裝了 SSH client,此外還需要安裝 SSH server:

sudo apt-get install openssh-server

安裝後,可以使用如下命令登陸本機:

ssh localhost


此時會有提示(SSH首次登陸提示),輸入 yes 。然後按提示輸入密碼hadoop,這樣就登陸到本機了。

但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH無密碼登陸比較方便。

首先退出剛才的 ssh,就回到了我們原先的終端視窗,然後利用 ssh-keygen 生成金鑰,並將金鑰加入到授權中:

  1. exit # 退出剛才的 ssh localhost
  2. cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost
  3. ssh-keygen -t rsa # 會有提示,都按回車就可以
  4. cat id_rsa.pub >> authorized_keys # 加入授權

此時再用 ssh localhost 命令,無需輸入密碼就可以直接登陸


4、安裝Java環境

Java環境可選擇 Oracle 的 JDK,或是 OpenJDK,按http://wiki.apache.org/hadoop/HadoopJavaVersions中說的,新版本在 OpenJDK 1.7 下是沒問題的。為圖方便,這邊直接通過命令安裝 OpenJDK 7。

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

OpenJDK 預設的安裝位置為: /usr/lib/jvm/java-7-openjdk-amd64 (32位系統則是 /usr/lib/jvm/java-7-openjdk-i86 ,可通過命令dpkg -L openjdk-7-jdk檢視到)。安裝完後就可以使用了,可以用java -version 檢查一下。

接著需要配置一下 JAVA_HOME 環境變數,為方便,我們在 ~/.bashrc 中進行設定(擴充套件閱讀:設定Linux環境變數的方法和區別):

vi ~/.bashrc

在檔案最前面新增如下單獨一行(注意 = 號前後不能有空格),並儲存:

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

如下圖所示(該檔案原本可能不存在,內容為空,這不影響):


配置JAVA_HOME變數

接著還需要讓該環境變數生效,執行如下程式碼:

source ~/.bashrc# 使變數設定生效

echo $JAVA_HOME# 檢驗是否設定正確

設定正確的話,會輸出如下結果:


成功配置JAVA_HOME變數

5、安裝hadoop

進入hadoop所在的目錄將其解壓到/usr/local/hadoop

sudo tar -zxvf ./hadoop-2.6.0.tar.gz -C /usr/local # 解壓到/usr/local中cd /usr/local/sudo mv ./hadoop-2.6.0/ ./hadoop # 將資料夾名改為hadoopsudo chown -R hadoop:hadoop ./hadoop # 修改檔案許可權

Hadoop解壓後即可使用。輸入如下命令來檢查 Hadoop 是否可用,成功則會顯示命令用法:

cd ./hadoop

./bin/hadoop

6、hadoop偽分佈配置

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

修改配置檔案 core-site.xml (vim /usr/local/hadoop/etc/hadoop/core-site.xml),將當中的

<configuration>
</configuration>

修改為下面配置:

<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>

同樣的,修改配置檔案 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>
修改配置檔案yarn-site.xml
<configuration> 

     <property>  

        <name>mapreduce.framework.name</name>  

        <value>yarn</value> 

    </property>  
    <property> 

        <name>yarn.nodemanager.aux-services</name>  

        <value>mapreduce_shuffle</value>  

   </property> 

</configuration> 

配置完成後,執行 namenode 的格式

bin/hdfs namenode -format

成功的話,會看到successfully formatted 的提示,且倒數第5行的提示如下,Exitting with status 0 表示成功,若為Exitting with status 1 則是出錯

接著開啟如下程式

sbin/start-dfs.sh

sbin/start-yarn.sh

至此,所有的已經安裝完事,且所有服務都已經啟動

 驗證                           

http://127.0.0.1:8088


http://localhost:50070


http://127.0.0.1:19888


 提示                           

每次進入虛擬機器系統時必須先進入hadoop使用者下(su hadoop),才能開啟服務,否則會報錯

參考文章:www.powerxing.com/install-hadoop/

QQ交流:1923361654

hadoop完全分散式部署參考:http://blog.csdn.net/gamer_gyt/article/details/51991893

hadoop單機版部署參考:http://blog.csdn.net/gamer_gyt/article/details/46545303

相關文章