Hadoop是一個開源的分布式計算框架,廣泛應用于大數據處理。它能夠處理海量數據,并且具有高容錯性和高擴展性。本文將詳細介紹如何在CentOS 7上安裝和配置Hadoop集群。
在開始安裝Hadoop之前,確保你的系統滿足以下要求:
Hadoop是基于Java開發的,因此需要先安裝Java。以下是安裝Java的步驟:
sudo yum update -y
sudo yum install java-1.8.0-openjdk-devel -y
java -version
如果安裝成功,你應該看到類似以下的輸出:
openjdk version "1.8.0_292"
OpenJDK Runtime Environment (build 1.8.0_292-b10)
OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
Hadoop集群中的各個節點需要通過SSH進行通信,因此需要配置SSH無密碼登錄。以下是配置步驟:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
ssh-copy-id user@hostname
其中,user是目標節點的用戶名,hostname是目標節點的主機名或IP地址。
ssh hostname
如果配置成功,你應該能夠無需輸入密碼即可登錄到目標節點。
在Hadoop集群中,通常有以下幾種角色:
在一個簡單的Hadoop集群中,通常會有1個NameNode和多個DataNode。ResourceManager和NodeManager可以部署在NameNode或DataNode上。
訪問Hadoop官網下載最新版本的Hadoop。
使用wget命令下載Hadoop:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
tar -xzvf hadoop-3.3.1.tar.gz
/usr/local/hadoop: sudo mv hadoop-3.3.1 /usr/local/hadoop
~/.bashrc文件,添加以下內容: export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc
$HADOOP_HOME/etc/hadoop/core-site.xml文件,添加以下內容: <configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
其中,namenode是NameNode的主機名或IP地址。
$HADOOP_HOME/etc/hadoop/hdfs-site.xml文件,添加以下內容: <configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/hdfs/datanode</value>
</property>
</configuration>
其中,dfs.replication指定數據塊的副本數,dfs.namenode.name.dir和dfs.datanode.data.dir分別指定NameNode和DataNode的存儲目錄。
$HADOOP_HOME/etc/hadoop/mapred-site.xml文件,添加以下內容: <configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
該配置指定使用YARN作為MapReduce的計算框架。
$HADOOP_HOME/etc/hadoop/yarn-site.xml文件,添加以下內容: <configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>namenode</value>
</property>
</configuration>
其中,yarn.resourcemanager.hostname指定ResourceManager的主機名或IP地址。
$HADOOP_HOME/etc/hadoop/workers文件,添加所有DataNode的主機名或IP地址: datanode1
datanode2
其中,datanode1和datanode2是DataNode的主機名或IP地址。
在啟動Hadoop集群之前,需要先格式化HDFS:
hdfs namenode -format
start-dfs.sh
jps
你應該看到NameNode和DataNode進程。
start-yarn.sh
jps
你應該看到ResourceManager和NodeManager進程。
在瀏覽器中訪問http://namenode:9870,查看HDFS的狀態。
使用以下命令查看HDFS中的文件:
hdfs dfs -ls /
在瀏覽器中訪問http://namenode:8088,查看YARN的狀態。
使用以下命令提交一個簡單的MapReduce任務:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar pi 2 5
該命令將計算π的近似值。
HDFS無法啟動:檢查core-site.xml和hdfs-site.xml配置是否正確,確保NameNode和DataNode的目錄存在且可寫。
YARN無法啟動:檢查yarn-site.xml配置是否正確,確保ResourceManager和NodeManager的目錄存在且可寫。
SSH無密碼登錄失敗:檢查~/.ssh/authorized_keys文件是否存在且權限正確。
本文詳細介紹了如何在CentOS 7上安裝和配置Hadoop集群。通過本文的步驟,你應該能夠成功搭建一個Hadoop集群,并運行簡單的MapReduce任務。希望本文對你有所幫助!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。