使用WSL2在Windows 11上安裝Hadoop
在這篇文章中,我們將看到如何使用 WSL 在同一臺 Windows 11 機器上安裝完整的 Hadoop 環境。
安裝依賴
您需要安裝兩個重要的依賴項才能使Hadoop正常工作。這些不是可選的,除非您已經安裝了它們。因此,請確保安裝這些依賴項。
- 安裝JDK
第一個依賴項是 java 開發工具包,或 JDK。建議使用 Java 8 或 Java 1.8 for Hadoop。這個建議來自我,因為我在使用較新版本的 Java 時遇到了問題。但是您絕對可以嘗試更新版本。
此外,安裝 Oracle JDK 或 Open JDK 或任何其他版本的 JDK 都沒有關係。你只需要安裝它。我使用以下命令在 Windows 11 上安裝的 Debian Linux 上安裝 JDK 8:
sudo apt install adoptopenjdk-8-hotspot
要在 apt 儲存庫中提供此包,您首先需要新增 PPA。為此,執行以下命令:
sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
安裝 JDK 後,請確保使用 env 變數名稱 JAVA_HOME 匯出 JDK 的路徑。匯出命令如下所示:
export JAVA_HOME=/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/java
如果您只是在終端中執行此命令,則只會為當前會話匯出該變數。要使其永久有效,您必須將此命令新增到.zshrc檔案中。
- 安裝 OpenSSH
下一個要安裝的依賴項是 OpenSSH,以便 Hadoop 可以透過 SSH 連線到本地主機。這也是一個必要的依賴。如果沒有 SSH 到本地主機,Hadoop 的大多陣列件將無法工作。要安裝 OpenSSH,請在終端中執行以下命令:
sudo apt install openssh-server openssh-client -y
一旦我們為 SSH 安裝了伺服器和客戶端,我們就必須生成用於身份驗證的金鑰。為此,請執行以下命令並按照您將獲得的說明進行操作:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
生成金鑰後,您必須將它們複製到授權金鑰列表中,這樣您就不必每次透過 SSH 進入機器時都輸入密碼。這一點尤其重要,因為這是 Hadoop 所期望的。至少我還沒有看到改變這種行為的選項。因此,執行以下命令將我們剛剛建立的金鑰檔案的檔案內容cat,然後將其複製到authorized_keys檔案:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
現在,確保公鑰檔案具有正確的許可權。這是因為如果金鑰檔案的公共訪問許可權比所需的多,系統就會認為該金鑰可以被複制、複製或篡改,這意味著該金鑰是不安全的。這將使系統拒絕金鑰並且不允許 SSH 登入。所以執行以下命令來設定正確的許可權:
chmod 0600 ~/.ssh/id_rsa.pub
接下來,啟動 SSH 服務,以便我們可以測試伺服器是否工作正常。為此,請執行以下命令:
sudo service ssh start
最後,執行以下命令以確保 SSH 正常工作:
ssh localhost
安裝 Hadoop
安裝 Hadoop 的第一步是實際下載它。在撰寫本文時,Hadoop 的最新版本是 3.3.1 版,您可以從這裡下載。您將從那裡下載.tar.gz檔案。要解壓縮該檔案,請使用以下命令:
tar xzf hadoop-3.3.1.tar.gz
這將建立一個名為 hadoop-3.3.1 的目錄,並將所有檔案和目錄放在該目錄中。因為我們在本地機器上安裝Hadoop,所以我們要做單節點部署,也稱為偽分散式模式部署。
- 設定環境變數
我們必須設定一堆環境變數。最好的部分是,您只需自定義一個變數。其他的只是複製貼上。無論如何,以下是我正在談論的變數:
export HADOOP_HOME=/mnt/d/bigdata/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 HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin export HADOOP_OPTS"-Djava.library.path=$HADOOP_HOME/lib/nativ" |
您只需更改第一個環境變數HADOOP_HOME 的值。將其設定為反映您放置 Hadoop 目錄的路徑。此外,將這些匯出語句放在.zshrc檔案中也是一個好主意,這樣每次都會自動匯出這些變數,而不必執行此操作。將其放入檔案後,請確保將其作為原始檔以使其立即生效:
source ~/.zshrc
- 配置 Hadoop
接下來,我們必須編輯一些檔案來更改各種 Hadoop 元件的配置。讓我們從檔案hadoop-env.sh 開始。執行以下命令在編輯器中開啟檔案:
sudo vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
接下來,找到匯出$JAVA_HOME變數的行並取消註釋。在這裡,您必須提供與之前安裝 Java 時所做的相同的路徑。對我來說,這就是以下內容:
export JAVA_HOME=/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/java
接下來,我們必須編輯core-site.xml檔案。這裡我們必須提供 Hadoop 的臨時目錄以及 Hadoop 檔案系統的預設名稱。使用以下命令在編輯器中開啟檔案:
sudo vim $HADOOP_HOME/etc/hadoop/core-site.xml
您會在此處找到一個空檔案,其中包含一些註釋和一個空配置塊。您可以刪除所有內容並將其替換為以下內容:
<configuration> <property> <name>hadoop.tmp.dir</name> <value>/mnt/d/hdfs/tmp/</value> </property> <property> <name>fs.default.name</name> <value>hdfs://127.0.0.1:9000</value> </property> </configuration> |
確保建立了在此處配置的臨時目錄。接下來,我們必須編輯 HDFS 配置檔案hdfs-site.xml。為此,請使用以下命令在編輯器中開啟檔案:
sudo vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml
在這個配置檔案中,我們設定了 HDFS 資料節點目錄、HDFS 名稱節點目錄和 HDFS 複製因子。在這裡,您應該再次獲得一個帶有空配置塊的檔案。將其替換為以下內容:
<configuration> <property> <name>dfs.data.dir</name> <value>/mnt/d/hdfs/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>/mnt/d/hdfs/datanode</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> |
再次確保您建立了資料節點和名稱節點目錄。接下來,我們有 MapReduce 配置檔案。要在編輯器中開啟它,請執行以下命令:
sudo vim $HADOOP_HOME/etc/hadoop/mapred-site.xml
您可以使用以下內容替換配置塊:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> |
這是一個簡單的配置,它指定了 MapReduce 框架名稱。最後,我們有 YARN 配置檔案yarn-site.xml。使用以下命令在編輯器中開啟檔案:
sudo vim $HADOOP_HOME/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>127.0.0.1</value> </property> <property> <name>yarn.acl.enable</name> <value>0</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PERPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> </configuration> |
這個配置沒有什麼可以改變的。最後,我們完成了 Hadoop 的配置。我們現在可以繼續格式化名稱節點並啟動 Hadoop。
- 格式化 HDFS 名稱節點
在第一次啟動 Hadoop 服務之前首先格式化 HDFS 名稱節點很重要。顯然,這可以確保名稱節點中的任何地方都沒有垃圾。一旦您開始更頻繁地使用 HDFS,您就會意識到您正在更頻繁地格式化名稱節點,至少在您的開發機器上是這樣。無論如何,要格式化名稱節點,請使用以下命令:
hdfs namenode -format
收到名稱節點的關閉通知後,格式化就完成了。
- 啟動所有 Hadoop
最後,我們正處於本活動的最佳部分,即啟動和使用 Hadoop。現在,根據您實際想要使用的元件,有多種啟動 Hadoop 的方法。例如,您可以只啟動 YARN,或同時啟動 HDFS 等。對於本活動,我們將啟動所有內容。為此,Hadoop 發行版提供了一個方便的指令碼。而且因為您之前已經匯出了一堆環境變數,您甚至不必搜尋該指令碼,它已經在您的路徑中。只需執行以下命令並等待它完成:
start-all.sh
這將需要幾秒鐘的時間,因為指令碼只等待前 10 秒鐘而不做任何事情,以便在您錯誤啟動操作時為您提供取消操作的選項。
為了確保,如果您願意,您可以執行jps命令以獲取所有正在執行的程式的列表。您應該至少看到以下服務:
977 ResourceManager 353 NameNode 438 DataNode 615 SecondaryNameNode 1499 Jps |
您現在正在使用 WSL 1 或 2 上的 Linux 發行版在 Windows 11 PC 上執行 Hadoop。為了確保,您可以使用以下簡單的 HDFS 命令:
hdfs dfs -ls /
此命令將列出根 HDFS 目錄中的所有檔案和目錄。
相關文章
- 如何在windows 11中安裝WSLG(WSL2)Windows
- 【WSL2】在 Windows 10 中安裝 WSL2 的 Linux 子系統WindowsLinux
- 在Windows上安裝MavenWindowsMaven
- 在windows上安裝numpyWindows
- mysql 在windows上安裝MySqlWindows
- 在Ubuntu上單機安裝HadoopUbuntuHadoop
- 在 wsl2 中安裝redisRedis
- ZabbixAgent在Windows上安裝部署Windows
- 在windows x64bit上安裝oracle 11.2.0.2 rac 要求必須使用域使用者安裝WindowsOracle
- 使用 Winget 命令在 Windows 上安裝軟體Windows
- Windows安裝Docker Desktop並在WSL2整合KubernetesWindowsDocker
- 在Ubuntu上安裝Hadoop單機版UbuntuHadoop
- 在Solaris 11上安裝Oracle 11.2.0.3Oracle
- 在WSL2的Ubuntu中安裝和使用Docker/PodmanUbuntuDocker
- 在 Windows 上安裝和使用 GNUstep 和 Objective-CWindowsObject
- 在Ubuntu 18.04.1上安裝Hadoop叢集UbuntuHadoop
- 在Windows上安裝Elasticsearch 5.xWindowsElasticsearch
- 在Windows上安裝Node.js模組WindowsNode.js
- WSL2 安裝
- windows下安裝部署 hadoopWindowsHadoop
- Windows 上 nvm 的安裝與使用Windows
- git安裝及配置教程 windows windows上git的安裝和使用GitWindows
- Mysql在windows上安裝後解除安裝重新安裝需要root使用者密碼MySqlWindows密碼
- Windows10上安裝Linux子系統(WSL2,Ubuntu),配合Windows Terminal使用,還要什麼自行車WindowsLinuxUbuntu
- 使用免安裝版本在windows上手動安裝PostgreSQLWindowsSQL
- 在Windows7/8/10上,安裝IISWindows
- 在windows上安裝scala過程記錄Windows
- 在Mac上安裝Windows常見問題MacWindows
- Clojure執行環境在windows上安裝Windows
- Win11安裝基於WSL2的UbuntuUbuntu
- windows上徹底解除安裝oracle11gWindowsOracle
- 在Ubuntu上安裝OpenShift並使用Ubuntu
- Windows上安裝JDKWindowsJDK
- 在 Windows 11 中解除安裝 Edge 瀏覽器Windows瀏覽器
- MariaDB在Linux和Windows上的安裝LinuxWindows
- 在WINDOWS上安裝ORACLE RAC的注意事項WindowsOracle
- 在Windows安裝chromedriverWindowsChrome
- 在ubuntu上安裝docker, 使用國內的安裝源UbuntuDocker