在centos系統上部署hadoop分布式文件系統(hdfs)需要多個步驟,涵蓋hadoop安裝、集群配置以及hdfs啟動和驗證。以下步驟提供了一個簡明的配置指南:
1. 安裝Java運行環境
sudo yum install java-1.8.0-openjdk-devel
驗證安裝:
java -version
2. 下載和解壓Hadoop
從apache Hadoop官網下載最新版Hadoop,并解壓到指定目錄。例如:
wget https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local/ sudo mv /usr/local/hadoop-3.3.1 /usr/local/hadoop
3. 設置Hadoop環境變量
編輯/etc/profile.d/hadoop.sh文件,添加以下環境變量:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使環境變量生效:
source /etc/profile.d/hadoop.sh
4. 配置Hadoop核心文件
需要配置core-site.xml、hdfs-site.xml和yarn-site.xml三個核心配置文件。
core-site.xml
編輯$HADOOP_HOME/etc/hadoop/core-site.xml,添加以下內容:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
hdfs-site.xml
編輯$HADOOP_HOME/etc/hadoop/hdfs-site.xml,添加以下內容:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <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> </configuration>
創建并設置數據目錄權限:
sudo mkdir -p /usr/local/hadoop/data/namenode sudo mkdir -p /usr/local/hadoop/data/datanode sudo chown -R hadoop:hadoop /usr/local/hadoop/data
yarn-site.xml
編輯$HADOOP_HOME/etc/hadoop/yarn-site.xml,添加以下內容:
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
5. 格式化HDFS
首次啟動HDFS前,需要格式化:
hdfs namenode -format
6. 啟動Hadoop集群
啟動HDFS和YARN:
start-dfs.sh start-yarn.sh
7. 驗證HDFS
使用jps命令檢查HDFS進程:
jps
預期看到NameNode、DataNode、SecondaryNameNode、ResourceManager和NodeManager進程。
訪問HDFS Web ui (https://www.php.cn/link/56c507670a47dd95c4a9b1a972b7f33d) 查看HDFS狀態。
8. 停止Hadoop集群
停止HDFS和YARN:
stop-dfs.sh stop-yarn.sh
以上步驟適用于單節點HDFS配置。多節點集群配置需要編輯$HADOOP_HOME/etc/hadoop/slaves文件,并在每個節點重復上述步驟。 請確保Hadoop用戶已創建并擁有合適的權限。