如何在CentOS 8的單節點上安裝和配置Apache Hadoop?


Apache Hadoop是一個開源框架,允許對大型資料集進行分散式處理。它可以安裝和配置在單個節點上,這對於開發和測試目的很有用。在本文中,我們將討論如何在執行CentOS 8的單節點上安裝和配置Apache Hadoop。

步驟 1:安裝 Java

Apache Hadoop 要求系統上安裝 Java。要安裝 Java,請執行以下命令:

sudo dnf install java-11-openjdk-devel

步驟 2:安裝 Apache Hadoop

Apache Hadoop 可以從官方 Apache 網站下載。在撰寫本文時,最新穩定版本為 3.3.1 版。您可以使用以下命令下載它:

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

下載完成後,使用以下命令解壓縮存檔:

tar -zxvf hadoop-3.3.1.tar.gz

步驟 3:配置 Hadoop

解壓縮存檔後,您需要配置 Hadoop。使用以下命令導航到 Hadoop 安裝目錄:

cd hadoop-3.3.1

接下來,使用文字編輯器開啟 etc/hadoop/hadoop-env.sh 檔案:

sudo nano etc/hadoop/hadoop-env.sh

找到以下行:

# export JAVA_HOME=

取消註釋它並設定 Java 安裝目錄的路徑:

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

儲存並關閉檔案。

步驟 4:配置 Hadoop Core

接下來,使用文字編輯器開啟 etc/hadoop/core-site.xml 檔案:

sudo nano etc/hadoop/core-site.xml

新增以下行:

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

儲存並關閉檔案。

步驟 5:配置 Hadoop HDFS

使用文字編輯器開啟 etc/hadoop/hdfs-site.xml 檔案:

sudo nano etc/hadoop/hdfs-site.xml

新增以下行:

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
   <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
   </property>
   <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
   </property>
</configuration>

儲存並關閉檔案。

步驟 6:格式化 HDFS

在啟動 Hadoop 之前,您需要格式化 HDFS。執行以下命令:

bin/hdfs namenode -format

步驟 7:啟動 Hadoop

要啟動 Hadoop,請執行以下命令:

sbin/start-all.sh

這將啟動 NameNode、DataNode 和 ResourceManager 守護程序。

步驟 8:驗證 Hadoop 安裝

要驗證安裝,您可以執行以下命令:

jps

這應該顯示以下程序:

1234 NameNode
5678 DataNode
9101 ResourceManager

恭喜!您已成功在執行 CentOS 的單節點上安裝和配置了 Apache Hadoop。

步驟 9:配置 Hadoop YARN

YARN(Yet Another Resource Negotiator)是 Hadoop 的資源管理層,它使多個數據處理引擎(如 Apache Spark、Apache Hive 和 Apache Pig)能夠在同一個 Hadoop 叢集上執行。

使用文字編輯器開啟 etc/hadoop/yarn-site.xml 檔案:

sudo nano etc/hadoop/yarn-site.xml

新增以下行:

<configuration>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
   </property>
   <property>
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
      <value>org.apache.hadoop.mapred.ShuffleHandler</value>
   </property>
   <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>localhost</value>
   </property>
   <property>
      <name>yarn.nodemanager.local-dirs</name>
      <value>/home/hadoop/hadoopdata/yarn/local</value>
   </property>
   <property>
      <name>yarn.nodemanager.log-dirs</name>
      <value>/home/hadoop/hadoopdata/yarn/logs</value>
   </property>
   <property>
      <name>yarn.nodemanager.resource.memory-mb</name>
      <value>1024</value>
   </property>
   <property>
      <name>yarn.nodemanager.resource.cpu-vcores</name>
      <value>1</value>
   </property>
</configuration>

儲存並關閉檔案。

步驟 10:驗證 YARN 安裝

要驗證安裝,您可以執行以下命令:

jps

這應該除了之前的程序外,還顯示以下程序:

1234 NameNode
5678 DataNode
9101 ResourceManager
3456 NodeManager

步驟 11:測試 Hadoop

要測試 Hadoop,您可以使用 hadoop 命令列介面在 HDFS 中建立一個目錄並將檔案上傳到該目錄。

在 HDFS 中建立一個目錄:

bin/hadoop fs -mkdir /input

將檔案上傳到目錄:

bin/hadoop fs -put etc/hadoop/hadoop-env.sh /input

驗證檔案是否已上傳:

bin/hadoop fs -ls /input

這應該顯示以下輸出:

-rw-r--r--   1 hadoop supergroup       3519 Apr 25 10:00 /input/hadoop-env.sh

恭喜!您已成功在執行 CentOS 的單節點上安裝和配置了 Apache Hadoop 並測試了其功能。您現在可以使用 Hadoop 處理和分析大型資料集。

步驟 12:停止 Hadoop

要停止 Hadoop,請執行以下命令:

sbin/stop-all.sh

這將停止所有 Hadoop 守護程序。

步驟 13:為 Hadoop 建立使用者

建議為 Hadoop 建立一個單獨的使用者。要建立使用者,請執行以下命令:

sudo useradd hadoop

為使用者設定密碼:

sudo passwd hadoop

步驟 14:授予許可權

要授予 Hadoop 使用者許可權,請建立一個 Hadoop 目錄:

sudo mkdir /home/hadoop/hadoopdata
sudo chown hadoop:hadoop /home/hadoop/hadoopdata

