Hadoop的安裝與配置(設置單節點羣集)詳細教程

本篇博客將主要介紹如何設置和配置單節點Hadoop安裝,以便我們可以使用Hadoop MapReduce和Hadoop分佈式文件系統(HDFS)快速執行簡單的操作。

先決條件

1、本系列以Ubuntu Linux作爲開發和生產平臺
2、Linux所需的軟件包括:

  • JAVA:必須安裝Java,配置好JDK環境變量;
  • SSH:如果要使用可選的啓動和停止腳本,則必須安裝ssh並且必須運行sshd才能使用管理遠程Hadoop守護程序的Hadoop腳本;
  • pdsh:安裝pdsh以便更好地進行ssh資源管理。

如果羣集中沒有必需的軟件,則需要安裝它。在Ubuntu Linux上:

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

下載

可以從 Apache Download Mirrors下載獲得最穩定的發行版
下載後,使用 : tar -zxvf tar包名,解壓到指定位置!

準備啓動Hadoop集羣

編輯文件etc/ hadoop / hadoop-env.sh以定義一些參數

  # set to the root of your Java installation
  export JAVA_HOME=/usr/local/java/jdk1.8
  
  export HADOOP_CONF_DIR=/usr/local/apps/hadoop-3.2.1/etc/hadoop

嘗試以下命令:

  $ bin / hadoop

這將顯示hadoop腳本的用法文檔
現在,我們可以以三種支持的模式之一啓動Hadoop集羣:

  • 本地(獨立)模式
  • 僞分佈式模式
  • 全分佈式模式

獨立模式運行

默認情況下,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/*

僞分佈式操作模式運行

Hadoop也可以以僞分佈式模式在單節點上運行,其中每個Hadoop守護程序都在單獨的Java進程中運行。
在以下配置文件中進行修改或添加內容

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>

設置無密碼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

以下說明是在本地運行MapReduce作業:

  1. 格式化文件系統:
  $ bin/hdfs namenode -format
  1. 啓動NameNode守護程序和DataNode守護程序:
 $ sbin/start-dfs.sh

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

  1. 瀏覽Web界面的NameNode;默認情況下,它在以下位置可用:
    NameNode - http://localhost:9870/
  2. 設置執行MapReduce作業所需的HDFS目錄:
  $ bin/hdfs dfs -mkdir /user
  $ bin/hdfs dfs -mkdir /user/root
  1. 將輸入文件複製到分佈式文件系統中:
  $ bin/hdfs dfs -mkdir input
  $ bin/hdfs dfs -put etc/hadoop/*.xml input
  1. 運行提供的一些示例:
 $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+'
  1. 檢查輸出文件:將輸出文件從分佈式文件系統複製到本地文件系統並檢查它們:
  $ bin/hdfs dfs -get output output
  $ cat output/*
  1. 完成後,使用以下命令停止守護進程:
  $ sbin / stop-dfs.sh

以僞分佈式模式在YARN上運行MapReduce作業:
以下指令假定上述本地運行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>
  1. 啓動ResourceManager守護程序和NodeManager守護程序:
  $ sbin/start-yarn.sh
  1. 瀏覽Web界面以找到ResourceManager;默認情況下,它在以下位置可用:

ResourceManager- http:// localhost:8088 /
運行MapReduce作業。

  1. 完成後,使用以下命令停止守護進程:
  $ sbin/stop-yarn.sh

全分佈式運行

有關設置完全分佈式的非重要集羣的信息,將在以後進行介紹!

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