在CentOS上配置Hadoop分布式文件系統(HDFS)涉及多個步驟,包括環境準備、安裝Hadoop、配置環境變量、修改配置文件以及啟動HDFS服務等。以下是詳細的配置步驟:
HDFS需要Java運行環境,首先確保已經安裝了Java。
sudo yum install -y java-1.8.0-openjdk
然后配置Java環境變量:
vi /etc/profile
添加以下內容:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
保存并退出,然后使配置生效:
source /etc/profile
驗證Java安裝:
java -version
SSH用于集群節點之間的通信。
sudo yum install openssh-server -y
從Apache Hadoop官網下載最新版本的Hadoop,例如Hadoop 3.2.1。
wget https://downloads.apache.org/hadoop/core/hadoop-3.2.0/hadoop-3.2.0.tar.gz
tar -zxvf hadoop-3.2.0.tar.gz -C /opt/hadoop
編輯 /etc/profile 文件,添加Hadoop的路徑和環境變量:
vi /etc/profile
添加以下內容:
export HADOOP_HOME=/opt/hadoop/hadoop-3.2.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
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 HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
保存并退出,然后使配置生效:
source /etc/profile
編輯 /etc/hadoop/hadoop-env.sh 文件,設置JAVA_HOME為你安裝的JDK路徑:
vi /etc/hadoop/hadoop-env.sh
添加以下內容:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
core-site.xml
編輯 $HADOOP_HOME/etc/hadoop/core-site.xml 文件,配置以下內容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value>
</property>
</configuration>
hdfs-site.xml
編輯 $HADOOP_HOME/etc/hadoop/hdfs-site.xml 文件,配置以下內容:
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/path/to/namenode/dir</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/path/to/datanode/dir</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>30</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>60</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>10</value>
</property>
</configuration>
mapred-site.xml(如使用MapReduce):
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml(如啟用YARN):
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>resourcemanager</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
生成SSH密鑰對:
ssh-keygen -t rsa
將公鑰復制到其他節點的 authorized_keys 文件中,實現免密登錄:
ssh-copy-id user@node2
ssh-copy-id user@node3
編輯網絡接口配置文件,例如 /etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
保存文件并退出編輯器,然后重啟網絡服務:
sudo systemctl restart network
編輯 /etc/sysconfig/network 文件,設置主機名:
HOSTNAME=node1
編輯 /etc/resolv.conf 文件,添加DNS服務器地址:
nameserver 8.8.8.8
nameserver 8.8.4.4
使用 hostnamectl set-hostname 命令使更改生效:
hostnamectl set-hostname node1
在NameNode上執行格式化命令:
hdfs namenode -format
啟動HDFS服務:
./sbin/start-dfs.sh
使用以下命令檢查HDFS狀態:
hdfs dfsadmin -report
訪問Web界面,例如:
http://namenode:50070