如何在Ubuntu 20.04上安裝和配置Apache Hadoop

如何在Ubuntu 20.04上安裝和配置Apache Hadoop

Apache Hadoop是一個開放源代碼框架,用於管理,存儲和處理在集群系統下運行的各種大數據應用程序的數據。 它用Java編寫,並帶有一些C和Shell腳本中的本地代碼。 它使用分散式文件系統(HDFS),並從單個伺服器擴展到數千台計算機。

Apache Hadoop基於四個主要組件:

  • Hadoop Common:這是其他Hadoop模塊所需的實用程序和庫的集合。
  • HDFS:也稱為Hadoop分散式文件系統,分布在多個節點上。
  • MapReduce:這是一個用於編寫應用程序以處理大量數據的框架。
  • Hadoop YARN:Hadoop的資源管理層也稱為「另一個資源協商者」。

在本教程中,我們將說明如何在Ubuntu 20.04上設置單節點Hadoop集群。

先決條件

  • 運行帶有4 GB RAM的Ubuntu 20.04的伺服器。
  • 在您的伺服器上配置了root密碼。

更新系統軟體包

開始之前,建議將系統軟體包更新為最新版本。 您可以使用以下命令進行操作:

apt-get update -y
apt-get upgrade -y

系統更新後,請重新啟動以實施更改。

安裝Java

Apache Hadoop是基於Java的應用程序。 因此,您將需要在系統中安裝Java。 您可以使用以下命令進行安裝:

apt-get install default-jdk default-jre -y

安裝後,您可以使用以下命令來驗證Java的安裝版本:

java -version

您應該獲得以下輸出:

openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

創建Hadoop用戶並設置無密碼SSH

首先,使用以下命令創建一個名為hadoop的新用戶:

adduser hadoop

接下來,將hadoop用戶添加到sudo組
usermod -aG sudo hadoop

接下來,使用hadoop用戶登錄並使用以下命令生成SSH密鑰對:

su - hadoop
ssh-keygen -t rsa

您應該獲得以下輸出:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_rsa
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:HG2K6x1aCGuJMqRKJb+GKIDRdKCd8LXnGsB7WSxApno [email protected]
The key's randomart image is:
+---[RSA 3072]----+
|..=..            |
| O.+.o   .       |
|oo*.o + . o      |
|o .o * o +       |
|o+E.= o S        |
|=.+o * o         |
|*.o.= o o        |
|=+ o.. + .       |
|o ..  o .        |
+----[SHA256]-----+

接下來,將此密鑰添加到Authorized ssh密鑰並給予適當的許可:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

接下來,使用以下命令驗證無密碼的SSH:

ssh localhost

登錄後無需密碼即可繼續下一步。

安裝Hadoop

首先,使用hadoop用戶登錄並使用以下命令下載最新版本的Hadoop:

su - hadoop
wget https://downloads.apache.org/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz

下載完成後,使用以下命令解壓縮下載的文件:

tar -xvzf hadoop-3.2.1.tar.gz

接下來,將提取的目錄移動到/ usr / local /:

sudo mv hadoop-3.2.1 /usr/local/hadoop

接下來,使用以下命令創建一個目錄來存儲日誌:

sudo mkdir /usr/local/hadoop/logs

