在Ubuntu 18.04.1上安裝Hadoop叢集
本文將介紹如何在基於Ubuntu的系統上安裝多節點Hadoop 3.1.1叢集,作者將在Ubuntu 18.04.1上安裝一個包含HDFS的三節點Hadoop叢集。
首先,我們需要為叢集建立三個虛擬機器,建立一個具有4個vCPU,4 GB記憶體和40 GB硬碟空間的Hadoop Master伺服器;為每個節點建立兩個帶有4個vCPU,8 GB記憶體和40 GB硬碟空間的Hadoop節點。
本文的三臺伺服器安裝了Ubuntu Server 18.04.1,安裝了所有更新並重新啟動,一定要確保使用靜態IP地址和內部DNS解析配置每個伺服器,或將每個伺服器新增到/ etc / hosts檔案。
準備執行Hadoop伺服器
首先,我們需要安裝Oracle Java 8,因為從Ubuntu 18.04.1開始,Java 8不再可用。
# add-apt-repository ppa:webupd8team/java # apt update # apt install -y oracle-java8-set-default
接受許可條款,並下載Hadoop二進位制檔案
# wget http://apache.claz.org/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz
解壓縮歸檔並將其移至/ usr / local /
# tar -xzvf hadoop-3.1.1.tar.gz # mv hadoop-3.1.1 /usr/local/hadoop
更新預設環境變數以包含JAVA_HOME和Hadoop二進位制目錄。
首先,我們需要知道Java的安裝位置,執行以下命令查詢。
# update-alternatives --display java java - manual mode link best version is /usr/lib/jvm/java-8-oracle/jre/bin/java link currently points to /usr/lib/jvm/java-8-oracle/jre/bin/java link java is /usr/bin/java slave java.1.gz is /usr/share/man/man1/java.1.gz /usr/lib/jvm/java-8-oracle/jre/bin/java - priority 1081 slave java.1.gz: /usr/lib/jvm/java-8-oracle/man/man1/java.1.gz
如上所示,JAVA_HOME應設定為/ usr / lib / jvm / java-8-oracle / jre。
開啟/etc/environment並更新PATH行以包含Hadoop二進位制目錄。
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/hadoop/bin:/usr/local/hadoop/sbin"
為JAVA_HOME變數和YARN_RESOURCEMANAGER_OPTS變數新增一行。
vim YARN_RESOURCEMANAGER_OPTS="--add-modules=ALL-SYSTEM"
確保該目錄與上面的update-alternatives選項減去bin/java部分的輸出相匹配。
接下來,我們將新增一個hadoop使用者併為他們提供正確的許可權。
# adduser hadoop # usermod -aG hadoop hadoop # chown hadoop:root -R /usr/local/hadoop # chmod g+rwx -R /usr/local/hadoop
以hadoop使用者身份登入並生成SSH金鑰,只需要在Hadoop Master上完成此步驟。
# su - hadoop # ssh-keygen -t rsa
接受ssh-keygen的所有預設值。
現在以hadoop使用者身份登入並將SSH金鑰複製到所有Hadoop節點。 同樣,只需要在Hadoop Master上完成此步驟。
# su - hadoop $ ssh-copy-id hadoop@hadoop1.admintome.lab $ ssh-copy-id hadoop@hadoop2.admintome.lab $ ssh-copy-id hadoop@hadoop3.admintome.lab
配置Hadoop主伺服器
開啟/usr/local/hadoop/etc/hadoop/core-site.xml檔案並輸入以下內容:
<configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoop1.admintome.lab:9000</value> </property> </configuration>
儲存並退出。
接下來,開啟/usr/local/hadoop/etc/hadoop/hdfs-site.xml檔案並新增以下內容:
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>/usr/local/hadoop/data/nameNode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/usr/local/hadoop/data/dataNode</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>
儲存並退出。
開啟/usr/local/hadoop/etc/hadoop/workers檔案並新增以下兩行(每個Hadoop節點一行)
hadoop2.admintome.lab hadoop3.admintome.lab
儲存並退出。
將配置檔案從Hadoop Master複製到每個Hadoop節點。
# scp /usr/local/hadoop/etc/hadoop/* hadoop2.admintome.lab:/usr/local/hadoop/etc/hadoop/ # scp /usr/local/hadoop/etc/hadoop/* hadoop3.admintome.lab:/usr/local/hadoop/etc/hadoop/
格式化HDFS檔案系統
$ source /etc/environmnet $ hdfs namenode -format
現在可以啟動HDFS:
hadoop@hadoop1:~$ start-dfs.sh Starting namenodes on [hadoop1.admintome.lab] Starting datanodes Starting secondary namenodes [hadoop1] hadoop@hadoop1:~$
通過在所有Hadoop伺服器上以Hadoop使用者身份執行jps命令來驗證所有內容是否正確啟動。
在Hadoop Master上你應該可以看到如下結果:
hadoop@hadoop1:~$ jps 13634 Jps 13478 SecondaryNameNode 13174 NameNode
在每個Hadoop節點上,你應該可以看到:
hadoop@hadoop2:~$ jps 8672 Jps 8579 DataNode HDFS Web UI
HDFS Web UI
現在,我們可以通過瀏覽到Hadoop主伺服器埠9870來訪問HDFS Web UI。
http://hadoop1.admintome.lab:9870
可以看到如下UI:
如上所示,我們的HDFS檔案系統上有近60 GB的空閒空間。
開始執行Yarn
現在HDFS正在執行,我們已準備好啟動Yarn排程程式。
Hadoop本身需要執行任務,因此我們需要Yarn以在Hadoop叢集上合理安排任務。
export HADOOP_HOME="/usr/local/hadoop" export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HADOOP_HDFS_HOME=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_YARN_HOME=$HADOOP_HOME
執行以下命令以啟動Yarn:
$ start-yarn.sh Starting resourcemanager Starting nodemanagers
我們可以通過以下命令來驗證是否可以正確啟動:
$ yarn node -list 2018-08-15 04:40:26,688 INFO client.RMProxy: Connecting to ResourceManager at hadoop1.admintome.lab/192.168.1.35:8032 Total Nodes:2 Node-Id Node-State Node-Http-Address Number-of-Running-Containers hadoop3.admintome.lab:35337 RUNNING hadoop3.admintome.lab:8042 0 hadoop2.admintome.lab:38135 RUNNING hadoop2.admintome.lab:8042 0
沒有任何正在執行的容器,因為我們還沒有開始任何工作。
Hadoop Web UI
我們可以通過以下URL來檢視Hadoop Web UI:
http://hadoop1.admintome.lab:8088/cluster
替換Hadoop Master主機名:
執行Hadoop任務示例
我們現在可以執行Hadoop任務示例並在叢集上安排它,我們將執行的示例是使用MapReduce來計算PI。
執行以下命令來執行作業:
yarn jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar pi 16 1000
完成整個過程將需要幾分鐘的時間。完成後,應該可以看到它已經開始計算PI:
Job Finished in 72.973 seconds Estimated value of Pi is 3.1425000000000000000
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31077337/viewspace-2200305/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 教程:在Ubuntu 18.04.1上安裝ElasticsearchUbuntuElasticsearch
- Ubuntu上kubeadm安裝Kubernetes叢集Ubuntu
- 在Ubuntu上安裝Hadoop單機版UbuntuHadoop
- 安裝 Hadoop:設定單節點 Hadoop 叢集Hadoop
- Ubuntu上搭建Hadoop叢集環境的步驟UbuntuHadoop
- 虛擬機器Hadoop叢集搭建5安裝Hadoop虛擬機Hadoop
- Ubuntu 安裝k8s叢集UbuntuK8S
- 【Ubuntu】在Ubuntu上安裝微信Ubuntu
- 在virtualbox上安裝ubuntuUbuntu
- 在Ubuntu上安裝MariaDBUbuntu
- 在Ubuntu 18.04上安裝TensorflowUbuntu
- 在 Ubuntu 上安裝 Budgie 桌面Ubuntu
- 在受限網路裸機上安裝Openshift 4.6叢集
- 在Ubuntu上安裝OpenShift並使用Ubuntu
- 超詳細hadoop叢集伺服器安裝配置教程Hadoop伺服器
- hadoop偽分散式叢集的安裝(不是單機版)Hadoop分散式
- Hadoop叢集--linux虛擬機器Hadoop安裝與配置、克隆虛擬機器HadoopLinux虛擬機
- 怎樣在 Ubuntu Linux 上安裝 MySQLUbuntuLinuxMySql
- Typecho在Ubuntu 22.04上的安裝部署Ubuntu
- 在 Ubuntu 上使用原始碼安裝 OpenRestyUbuntu原始碼REST
- 教你在Ubuntu上安裝Linux核心6.1UbuntuLinux
- 安裝Kafka叢集Kafka
- 安裝Consul叢集
- Hadoop搭建叢集Hadoop
- Hadoop叢集搭建Hadoop
- 在ubuntu上安裝docker, 使用國內的安裝源UbuntuDocker
- Ubuntu下 hadoop的安裝與配置UbuntuHadoop
- Spark新手入門——2.Hadoop叢集(偽分佈模式)安裝SparkHadoop模式
- 使用WSL2在Windows 11上安裝HadoopWindowsHadoop
- 在 Ubuntu 22.04 上安裝 KubeSphere 實戰教程Ubuntu
- 在Ubuntu 13.10或者13.04上安裝Rhythmbox 3.0Ubuntu
- 完整安裝always on叢集
- 快速安裝 kafka 叢集Kafka
- Ubuntu16.04-hadoop3.1.0安裝與配置UbuntuHadoop
- 4.4 Hadoop叢集搭建Hadoop
- Hadoop叢集搭建(一)Hadoop
- 在 Ubuntu 安裝 ComposerUbuntu
- 在 Rainbond 中一鍵安裝高可用 Nacos 叢集AI