安装Java环境
Hadoop依赖Java运行环境,需安装JDK 8(推荐OpenJDK)。执行以下命令:
sudo yum update -y
sudo yum install -y java-1.8.0-openjdk-devel
验证安装:java -version(需显示Java 1.8.0版本信息)。
下载并解压Hadoop
从Apache Hadoop官网下载稳定版本(如3.3.4),解压至指定目录(如/usr/local):
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop
(可选)创建软链接简化命令:sudo ln -s /usr/local/hadoop /usr/local/hadoop。
配置Hadoop环境变量
编辑/etc/profile文件,添加以下内容(替换/usr/local/hadoop为实际路径):
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk # 根据java -version输出调整
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:source /etc/profile。
配置主机名与IP映射
编辑/etc/hosts文件,添加NameNode和DataNode的IP与主机名映射(每行一个节点):
192.168.1.100 namenode
192.168.1.101 datanode1
192.168.1.102 datanode2
确保所有节点的/etc/hostname文件中主机名与/etc/hosts一致。
配置静态IP
编辑网络配置文件(如/etc/sysconfig/network-scripts/ifcfg-ens33),设置静态IP:
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100 # 替换为实际IP
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
重启网络:sudo systemctl restart network。
配置SSH免密登录
在NameNode上生成SSH密钥对:ssh-keygen -t rsa -P ""(直接回车)。
将公钥复制到所有节点(包括自身):
ssh-copy-id root@namenode
ssh-copy-id root@datanode1
ssh-copy-id root@datanode2
测试免密登录:ssh namenode(无需输入密码)。
进入Hadoop配置目录:cd $HADOOP_HOME/etc/hadoop,修改以下文件:
core-site.xml
配置HDFS默认文件系统和NameNode地址:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value> <!-- 替换为NameNode主机名 -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop</value> <!-- 临时目录,可自定义 -->
</property>
</configuration>
hdfs-site.xml
配置NameNode/Datanode数据目录、副本数及Web界面端口:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 单节点设为1,集群设为3 -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/namenode</value> <!-- NameNode数据目录 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/datanode</value> <!-- DataNode数据目录 -->
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>namenode:50070</value> <!-- Web界面地址 -->
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value> <!-- 启用WebHDFS -->
</property>
</configuration>
slaves文件(可选,集群部署需配置)
在NameNode上编辑slaves文件,添加DataNode主机名(每行一个):
datanode1
datanode2
(单节点部署可跳过此步)。
在NameNode节点上执行格式化命令(首次启动前必须执行):
hdfs namenode -format
此命令会初始化NameNode的元数据存储目录(如dfs.namenode.name.dir指定的路径)。
启动集群
在NameNode上执行:
$HADOOP_HOME/sbin/start-dfs.sh
此命令会自动启动NameNode和所有DataNode(若配置了slaves文件)。
验证进程
使用jps命令检查NameNode和DataNode是否运行:
NameNode进程。DataNode进程。访问Web界面
在浏览器中输入http://namenode-ip:50070(如http://192.168.1.100:50070),查看HDFS集群状态(包括存储容量、DataNode列表等)。
测试文件操作
执行以下命令上传文件到HDFS:
hdfs dfs -put /path/local/file.txt /user/root/ # 上传本地文件到HDFS根目录下的user/root路径
hdfs dfs -ls /user/root/ # 查看HDFS中的文件
关闭防火墙(测试环境)
临时关闭防火墙:sudo systemctl stop firewalld
禁止开机启动:sudo systemctl disable firewalld
(生产环境建议配置防火墙规则,允许HDFS端口:9000、50010、50020、50070等)。
配置NTP时间同步
安装NTP服务:sudo yum install -y ntp
启动NTP并设置开机启动:sudo systemctl start ntpd && sudo systemctl enable ntpd
同步时间:sudo ntpdate ntp.aliyun.com(替换为可用NTP服务器)。