授予 Hadoop 目錄的許可權:

sudo chmod 755 /home/hadoop/hadoopdata

步驟 15:設定環境變數

要設定環境變數,請使用文字編輯器開啟 .bashrc 檔案:

nano ~/.bashrc

新增以下行:

export HADOOP_HOME=/home/hadoop/hadoop-3.3.1
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 PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

儲存並關閉檔案。

步驟 16:重新載入環境變數

要重新載入環境變數,請執行以下命令:

source ~/.bashrc

步驟 17:驗證 Hadoop 使用者

要驗證 Hadoop 使用者是否已建立並具有正確的許可權,請執行以下命令:

id hadoop

這應該顯示以下輸出:

uid=1001(hadoop) gid=1001(hadoop) groups=1001(hadoop)

步驟 18:重新啟動 Hadoop

要使用新使用者和許可權重新啟動 Hadoop,請執行以下命令:

sbin/start-all.sh

恭喜!您已成功在執行 CentOS 的單節點上安裝和配置了 Apache Hadoop,為 Hadoop 建立了一個使用者,並授予了 Hadoop 目錄的許可權。您現在可以使用 Hadoop 使用者使用 Hadoop 處理和分析大型資料集。

步驟 19:配置防火牆

要允許外部訪問 Hadoop Web 介面,您需要配置防火牆以允許在埠 8088 和 9870 上的傳入連線。

要配置防火牆,請執行以下命令:

sudo firewall-cmd --zone=public --add-port=8088/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9870/tcp --permanent
sudo firewall-cmd --reload

步驟 20:訪問 Hadoop Web 介面

要訪問 Hadoop Web 介面,請開啟 Web 瀏覽器並輸入以下 URL:

https://:9870

這將顯示 Hadoop NameNode Web 介面。您也可以在以下位置訪問 Hadoop ResourceManager Web 介面:

https://:8088

恭喜!您已成功配置防火牆以允許外部訪問 Hadoop Web 介面並訪問了 Hadoop Web 介面。您現在可以使用 Web 介面監視 Hadoop 叢集及其活動。

步驟 21:安裝 Hadoop 生態系統工具

要擴充套件 Hadoop 的功能,您可以安裝各種生態系統工具,例如 Apache Hive、Apache Pig 和 Apache Spark。這些工具允許您執行各種資料處理和分析任務。

要安裝這些工具,您可以使用 CentOS 提供的包管理器。例如,要安裝 Apache Hive,請執行以下命令:

sudo dnf install hive

類似地,您可以使用以下命令安裝 Apache Pig 和 Apache Spark:

sudo dnf install pig
sudo dnf install spark

步驟 22:配置 Hadoop 生態系統工具

安裝生態系統工具後,您需要將其配置為與 Hadoop 一起使用。

要配置 Apache Hive,請使用文字編輯器開啟位於 /etc/hive/conf 目錄中的 hive-site.xml 檔案:

sudo nano /etc/hive/conf/hive-site.xml

新增以下行:

<configuration>
   <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://:3306/hive?createDatabaseIfNotExist=true</value>
      <description>JDBC connect string for a JDBC metastore</description>
   </property>
   <property>
      <name>javax.jdo.option.ConnectionDriverName</name>
      <value>com.mysql.jdbc.Driver</value>
      <description>Driver class name for a JDBC metastore</description>
   </property>
   <property>
      <name>javax.jdo.option.ConnectionUserName</name>
      <value>hive</value>
      <description>username to use against metastore database</description>
   </property>
   <property>
      <name>javax.jdo.option.ConnectionPassword</name>
      <value>password</value>
      <description>password to use against metastore database</description>
   </property>
</configuration>

儲存並關閉檔案。

要配置 Apache Pig,請使用文字編輯器開啟位於 /etc/pig 目錄中的 pig.properties 檔案:

sudo nano /etc/pig/pig.properties

新增以下行:

fs.default.name=hdfs://:9000

儲存並關閉檔案。

要配置 Apache Spark,請使用文字編輯器開啟 Spark 安裝目錄的 conf 目錄中的 spark-env.sh 檔案:

sudo nano /path/to/spark/conf/spark-env.sh

新增以下行:

export HADOOP_CONF_DIR=/home/hadoop/hadoop-3.3.1/etc/hadoop
export SPARK_MASTER_HOST=localhost

儲存並關閉檔案。

步驟 23:驗證 Hadoop 生態系統工具

要驗證生態系統工具的安裝和配置,您可以執行其各自的命令列介面。例如,要執行 Apache Hive 命令列介面,請執行以下命令:

hive

這應該顯示 Hive shell 提示符。類似地,您可以使用以下命令執行 Apache Pig 和 Apache Spark 命令列介面:

pig
spark-shell

恭喜!您已成功安裝和配置了各種 Hadoop 生態系統工具並驗證了其功能。您現在可以使用這些工具執行各種資料處理和分析任務。

結論

在本教程中,您已成功在 CentOS 8 的單節點上安裝和配置了 Apache Hadoop。您現在可以開始嘗試使用 Hadoop 並執行本地機器上的 MapReduce 作業。隨著您對 Hadoop 的瞭解越來越深入,您可能希望擴充套件到多節點叢集以獲得更好的效能和容錯能力。

更新於: 2023年5月12日

2K+ 閱讀量

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.