接下來,將hadoop目錄的所有權更改為hadoop:Advertisement.banner-1 {text-align:center; padding-top:10pximportant; padding-bottom:10pximportant; padding-left:0pximportant; padding-right:0pximportant; width:100%important; box-sizing:border-boximportant; background -color:#eeeeeeimportant; border:1px實心#dfdfdf}

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

接下來,您將需要配置Hadoop環境變數。 您可以通過編輯〜/ .bashrc文件來實現:

nano ~/.bashrc

添加以下行:

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export P新高=$P新高:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

完成後保存並關閉文件。 然後,使用以下命令激活環境變數:

source ~/.bashrc

配置Hadoop

在本節中,我們將學習如何在單個節點上設置Hadoop。

配置Java環境變數

接下來,您將需要在hadoop-env.sh中定義Java環境變數,以配置YARN,HDFS,MapReduce和Hadoop相關的項目設置。

首先,使用以下命令找到正確的Java路徑:

which javac

您應該看到以下輸出:

/usr/bin/javac

接下來,使用以下命令找到OpenJDK目錄:

readlink -f /usr/bin/javac

您應該看到以下輸出:

/usr/lib/jvm/java-11-openjdk-amd64/bin/javac

接下來,編輯hadoop-env.sh文件並定義Java路徑:

sudo nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh

添加以下行:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 
export HADOOP_CLASSP新高+=" $HADOOP_HOME/lib/*.jar"

接下來,您還需要下載Javax激活文件。 您可以使用以下命令下載它:

cd /usr/local/hadoop/lib
sudo wget https://jcenter.bintray.com/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar

現在,您可以使用以下命令來驗證Hadoop版本:

hadoop version

您應該獲得以下輸出:

Hadoop 3.2.1
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r b3cbbb467e22ea829b3808f4b7b01d07e0bf3842
Compiled by rohithsharmaks on 2019-09-10T15:56Z
Compiled with protoc 2.5.0
From source with checksum 776eaf9eee9c0ffc370bcbc1888737
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-3.2.1.jar

配置core-site.xml文件

接下來,您將需要為NameNode指定URL。 您可以通過編輯core-site.xml文件來實現:

sudo nano $HADOOP_HOME/etc/hadoop/core-site.xml

添加以下行:


   
      fs.default.name
      hdfs://0.0.0.0:9000
      The default file system URI
   


完成後保存並關閉文件:

配置hdfs-site.xml文件

接下來,您將需要定義用於存儲節點元數據,fsimage文件和編輯日誌文件的位置。 您可以通過編輯hdfs-site.xml文件來實現。 首先,創建用於存儲節點元數據的目錄:

sudo mkdir -p /home/hadoop/hdfs/{namenode,datanode}
sudo chown -R hadoop:hadoop /home/hadoop/hdfs

接下來,編輯hdfs-site.xml文件並定義目錄的位置:

sudo nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml

添加以下行:


   
      dfs.replication
      1
   

   
      dfs.name.dir
      file:///home/hadoop/hdfs/namenode
   

   
      dfs.data.dir
      file:///home/hadoop/hdfs/datanode
   

保存並關閉文件。

配置mapred-site.xml文件

接下來,您將需要定義MapReduce值。 您可以通過編輯mapred-site.xml文件來定義它:

sudo nano $HADOOP_HOME/etc/hadoop/mapred-site.xml

添加以下行:


   
      mapreduce.framework.name
      yarn
   

保存並關閉文件。

配置yarn-site.xml文件

接下來,您將需要編輯yarn-site.xml文件並定義與YARN相關的設置:

sudo nano $HADOOP_HOME/etc/hadoop/yarn-site.xml

添加以下行:


   
      yarn.nodemanager.aux-services
      mapreduce_shuffle
   

完成後保存並關閉文件。

格式化HDFS NameNode

接下來,您將需要驗證Hadoop配置並格式化HDFS NameNode。

首先,以Hadoop用戶身份登錄並使用以下命令格式化HDFS NameNode:

su - hadoop
hdfs namenode -format

您應該獲得以下輸出:

2020-06-07 11:35:57,691 INFO util.GSet: VM type       = 64-bit
2020-06-07 11:35:57,692 INFO util.GSet: 0.25% max memory 1.9 GB = 5.0 MB
2020-06-07 11:35:57,692 INFO util.GSet: capacity      = 2^19 = 524288 entries
2020-06-07 11:35:57,706 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.window.num.buckets = 10
2020-06-07 11:35:57,706 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.num.users = 10
2020-06-07 11:35:57,706 INFO metrics.TopMetrics: NNTop conf: dfs.namenode.top.windows.minutes = 1,5,25
2020-06-07 11:35:57,710 INFO namenode.FSNamesystem: Retry cache on namenode is enabled
2020-06-07 11:35:57,710 INFO namenode.FSNamesystem: Retry cache will use 0.03 of total heap and retry cache entry expiry time is 600000 millis
2020-06-07 11:35:57,712 INFO util.GSet: Computing capacity for map NameNodeRetryCache
2020-06-07 11:35:57,712 INFO util.GSet: VM type       = 64-bit
2020-06-07 11:35:57,712 INFO util.GSet: 0.029999999329447746% max memory 1.9 GB = 611.9 KB
2020-06-07 11:35:57,712 INFO util.GSet: capacity      = 2^16 = 65536 entries
2020-06-07 11:35:57,743 INFO namenode.FSImage: Allocated new BlockPoolId: BP-1242120599-69.87.216.36-1591529757733
2020-06-07 11:35:57,763 INFO common.Storage: Storage directory /home/hadoop/hdfs/namenode has been successfully formatted.
2020-06-07 11:35:57,817 INFO namenode.FSImageFormatProtobuf: Saving image file /home/hadoop/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 using no compression
2020-06-07 11:35:57,972 INFO namenode.FSImageFormatProtobuf: Image file /home/hadoop/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 of size 398 bytes saved in 0 seconds .
2020-06-07 11:35:57,987 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
2020-06-07 11:35:58,000 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid=0 when meet shutdown.
2020-06-07 11:35:58,003 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at ubuntu2004/69.87.216.36
************************************************************/

啟動Hadoop集群

首先,使用以下命令啟動NameNode和DataNode:

start-dfs.sh

您應該獲得以下輸出:

Starting namenodes on [0.0.0.0]
Starting datanodes
Starting secondary namenodes [ubuntu2004]

接下來,通過運行以下命令來啟動YARN資源和節點管理器:

start-yarn.sh

您應該獲得以下輸出:

Starting resourcemanager
Starting nodemanagers

您現在可以使用以下命令驗證它們:

jps

您應該獲得以下輸出:

5047 NameNode
5850 Jps
5326 SecondaryNameNode
5151 DataNode

訪問Hadoop Web界面

現在,您可以使用URL http:// your-server-ip:9870訪問Hadoop NameNode。 您應該看到以下屏幕:

Hadoop Web界面

您也可以使用URL http:// your-server-ip:9864訪問單個DataNode。 您應該看到以下屏幕:

Hadoop數據節點

要訪問YARN瀏覽器,請使用URL http:// your-server-ip:8088。 您應該看到以下屏幕:

Hadoop紗線瀏覽器

結論

恭喜你 您已在單個節點上成功安裝了Hadoop。 現在,您可以開始探索基本的HDFS命令並設計一個完全分散式的Hadoop集群。 如有任何問題,隨時問我。

資訊來源:由0x資訊編譯自HOWTOFORGE,版權歸作者所有,未經許可,不得轉載
你可能還喜歡