Hadoop安裝與配置

Hadoop安裝教程爲簡略版本,包含僞分佈式和集羣的配置,只列出命令與配置,不做詳細說明,方便有基礎的讀者。完整版請瀏覽Hadoop安裝配置教程_僞分佈式,以及Hadoop集羣安裝配置教程java

本教程在 Ubutnu 14.04 64位,Hadoop 2.6.0 下驗證經過。最新的 Hadoop 2 穩定版能夠經過 http://mirror.bit.edu.cn/apache/hadoop/common/stable2/ 或者 http://mirrors.cnnic.cn/apache/hadoop/common/stable/ 下載。node

Hadoop 僞分佈式配置apache

建立Hadoop用戶:vim

1.   sudo useradd -m hadoop -s /bin/bash     # 建立hadoop用戶bash

2.   sudo passwd hadoop          # 修改密碼網絡

3.   sudo adduser hadoop sudo    # 增長管理員權限ssh

註銷並使用 Hadoop 用戶登陸,接着更新 apt 而且安裝 vimjvm

1.   sudo apt-get update         # 更新apt分佈式

2.   sudo apt-get install vim    # 安裝vimoop

安裝SSH,配置無密碼登陸:

1.   sudo apt-get install openssh-server

2.   cd ~

3.   mkdir .ssh                  # 可能該文件已存在,不影響

4.   cd ~/.ssh/

5.   ssh-keygen -t rsa           # 會有提示,都按回車就能夠

6.   cat id_rsa.pub >> authorized_keys  # 加入受權

安裝Java環境:

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

2.   vim ~/.bashrc               # 設置JAVA_HOME

在文件最前面添加以下單獨一行:

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

使 JAVA_HOME 變量生效:

1.   source ~/.bashrc    # 使變量設置生效

安裝 Hadoop 2:

1.   cd ~/下載

2.   sudo tar -zxvf ./hadoop-2.6.0.tar.gz -C /usr/local  # 解壓到/usr/local

3.   cd /usr/local/

4.   sudo mv ./hadoop-2.6.0/ ./hadoop            # 將文件夾名改成hadoop

5.   sudo chown -R hadoop:hadoop ./hadoop        # 修改文件權限

進行僞分佈式配置:

修改配置文件 core-site.xml (vim /usr/local/hadoop/etc/hadoop/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>

修改配置文件 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>

啓動 Hadoop:

1.   cd /usr/local/hadoop

2.   bin/hdfs namenode -format       # namenode 格式化

3.   sbin/start-dfs.sh               # 開啓守護進程

4.   jps                             # 判斷是否啓動成功

若成功啓動則會列出以下進程: NameNodeDataNodeSecondaryNameNode

(出錯,無datenode

解決辦法:

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>

運行 WordCount 實例:

1.   bin/hdfs dfs -mkdir -p /user/hadoop     # 建立HDFS目錄

2.   bin/hdfs dfs -mkdir input

3.   bin/hdfs dfs -put etc/hadoop/*.xml input  # 將配置文件做爲輸入

4.   bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

5.   bin/hdfs dfs -cat output/*                # 查看輸出

Hadoop 集羣配置

假定有兩臺機器:

Master  192.168.1.121

Slave1  192.168.1.122

Hadoop 集羣配置過程:

1.    選定一臺機器做爲 Master,在全部主機上配置網絡映射

2.    Master 主機上配置hadoop用戶、安裝SSH server、安裝Java環境

3.    Master 主機上安裝Hadoop,並完成配置

4.    在其餘主機上配置hadoop用戶、安裝SSH server、安裝Java環境

5.    Master 主機上的Hadoop目錄複製到其餘主機上

6.    開啓、使用 Hadoop

全部主機配置hadoop用戶、安裝SSH server、安裝Java環境:

1.   sudo useradd -m hadoop -s /bin/bash     # 建立hadoop用戶

2.   sudo passwd hadoop          # 修改密碼

3.   sudo adduser hadoop sudo    # 增長管理員權限

4.   # 註銷並使用 Hadoop 用戶登陸

5.   sudo apt-get update         # 更新apt

6.   sudo apt-get install vim    # 安裝vim

7.   sudo apt-get install openssh-server  # 安裝ssh

8.   sudo apt-get install openjdk-7-jre openjdk-7-jdk # 安裝Java

9.   vim ~/.bashrc               # 設置JAVA_HOME

在文件最前面添加以下單獨一行:

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

使 JAVA_HOME 變量生效:

1.   source ~/.bashrc    # 使變量設置生效

全部主機配置網絡映射:

1.   sudo vim /etc/hostname      # 修改主機名

2.   sudo vim /etc/hosts         # 修改主機與 IP 的映射關係

3.   sudo reboot                 # 重啓,使網絡配置生效

Master 主機上執行:

1.   cd ~/.ssh

2.   ssh-keygen -t rsa              # 一直按回車就能夠

3.   cat ~/id_rsa.pub >> ~/authorized_keys

4.   scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/ # 傳輸公鑰到Slave1

接着在 Slave1 節點上執行

1.   cd ~

2.   mkdir .ssh

3.   cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

Master節點上進行Hadoop集羣配置(位於 /usr/local/hadoop/etc/hadoop):

文件 slave:

將原來 localhost 刪除,把全部Slave的主機名寫上,每行一個。

文件 core-site.xml:

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

文件 hdfs-site.xml:

<property>

    <name>dfs.namenode.secondary.http-address</name>

    <value>Master:50090</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>

<property>

    <name>dfs.replication</name>

    <value>1</value>

</property>

文件 mapred-site.xml(首先需執行 cp mapred-site.xml.template mapred-site.xml):

<property>

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

    <value>yarn</value>

</property>

文件 yarn-site.xml

<property>

    <name>yarn.resourcemanager.hostname</name>

    <value>Master</value>

</property>

<property>

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

    <value>mapreduce_shuffle</value>

</property>

配置好後,在 Master 主機上,將 Hadoop 文件複製到各個節點上:

1.   cd /usr/local

2.   rm -r ./hadoop/tmp  # 刪除 Hadoop 臨時文件

3.   sudo tar -zcf ./hadoop.tar.gz ./hadoop

4.   scp ./hadoop.tar.gz Slave1:/home/hadoop

Slave1 上執行:

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

2.   sudo chown -R hadoop:hadoop /usr/local/hadoop

最後在 Master 主機上就能夠啓動hadoop:

1.   cd /usr/local/hadoop/

2.   bin/hdfs namenode -format

3.   sbin/start-dfs.sh

4.   sbin/start-yarn.sh

5.   jps             # 判斷是否啓動成功

若成功啓動,則Master節點啓動了NameNodeSecondrryNameNodeResourceManager進程,Slave節點啓動了DataNodeNodeManager進程。

Master 主機上執行WordCount實例:

1.   bin/hdfs dfs -mkdir -p /user/hadoop

2.   bin/hdfs dfs -put etc/hadoop input

3.   bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'

附加教程: 配置PATH環境變量

~/.bashrc 最前面加入以下單獨一行:

export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin

http://www.powerxing.com/install-hadoop-simplify/ 筆記Hadoop

相關文章
相關標籤/搜索