1. 程式人生 > >Hadoop-2.8.0實踐——單機模式和偽分佈模式

Hadoop-2.8.0實踐——單機模式和偽分佈模式

一、安裝

1.1 環境

  • 系統:Ubuntu 16.04 LTS
  • 軟體:
    • Java 1.7及以上
    • ssh 和 sshd
  • 安裝ssh:
$ sudo apt-get install ssh
$ sudo apt-get install rsync

1.2 下載 Hadoop 2.8.0

1.3 為 Hadoop 配置 Java 路徑

編輯 etc/hadoop/hadoop-env.sh:

export JAVA_HOME=/path/to/java/root/dir

1.4 啟動 Hadoop

執行命令:

bin/hadoop

若打印出幫助資訊,則表示安裝成功。

二、標準模式(單機模式)操作

預設情況下,Hadoop被配置為以非分散式模式執行,作為一個單一的Java程序。這對於除錯非常有用。
下面的示例複製未打包的conf目錄作為輸入,然後找到並顯示給定正則表示式的每一個匹配項。輸出被寫入到給定的輸出目錄。

$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.0.jar grep input output 'dfs[a-z.]+'
$ cat output/*

2.1 偽分佈模式操作

Hadoop還可以在一個偽分佈模式下執行,每個Hadoop守護程序在一個單獨的Java程序中執行。

2.1.1 配置

etc/hadoop/core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

etc/hadoop/hdfs-site.xml:

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

2.1.2 ssh免密碼連線本地主機

檢查是否可以使用ssh到本地主機,而無需使用密碼:

$ ssh localhost

如果不能在沒有密碼的情況下ssh到localhost,請執行以下命令:

$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

2.1.3 執行

格式檔案系統:
$ bin/hdfs namenode -format
啟動NameNode守護程序和DataNode守護程序:
$ sbin/start-dfs.sh
瀏覽NameNode的web介面;預設情況下:
建立執行MapReduce作業所需的HDFS目錄:
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>
將輸入檔案複製到分散式檔案系統中:
$ bin/hdfs dfs -put etc/hadoop input
執行示例:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.0.jar grep input output 'dfs[a-z.]+'
檢查輸出檔案

將輸出檔案從分散式檔案系統複製到本地檔案系統,並檢查它們:

$ bin/hdfs dfs -get output output
$ cat output/*

或者 檢視分散式檔案系統上的輸出檔案:

$ bin/hdfs dfs -cat output/*
當完成這些,可以停止守護程序:
$ sbin/stop-dfs.sh

2.1.4 單節點YARN

可以通過設定一些引數和執行ResourceManager守護程序及NodeManager守護程序,在偽分佈模式下執行MapReduce作業。
(以下操作假設以上說明的前四步均已執行!)

配置

etc/hadoop/mapred-site.xml:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

etc/hadoop/yarn-site.xml:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>
啟動ResourceManager守護程序和NodeManager守護程序
$ sbin/start-yarn.sh
瀏覽ResourceManager web介面;預設情況下:
完成後,停止守護程序:
$ sbin/stop-yarn.sh