Hadoop【從無到有從有到無】【H2】設置單節點羣集

目錄

1.目的

2.先決條件

2.1.支持平臺

2.2.必備軟件

2.3.安裝軟件

3.下載

4.準備啓動Hadoop集羣

4.1.獨立運行(Standalone Operation)

4.2.僞分佈式操作(Pseudo-Distributed Operation)

4.2.1.配置

4.2.2.設置無密碼SSH

4.2.3.執行

4.2.4.在單個節點上的YARN

4.3.全分佈式運行(Fully-Distributed Operation)


1.目的

本文檔介紹瞭如何設置和配置單節點Hadoop安裝,以便您可以使用Hadoop MapReduce和Hadoop分佈式文件系統(HDFS)快速執行簡單的操作。

2.先決條件

2.1.支持平臺

  • 支持GNU / Linux作爲開發和生產平臺。 Hadoop在具有2000個節點的GNU / Linux集羣上可以正常運行,已經得到證明。
  • Windows也是受支持的平臺,但是以下步驟僅適用於Linux。 要在Windows上設置Hadoop,請參見 wiki page

2.2.必備軟件

Linux所需的軟件包括:

  1. 必須安裝Java™。HadoopJavaVersions中描述了推薦的Java版本。
  2. 如果要使用可選的啓動和停止腳本,則必須安裝ssh且sshd必須正在運行以使用管理遠程Hadoop守護程序的Hadoop腳本。 另外,建議也安裝pdsh以便更好地進行ssh資源管理。

2.3.安裝軟件

如果您的羣集沒有必需的軟件,則需要安裝它。

例如在Ubuntu Linux上:

$ sudo apt-get install ssh
$ sudo apt-get install pdsh

3.下載

要獲得Hadoop發行版,請從其中一個 Apache Download Mirrors下載最新的穩定版本。

4.準備啓動Hadoop集羣

將下載的Hadoop發行版的壓縮包解壓縮。 在發行版中,編輯文件etc/hadoop/hadoop-env.sh以定義一些參數,如下所示:

# set to the root of your Java installation
export JAVA_HOME=/usr/java/latest

然後執行下面的命令:

$ bin/hadoop

這將顯示hadoop腳本的用法文檔。

現在,您可以以三種支持的模式之一啓動Hadoop集羣:

4.1.獨立運行(Standalone Operation)

默認情況下,Hadoop被配置爲在非分佈式模式下作爲單個Java進程運行。 這對於調試很有用。

下面的示例複製解壓縮的conf目錄以用作輸入,然後查找並顯示給定正則表達式的每個匹配項。 輸出被寫入給定的輸出目錄。

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

4.2.僞分佈式操作(Pseudo-Distributed Operation)

Hadoop還可在僞分佈式模式下在單節點上運行,其中每個Hadoop守護進程均在單獨的Java進程中運行; Hadoop還可在僞分佈式模式下在單節點上運行,其中每個Hadoop守護程序均在單個節點上運行單獨的Java進程。

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

4.2.2.設置無密碼SSH

現在檢查您是否可以在沒有密碼的情況下SSH到本地主機:

$ ssh localhost

如果沒有密碼就無法SSH到本地主機,請執行以下命令:

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

4.2.3.執行

以下說明是在本地運行MapReduce作業。 如果要在YARN上執行作業,請參閱“ YARN on Single Node”。

1.格式化文件系統:

$ bin/hdfs namenode -format

2.啓動NameNode守護程序和DataNode守護程序:

$ sbin/start-dfs.sh

hadoop守護程序日誌輸出將寫入$HADOOP_LOG_DIR目錄(默認爲$HADOOP_HOME/logs)。

3.瀏覽Web界面以查找NameNode; 默認情況下,它在以下位置可用:

  • NameNode - http://localhost:9870/

4.設置執行MapReduce作業所需的HDFS目錄:

$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>

5.將輸入文件複製到分佈式文件系統中:

$ bin/hdfs dfs -mkdir input
$ bin/hdfs dfs -put etc/hadoop/*.xml input

6.運行提供的一些示例:

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

7.檢查輸出文件:將輸出文件從分佈式文件系統複製到本地文件系統並檢查它們:

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

或者

查看分佈式文件系統上的輸出文件:

$ bin/hdfs dfs -cat output/*

完成後,使用以下命令停止守護進程:

$ sbin/stop-dfs.sh

4.2.4.在單個節點上的YARN

您可以通過設置一些參數並另外運行ResourceManager守護程序和NodeManager守護程序,以僞分佈式模式在YARN上運行MapReduce作業。

以下指令假定上述指令的1.〜4.步驟已經執行。

1.配置參數如下:

etc/hadoop/mapred-site.xml:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>

etc/hadoop/yarn-site.xml:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

2.啓動ResourceManager守護程序和NodeManager守護程序:

$ sbin/start-yarn.sh

3.瀏覽Web界面以找到ResourceManager; 默認情況下,它在以下位置可用:

  • ResourceManager - http://localhost:8088/

4.運行MapReduce作業。

5.完成後,使用以下命令停止守護進程:

$ sbin/stop-yarn.sh

4.3.全分佈式運行(Fully-Distributed Operation)

有關設置fully-distributed, non-trivial羣集的信息,請參閱集羣設置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章